Skip to main content

Concepts · 2 of 5

Three-valued truth

Every claim has one of three values. The difference between "contradicted" and "not yet established" decides what should happen next, so the two are never collapsed. Missing or stale evidence is never a contradiction.

Shippedcrates/canon/src/eval/claims.rs, scenario CANON-CLAIM-001

Three-valued truth

ValueMeaning
TRUEApplicable evidence establishes the claim's predicate. Only TRUE satisfies a positive requirement.
FALSEApplicable evidence contradicts the predicate. The claim is refuted, not merely open.
UNKNOWNThe applicable evidence is not enough to decide. Something should be observed before anything is concluded.

Examples​

These come from the design document.

SituationValue
The check was never runUNKNOWN
The check ran and failedFALSE
The check ran and passedTRUE
It passed for revision R1; the current revision is R2UNKNOWN
An observation is older than the protocol allowsUNKNOWN

What exists today​

ShippedClaim evaluation

canon evaluate gives every claim of a case one of the three values from its evidence records. An evidence match with a result is unknown when no record of the kind exists, false when records exist and none has the result, true when every record of the kind has that result, and unknown when records of the kind disagree. A match that names a subject counts only the records about that artifact. The evaluation reference has every rule, and the worked example shows the values for five evidence situations.

ShippedThe row about revisions

A record bound to a revision of its artifact that is not the case's current one is left out of claim evaluation, so the R1/R2 row is UNKNOWN as shown.

ShippedThe row about age

A record older than its evidence kind's max_age at the evaluation instant (canon evaluate --at) is left out of claim evaluation, so the last row is UNKNOWN as shown.