Rival trivalent connective families #
The rival trivalent connective families on PartialProp, beyond the
classical (Weak Kleene) and filtering (middle Kleene) canon of
Semantics.Presupposition.Basic: Strong Kleene ([Kle52]), Belnap
conditional assertion / flexible accommodation ([Bel70],
[Geu05]), the symmetric K&P disjunction ([KP79]),
and the positive-antecedent rival ([Sha25]).
Main declarations #
orStrong,andStrong— Strong Kleene: theTrivalentlattice join/meet (eval_orStrong/eval_andStrong).orBelnap,andBelnap— Belnap conditional assertion; the flexible-accommodationorFlex/andFlexare definitionally the same operators.belnapLift— unifier showing Belnap = flexible accommodation for any binaryPropoperator with an identity.orKPSymmetric— symmetric two-dimensional K&P disjunction.orPositive— positive-antecedent symmetric disjunction, a documented rival ([Sha25], [Yag25]).liveness,genuineness— [Yag25] disjunction-update conditions.all_or_agree_when_both_defined/all_and_agree_when_both_defined— the families diverge only when presuppositions conflict.
Todo #
Positive-antecedent symmetric disjunction #
Positive-antecedent symmetric disjunction: each disjunct's
presupposition is required where the other disjunct's assertion
holds, plus at least one disjunct defined. This is NOT Karttunen
filtering (orFilter): it demands the second disjunct's
presupposition exactly where the first is true, un-filtering
bathroom-sentence data. Retained as a documented rival:
[Sha25] identifies it as the root cause of K/P-style failure
(Studies/Sharvit2025.lean), and [Yag25] §2.2 discusses the
Π(φ) ∨ Π(ψ) conjunct as a candidate fix (Studies/Yagi2025.lean).
Equations
Instances For
K&P two-dimensional disjunction #
Symmetric two-dimensional disjunction in the K&P ([KP79]) tradition:
Π(φ ∨ ψ) = (A(ψ) ∨ Π(φ)) ∧ (A(φ) ∨ Π(ψ)) A(φ ∨ ψ) = A(φ) ∨ A(ψ)
The name carries the Symmetric suffix because the literal K&P 1979
formulation was asymmetric (it would project the first disjunct's
presupposition unconditionally; [Yag25] fn 2). This is the
symmetrized variant standard in post-2021 literature, matching
[Yag25] Definition 2 (cf. [KS21a] for
experimental support of symmetry).
Equations
Instances For
When presuppositions conflict at w, the symmetric K&P presupposition entails the assertion: defined → true, so the disjunction can never be both defined and false. [Yag25] §2.2
Strong Kleene #
Strong Kleene disjunction ([Kle52]): defined iff both disjuncts
are defined or either is defined-and-true (T ∨ # = T, F ∨ # = #).
This is the Trivalent lattice join — see eval_orStrong.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Strong Kleene conjunction: defined iff both conjuncts are defined or
either is defined-and-false (F ∧ # = F, T ∧ # = #). This is the
Trivalent lattice meet — see eval_andStrong.
Equations
- One or more equations did not get rendered due to their size.
Instances For
orStrong evaluates to the Trivalent lattice join pointwise: Strong
Kleene disjunction is ⊔ in the false < indet < true order,
unconditionally.
andStrong evaluates to the Trivalent lattice meet pointwise,
unconditionally.
Belnap conditional assertion ([Bel70]) #
Under the Belnap reading, presup is the assertive field — whether the
proposition asserts something at w (vs being nonassertive / silent).
Belnap conjunction: assertive iff at least one conjunct is assertive. What it asserts = conjunction of assertive conjuncts' content.
[Bel70], (8). Contrast with classical PartialProp.and (both
must be defined) and filtering PartialProp.andFilter (left-to-right).
Equations
Instances For
Belnap disjunction: assertive iff at least one disjunct is assertive. What it asserts = disjunction of assertive disjuncts' content.
[Bel70], (9).
Equations
Instances For
Flexible accommodation #
The flexible-accommodation connectives of the pragmatic tradition ([Geu05], [Alo22], the static counterpart of [Yag25]'s dynamic update) are definitionally the Belnap connectives: each operand is evaluated only against worlds where its own presupposition holds, which handles conflicting presuppositions (where classical and filtering disjunction both fail). The two traditions differ in the accommodation theory surrounding the operator (default ⊤ vs unconditional assertive), not in the operator itself — see [Yag25] §3.2 for the distinction.
Flexible accommodation disjunction = orBelnap.
Equations
Instances For
Flexible accommodation conjunction = andBelnap.
Equations
Instances For
Belnap lift: uniform construction for conditional assertion connectives.
Given a binary Prop function f and its identity element unit,
constructs a PartialProp connective where:
- Defined (assertive) iff at least one operand is defined
- Assertion applies
fto each operand's content, substitutingunitfor undefined operands (making them "silent")
[Bel70]: undefined operands contribute the identity element.
Noncomputable because it uses classical if on Props.
Defined instances:
belnapLift (· ∨ ·) False=orBelnap=orFlex(False is identity for ∨)belnapLift (· ∧ ·) True=andBelnap=andFlex(True is identity for ∧)
Equations
- One or more equations did not get rendered due to their size.
Instances For
Flex collapse theorems #
orFlex reduces to standard disjunction when both presuppositions hold.
orFlex presupposition is weaker than or's (p ∨ q vs p ∧ q).
andFlex reduces to standard conjunction when both presuppositions hold.
andFlex presupposition is weaker than and's (p ∨ q vs p ∧ q).
Eval: Belnap #
Belnap conjunction evaluates to Trivalent.meetBelnap pointwise.
Belnap disjunction evaluates to Trivalent.joinBelnap pointwise.
Belnap lift: unification #
orBelnap is the Belnap lift of (· ∨ ·) with identity False.
andBelnap is the Belnap lift of (· ∧ ·) with identity True.
Belnap lift reduces to the classical operation when both presuppositions hold. The identity element is never used — both operands contribute directly.
When only the left operand is defined and unit is a right identity,
belnapLift returns the left operand's value: the right operand is
invisible.
When only the right operand is defined and unit is a left identity,
belnapLift returns the right operand's value.
belnapLift is commutative when f is commutative.
Collapse: all connective families agree when both defined #
When both presuppositions hold at w, ALL disjunction connectives agree on assertion: classical = filtering = K&P = flex = Belnap. The theories diverge only when presuppositions conflict.
When both presuppositions hold at w, ALL conjunction connectives agree on assertion: classical = filtering = flex = Belnap. The theories diverge only when presuppositions conflict.
Liveness for disjunction: each disjunct is satisfied (presupposition AND assertion hold) at some world of the state.
This is the singleton-survival side of [Yag25] Definition 8:
{w}[φ] = {w} for some w ∈ s. The disjunction-update side
(w ∈ s[φ ∨ ψ]) is the additional constraint expressed by
genuineness below.
Equations
- p.liveness q s = ((∃ w ∈ s, Semantics.Presupposition.PartialProp.holds w p) ∧ ∃ w ∈ s, Semantics.Presupposition.PartialProp.holds w q)
Instances For
Genuineness for disjunction ([Yag25] Definition 8, after
[Zim00]). A disjunction p ∨ q, with disjunction-update
realised by the connective disj, follows genuineness in a state s iff
there are worlds w, w' ∈ s such that:
{w}[p] = {w}ANDw ∈ s[p ∨ q]— the left disjunct's witness survives both its own update (=p.holds w) and the disjunction's update (=disj.holds w).{w'}[q] = {w'}ANDw' ∈ s[p ∨ q]— analogously for the right disjunct.
The disjunction-update side rules out witnesses that survive the local
presupposition+assertion update but are eliminated by the joint update —
a vacuous addition under orFlex/orBelnap (liveness_implies_genuineness_orFlex),
but the substantive constraint [Yag25] §3.2 invokes for dynamic
negation: genuineness must hold even within the scope of negation, where
"we end up negating both disjuncts".
The disj argument is parametric so the substrate stays
framework-neutral; consumers supply the disjunction connective whose
update they wish to test against (orFlex / classical or / Geurts
modal split).
Equations
- One or more equations did not get rendered due to their size.
Instances For
Under orFlex, liveness implies genuineness: each witness for
p.holds/q.holds automatically survives the disjunction's update,
because (orFlex p q).holds w reduces to p.holds w ∨ q.holds w.
Liveness is symmetric.
Genuineness is symmetric whenever the supplied disjunction connective is symmetric in its operands.