Documentation

Linglib.Theories.Semantics.Supervaluation.Basic

Supervaluation Framework #

@cite{fine-1975} @cite{kamp-1975}

General supervaluation theory for vague languages. A vague sentence is super-true iff true under all admissible precisifications, super-false iff false under all, and indefinite otherwise.

Key Results #

Architecture #

This file provides the general supervaluation framework, parameterized by an abstract specification type Spec. Study files specialize Spec:

Fine's full framework includes partial specifications with an extension relation, but he shows (p. 277) that partial points can be identified with sets of complete points, and extension = subset. We use this simplified complete-point-only representation.

structure Semantics.Supervaluation.SpecSpace (Spec : Type u_1) :
Type u_1

A specification space: a non-empty finite set of admissible complete specifications. Each element represents one way of making all vague predicates precise simultaneously.

Instances For

    Singleton specification space: a single admissible precisification. Classical models are degenerate specification spaces.

    Equations
    Instances For
      def Semantics.Supervaluation.superTrue {Spec : Type u_1} (eval : SpecBool) (S : SpecSpace Spec) :

      Supervaluation operator. Maps a Bool-valued predicate over specifications to a three-valued truth value:

      • Truth3.true if true at ALL admissible specifications
      • Truth3.false if false at ALL admissible specifications
      • Truth3.indet otherwise (the borderline case)
      Equations
      • One or more equations did not get rendered due to their size.
      Instances For
        def Semantics.Supervaluation.definitely {Spec : Type u_1} (eval : SpecBool) (S : SpecSpace Spec) :

        The D (definitely) operator. DA is true iff A is true at ALL admissible specifications — i.e., A is super-true. In modal logic terms, D is □ in S5 with universal access among specification points.

        Equations
        Instances For
          def Semantics.Supervaluation.indefinite {Spec : Type u_1} (eval : SpecBool) (S : SpecSpace Spec) :

          The I (indefinite) operator. IA ≡ ¬DA ∧ ¬D¬A: A is neither definitely true nor definitely false.

          Equations
          Instances For
            theorem Semantics.Supervaluation.superTrue_true_iff {Spec : Type u_1} (eval : SpecBool) (S : SpecSpace Spec) :

            Super-truth ↔ universally true across the space.

            theorem Semantics.Supervaluation.superTrue_false_iff {Spec : Type u_1} (eval : SpecBool) (S : SpecSpace Spec) :

            Super-falsity ↔ universally false across the space.

            theorem Semantics.Supervaluation.superTrue_indet_iff {Spec : Type u_1} (eval : SpecBool) (S : SpecSpace Spec) :
            superTrue eval S = Core.Duality.Truth3.indet (∃ sS.admissible, eval s = true) sS.admissible, eval s = false

            Indefiniteness ↔ witnesses on both sides.

            D = super-truth projected to Bool.

            theorem Semantics.Supervaluation.excludedMiddle_superTrue {Spec : Type u_1} (eval : SpecBool) (S : SpecSpace Spec) :
            superTrue (fun (s : Spec) => eval s || !eval s) S = Core.Duality.Truth3.true

            Excluded middle is super-true. P ∨ ¬P is true on every precisification, hence true on ALL. Classical tautologies survive.

            theorem Semantics.Supervaluation.nonContradiction_superFalse {Spec : Type u_1} (eval : SpecBool) (S : SpecSpace Spec) :
            superTrue (fun (s : Spec) => eval s && !eval s) S = Core.Duality.Truth3.false

            Non-contradiction is super-false. P ∧ ¬P is false on every precisification, hence false on ALL.

            theorem Semantics.Supervaluation.complementary_superFalse {Spec : Type u_1} (P Q : SpecBool) (S : SpecSpace Spec) (hcomp : sS.admissible, (P s && Q s) = false) :
            superTrue (fun (s : Spec) => P s && Q s) S = Core.Duality.Truth3.false

            Complementary predicates. If P and Q never hold simultaneously at any admissible specification, their conjunction is super-false.

            This is Fine's "external penumbral connection": the relationship between "pink" and "red" across the color boundary (p. 270).

            theorem Semantics.Supervaluation.conjunction_self {Spec : Type u_1} (eval : SpecBool) (S : SpecSpace Spec) :
            superTrue (fun (s : Spec) => eval s && eval s) S = superTrue eval S

            Conjunction with self. P ∧ P has the same super-truth value as P. This is trivial (Bool.and_self), but combined with nonContradiction_superFalse, it resolves Kamp's dilemma: supervaluation distinguishes P ∧ P from P ∧ ¬P, while Strong Kleene three-valued logic maps both to indet when P is borderline.

            Fine's central logical result (§ 4): the super-truth theory yields classical logic. A formula is super-valid (super-true in every specification space) iff it is classically valid (true in every classical model). Each direction has a clean proof.

            theorem Semantics.Supervaluation.classical_implies_superValid {Spec : Type u_1} (eval : SpecBool) (htaut : ∀ (s : Spec), eval s = true) (S : SpecSpace Spec) :

            Forward: classical tautology → super-valid.

            theorem Semantics.Supervaluation.superValid_implies_classical {Spec : Type u_1} [DecidableEq Spec] (eval : SpecBool) (hvalid : ∀ (S : SpecSpace Spec), superTrue eval S = Core.Duality.Truth3.true) (s : Spec) :
            eval s = true

            Converse: super-valid → classical tautology. The key step: each classical model is a singleton specification space. If eval is super-true in the singleton {s}, then eval s = true.

            theorem Semantics.Supervaluation.superValid_iff_classical {Spec : Type u_1} [DecidableEq Spec] (eval : SpecBool) :
            (∀ (S : SpecSpace Spec), superTrue eval S = Core.Duality.Truth3.true) ∀ (s : Spec), eval s = true

            Super-validity ↔ classical validity. This is the deepest logical result in @cite{fine-1975}: supervaluationism makes a difference to truth but not to logic.

            def Semantics.Supervaluation.superConsequence {Spec : Type u_1} (evalA evalB : SpecBool) :

            Super-consequence: B follows from A iff B is super-true whenever A is, across all specification spaces.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              theorem Semantics.Supervaluation.classical_implies_superConsequence {Spec : Type u_1} (evalA evalB : SpecBool) (h : ∀ (s : Spec), evalA s = trueevalB s = true) :
              superConsequence evalA evalB

              Forward: classical consequence → super-consequence.

              theorem Semantics.Supervaluation.superConsequence_implies_classical {Spec : Type u_1} [DecidableEq Spec] (evalA evalB : SpecBool) (h : superConsequence evalA evalB) (s : Spec) :
              evalA s = trueevalB s = true

              Converse: super-consequence → classical consequence.

              theorem Semantics.Supervaluation.superConsequence_iff_classical {Spec : Type u_1} [DecidableEq Spec] (evalA evalB : SpecBool) :
              superConsequence evalA evalB ∀ (s : Spec), evalA s = trueevalB s = true

              Super-consequence ↔ classical consequence.

              Fine's Stability condition (S): definite truth values are preserved under extension. In our complete-point-only representation, "extension" = restricting the set of admissible specifications (making the language more precise by ruling out some precisifications). Stability says super-truth is preserved under restriction — i.e., it is monotone with respect to the subset ordering on specification spaces.

              Restricting the specification space preserves super-truth.

              Restricting the specification space preserves super-falsity.

              Restriction can resolve indefiniteness but never create it. If A is definite (true or false) in S, it stays definite in T ⊆ S.

              Fine's D operator (§ 5) is the modal necessity operator □ on specification spaces. DA is true at a specification point iff A is true at ALL specification points (S5 with universal access). Since D is constant across points, DA → A is super-valid (the T axiom), but A → DA is not (A may hold at this point but fail at another).

              theorem Semantics.Supervaluation.D_implies_A {Spec : Type u_1} (eval : SpecBool) (S : SpecSpace Spec) :
              superTrue (fun (s : Spec) => !definitely eval S || eval s) S = Core.Duality.Truth3.true

              T axiom: DA → A is super-valid. Material implication ¬(DA) ∨ A is true at every specification point: either D is false (the disjunction holds) or D is true and A holds at all points.

              Converse fails: A → DA is NOT super-valid. Counterexample: two specification points, eval = id, space = {true, false}. At point true: A is true but DA is false (A fails at false). So A → DA is false at true, hence not super-true.

              theorem Semantics.Supervaluation.DA_consequence_of_A {Spec : Type u_1} (eval : SpecBool) (S : SpecSpace Spec) :

              DA is a consequence of A. If A is super-true, then DA is super-true (since DA just says "A is true at all specs"). Combined with A_not_implies_DA, this shows the asymmetry characteristic of supervaluationism (Fine § 5, p. 290): asserting A commits one to DA, but A → DA is not a logical truth.

              theorem Semantics.Supervaluation.fidelity {Spec : Type u_1} [DecidableEq Spec] (eval : SpecBool) (s : Spec) :

              Fidelity: at a singleton specification space (a complete specification / classical model), every sentence is either true or false — never indefinite. Supervaluation reduces to classical evaluation.