Trivalent propositions #
Prop3 W is a proposition valued in Trivalent: at each world it is true,
false, or undefined. Its worlds split into the positive extension, the
negative extension, and the extension gap; Prop3.metaAssert β the
Beaver-Krahmer π operator lifted pointwise β collapses the gap into the
negative extension. As a Pi type, Prop3 W inherits its lattice
structure pointwise (β/β via Pi.instLattice).
References #
Three-valued propositions: functions from worlds to Trivalent.
Equations
- Trivalent.Prop3 W = (W β Trivalent)
Instances For
Prop3 W := W β Trivalent is a Pi type: Lattice (W β Trivalent) auto-derives from
Pi.instLattice, so (p β q) w = p w β q w and (p β q) w = p w β q w come for
free from Pi.sup_apply/Pi.inf_apply β use β/β directly rather than bespoke
wrappers. The only Trivalent-specific operation needing a pointwise lift is
metaAssert: there is no Pi analogue of a unary collapsing operator.
Pointwise meta-assertion (Beaver-Krahmer π operator).
Equations
- p.metaAssert w = (p w).metaAssert
Instances For
Extensions #
Positive extension: worlds where the proposition is true.
Equations
- p.posExt = {w : W | p w = Trivalent.true}
Instances For
Negative extension: worlds where the proposition is false.
Equations
- p.negExt = {w : W | p w = Trivalent.false}
Instances For
Extension gap: worlds where the proposition is neither true nor false.
Equations
- p.gapExt = {w : W | p w = Trivalent.indet}
Instances For
A proposition is bivalent if it takes no .indet value.
Equations
- p.isBivalent = β (w : W), p w = Trivalent.true β¨ p w = Trivalent.false
Instances For
Extensions under meta-assertion #
Meta-assertion produces a bivalent proposition.