ContradictionResolutionPass

class ContradictionResolutionPass constructor(reviser: PropositionReviser, eventListener: DiceEventListener = DiceEventListener.DEV_NULL) : ConsolidationPass

Consolidation pass that resolves contradictions among ACTIVE propositions by delegating classification to an injected PropositionReviser and retiring the losing side of each conflict.

This pass does NOT re-implement contradiction detection. For each ACTIVE proposition it asks reviser.classify() to compare it against its entity-overlapping ACTIVE peers; for every pair the reviser reports as PropositionRelation.CONTRADICTORY, the weaker member (lower Proposition.effectiveConfidence; ties favor the proposition being classified) is transitioned to PropositionStatus.CONTRADICTED.

Classification uses PropositionReviser.classify — NOT a contraster — because resolving a contradiction is a lifecycle transition, not an articulation of differences.

Pinned losers are surfaced, not silently dropped

A pinned proposition is conflict-protected and is never auto-retired. Rather than skip it in silence — which would let a wrong pin accumulate contradicting evidence invisibly — the pass emits a PropositionRoutedToReview for it via eventListener, so a human (or a later pass) is prompted to resolve the conflict or unpin it.

Idempotency

Only ACTIVE propositions are compared and only an ACTIVE loser is transitioned, so once a conflict is resolved the retired proposition drops out of the candidate set and is never re-classified. A re-run over an already-resolved snapshot therefore yields ConsolidationPassResult.NoOp. Candidates are pruned to those sharing at least one resolved entity, bounding classify() fan-out.

Constructors

Link copied to clipboard
constructor(reviser: PropositionReviser, eventListener: DiceEventListener = DiceEventListener.DEV_NULL)

Properties

Link copied to clipboard
open override val name: String

Short, stable identifier used in reports and logging (e.g. "abstraction").

Functions

Link copied to clipboard
open override fun run(contextId: <Error class: unknown class>, propositions: List<Proposition>): ConsolidationPassResult

Consolidate the snapshot propositions for contextId, reporting the outcome.