Docs / Logic / Trivalent / Supervaluation

Strong Kleene logic as supervaluation

import Linglib.Logic.Trivalent.Supervaluation

A trivalent value is the supervaluation of its two bivalent readings, true where it is 1 and true where it is not -1, its designation at K3 and at LP. Reading each occurrence of an atom at a standard of its own, independently of its other occurrences, gives the bivalent variants of a formula, and the Strong Kleene value of the formula is the supervaluation of its bivalent variants. The same holds of the Strong Kleene quantifiers, each instance read at its own standard. Spector states the propositional case and uses it to read an occurrence of presuppositional exhaustification as underspecified between a parse with an exhaustivity operator and one without.

Uniform supervaluation, which reads every occurrence of an atom at the same standard, is not Strong Kleene: p ∨ ¬p is supertrue where p is 0, and Strong Kleene leaves it undefined.

Main definitions

Main results

References

Declarations

Over a product of nonempty families, the supervaluation of independent conditions on the two coordinates, conjoined, is the Strong Kleene conjunction of their supervaluations.

theorem SignType.supervaluation_product_andL59–77
{α : Type u_1} {β : Type u_2} {s : Finset α} {t : Finset β} (P : α → Prop) [DecidablePred P] (Q : β → Prop) [DecidablePred Q] (hs : s.Nonempty) (ht : t.Nonempty) :
(supervaluation (s ×ˢ t) fun (x : α × β) => P x.1 ∧ Q x.2) = min (supervaluation s P) (supervaluation t Q)

Over a product of nonempty families, the supervaluation of independent conditions on the two coordinates, disjoined, is the Strong Kleene disjunction of their supervaluations.

theorem SignType.supervaluation_product_orL79–86
{α : Type u_1} {β : Type u_2} {s : Finset α} {t : Finset β} (P : α → Prop) [DecidablePred P] (Q : β → Prop) [DecidablePred Q] (hs : s.Nonempty) (ht : t.Nonempty) :
(supervaluation (s ×ˢ t) fun (x : α × β) => P x.1 ∨ Q x.2) = max (supervaluation s P) (supervaluation t Q)
L91–109
L111–120

Supervaluation over a set

supervaluation decides its cases over a finite family. Over a set they are decided classically, and over a finite set the two agree. Where the predicate at every member of a set follows from its value at one member lo and implies its value at another hi, it holds throughout the set exactly when it holds at lo and fails throughout exactly when it fails at hi, so the set has the supervaluation of the two.

The supervaluation of P over a set is 1 when P holds throughout it, -1 when P fails throughout it and it is nonempty, and 0 otherwise.

SignType.supervaluationOnL135–138
noncomputable def SignType.supervaluationOn {α : Type u_4} (s : Set α) (P : α → Prop) :
SignType

Used by SignType.supervaluationOn_eq_one_iff, SignType.supervaluationOn_eq_neg_one_iff, SignType.supervaluationOn_eq_zero_iff, SignType.supervaluationOn_congr, SignType.supervaluationOn_coe_finset, SignType.supervaluationOn_image, SignType.supervaluationOn_eq_of_between, Trivalent.supervaluationOn_pi_eq_const_of_monotone, Trivalent.supervaluationOn_pi_eq_const_of_antitone

Used in Spector2025

L140–142
L144–147
L149–152
L162–165
L174–186
L188–195

For a monotone Q, reading each index at a standard of its own gives the supervaluation of reading every index at one standard.

theorem Trivalent.supervaluationOn_pi_eq_const_of_monotoneL214–226
{ι : Type u_1} {Q : (ι → Prop) → Prop} (p : ι → SignType) (hQ : Monotone Q) :
(SignType.supervaluationOn Set.univ fun (c : ι → Designation) => Q fun (i : ι) => (c i).threshold ≤ p i) = SignType.supervaluationOn Set.univ fun (d : Designation) => Q fun (i : ι) => d.threshold ≤ p i

Built from

L228–240

The bivalent variants of a formula (Spector 2025) read each occurrence of an atom at a standard, independently of its other occurrences.

def Trivalent.Formula.bivalentVariantsL266–273
{Atom : Type u_2} [DecidableEq Atom] :
Formula Atom → Finset (Formula (Atom × Designation))
Equations

Used by Trivalent.Formula.bivalentVariants_nonempty, Trivalent.Formula.eval_strongKleene_eq_supervaluation

Used in Spector2025

L275–279

The Strong Kleene value of a formula is the supervaluation of its bivalent variants, each occurrence of an atom designated at its standard (Spector 2025, §5).

theorem Trivalent.Formula.eval_strongKleene_eq_supervaluationL281–309
{Atom : Type u_2} [DecidableEq Atom] (M : Model Atom) (φ : Formula Atom) :
eval Connectives.strongKleene M φ = SignType.supervaluation φ.bivalentVariants fun (ψ : Formula (Atom × Designation)) => evalBool (fun (x : Atom × Designation) => decide (x.2.threshold ≤ M x.1)) ψ = true

Built from