Documentation

Linglib.Logic.Truthmaker.Bilateral

Bilateral truthmaker propositions #

This file defines Kit Fine's bilateral propositions. A bilateral proposition pairs a set of verifiers with a set of falsifiers. Negation swaps the two sets, conjunction fuses verifiers and pools falsifiers, and disjunction pools verifiers and fuses falsifiers.

The possible states form a lower set P, and two states are compatible when their fusion is possible. A proposition is exclusive when no verifier is compatible with a falsifier, and exhaustive when every possible state is compatible with a verifier or a falsifier. The maximal possible states are the worlds, and a proposition is true at a world containing one of its verifiers. When the states form a complete lattice, the subject-matter of a proposition is the fusion of all its verifiers and falsifiers.

Main definitions #

Main results #

Implementation notes #

Fine defines conjunction only between propositions with a verifier and disjunction only between propositions with a falsifier. Here both are total, and the subject-matter lemmas carry the nonemptiness hypotheses instead.

References #

structure Truthmaker.BilProp (S : Type u_1) :
Type u_1

A bilateral proposition is a set of verifying states together with a set of falsifying states.

  • ver : Set S

    The states that exactly verify the proposition.

  • fal : Set S

    The states that exactly falsify the proposition.

Instances For
    theorem Truthmaker.BilProp.ext_iff {S : Type u_1} {x y : BilProp S} :
    x = y ↔ x.ver = y.ver ∧ x.fal = y.fal
    theorem Truthmaker.BilProp.ext {S : Type u_1} {x y : BilProp S} (ver : x.ver = y.ver) (fal : x.fal = y.fal) :
    x = y
    @[instance_reducible]
    instance Truthmaker.BilProp.instInvolutiveNeg {S : Type u_1} :
    InvolutiveNeg (BilProp S)

    The negation of a bilateral proposition swaps its verifiers and its falsifiers.

    Equations
    @[simp]
    theorem Truthmaker.BilProp.ver_neg {S : Type u_1} (A : BilProp S) :
    (-A).ver = A.fal
    @[simp]
    theorem Truthmaker.BilProp.fal_neg {S : Type u_1} (A : BilProp S) :
    (-A).fal = A.ver
    def Truthmaker.BilProp.conj {S : Type u_1} [SemilatticeSup S] (A B : BilProp S) :

    The conjunction of A and B is verified by the fusion of a verifier of each and falsified by a falsifier of either.

    Equations
    Instances For
      def Truthmaker.BilProp.disj {S : Type u_1} [SemilatticeSup S] (A B : BilProp S) :

      The disjunction of A and B is verified by a verifier of either and falsified by the fusion of a falsifier of each.

      Equations
      Instances For
        @[simp]
        theorem Truthmaker.BilProp.ver_conj {S : Type u_1} [SemilatticeSup S] (A B : BilProp S) :
        (A.conj B).ver = A.ver ⊻ B.ver
        @[simp]
        theorem Truthmaker.BilProp.fal_conj {S : Type u_1} [SemilatticeSup S] (A B : BilProp S) :
        (A.conj B).fal = A.fal ∪ B.fal
        @[simp]
        theorem Truthmaker.BilProp.ver_disj {S : Type u_1} [SemilatticeSup S] (A B : BilProp S) :
        (A.disj B).ver = A.ver ∪ B.ver
        @[simp]
        theorem Truthmaker.BilProp.fal_disj {S : Type u_1} [SemilatticeSup S] (A B : BilProp S) :
        (A.disj B).fal = A.fal ⊻ B.fal
        @[simp]
        theorem Truthmaker.BilProp.neg_conj {S : Type u_1} [SemilatticeSup S] (A B : BilProp S) :
        -A.conj B = (-A).disj (-B)
        @[simp]
        theorem Truthmaker.BilProp.neg_disj {S : Type u_1} [SemilatticeSup S] (A B : BilProp S) :
        -A.disj B = (-A).conj (-B)
        def Truthmaker.BilProp.Exclusive {S : Type u_1} [SemilatticeSup S] (P : LowerSet S) (A : BilProp S) :

        A bilateral proposition is exclusive over the possible states P if the fusion of a verifier with a falsifier is never possible.

        Equations
        Instances For
          def Truthmaker.BilProp.Exhaustive {S : Type u_1} [SemilatticeSup S] (P : LowerSet S) (A : BilProp S) :

          A bilateral proposition is exhaustive over the possible states P if every possible state has a possible fusion with a verifier or with a falsifier.

          Equations
          Instances For
            theorem Truthmaker.BilProp.Exclusive.neg {S : Type u_1} [SemilatticeSup S] {P : LowerSet S} {A : BilProp S} (h : Exclusive P A) :
            Exclusive P (-A)
            theorem Truthmaker.BilProp.Exhaustive.neg {S : Type u_1} [SemilatticeSup S] {P : LowerSet S} {A : BilProp S} (h : Exhaustive P A) :
            Exhaustive P (-A)
            @[simp]
            theorem Truthmaker.BilProp.exclusive_neg {S : Type u_1} [SemilatticeSup S] {P : LowerSet S} {A : BilProp S} :
            Exclusive P (-A) ↔ Exclusive P A
            @[simp]
            theorem Truthmaker.BilProp.exhaustive_neg {S : Type u_1} [SemilatticeSup S] {P : LowerSet S} {A : BilProp S} :
            Exhaustive P (-A) ↔ Exhaustive P A
            theorem Truthmaker.BilProp.Exclusive.conj {S : Type u_1} [SemilatticeSup S] {P : LowerSet S} {A B : BilProp S} (hA : Exclusive P A) (hB : Exclusive P B) :
            Exclusive P (A.conj B)
            theorem Truthmaker.BilProp.Exhaustive.conj {S : Type u_1} [SemilatticeSup S] {P : LowerSet S} {A B : BilProp S} (hA : Exhaustive P A) (hB : Exhaustive P B) :
            theorem Truthmaker.BilProp.Exclusive.disj {S : Type u_1} [SemilatticeSup S] {P : LowerSet S} {A B : BilProp S} (hA : Exclusive P A) (hB : Exclusive P B) :
            Exclusive P (A.disj B)
            theorem Truthmaker.BilProp.Exhaustive.disj {S : Type u_1} [SemilatticeSup S] {P : LowerSet S} {A B : BilProp S} (hA : Exhaustive P A) (hB : Exhaustive P B) :
            theorem Truthmaker.BilProp.exclusive_iff {S : Type u_1} [SemilatticeSup S] {P : LowerSet S} {A : BilProp S} :
            Exclusive P A ↔ ∀ s ∈ P, s ∈ upperClosure A.ver → s ∉ upperClosure A.fal

            A proposition is exclusive exactly when no possible state contains both a verifier and a falsifier of it.

            theorem Truthmaker.BilProp.Exhaustive.mem_upperClosure {S : Type u_1} [SemilatticeSup S] {P : LowerSet S} {A : BilProp S} (h : Exhaustive P A) {w : S} (hw : Maximal (fun (x : S) => x ∈ P) w) :
            w ∈ upperClosure A.ver ∨ w ∈ upperClosure A.fal

            An exhaustive proposition is true or false at every world, a maximal possible state.

            theorem Truthmaker.BilProp.exhaustive_iff {S : Type u_1} [SemilatticeSup S] {P : LowerSet S} {A : BilProp S} (hP : ∀ s ∈ P, ∃ (w : S), s ≤ w ∧ Maximal (fun (x : S) => x ∈ P) w) :
            Exhaustive P A ↔ ∀ (w : S), Maximal (fun (x : S) => x ∈ P) w → w ∈ upperClosure A.ver ∨ w ∈ upperClosure A.fal

            When every possible state is part of a world, a proposition is exhaustive exactly when it is true or false at every world.

            theorem Truthmaker.BilProp.Exhaustive.mem_upperClosure_disj_neg {S : Type u_1} [SemilatticeSup S] {P : LowerSet S} {A : BilProp S} (h : Exhaustive P A) {w : S} (hw : Maximal (fun (x : S) => x ∈ P) w) :
            w ∈ upperClosure (A.disj (-A)).ver

            The excluded middle of an exhaustive proposition is true at every world.

            def Truthmaker.BilProp.subjectMatter {S : Type u_1} [CompleteLattice S] (A : BilProp S) :
            S

            The subject-matter of a bilateral proposition is the fusion of all its verifiers and all its falsifiers.

            Equations
            Instances For
              @[simp]
              theorem Truthmaker.BilProp.subjectMatter_neg {S : Type u_1} [CompleteLattice S] (A : BilProp S) :
              theorem Truthmaker.BilProp.subjectMatter_conj {S : Type u_1} [CompleteLattice S] {A B : BilProp S} (hA : A.ver.Nonempty) (hB : B.ver.Nonempty) :

              The subject-matter of a conjunction of propositions with verifiers fuses their subject-matters.

              theorem Truthmaker.BilProp.subjectMatter_disj {S : Type u_1} [CompleteLattice S] {A B : BilProp S} (hA : A.fal.Nonempty) (hB : B.fal.Nonempty) :

              The subject-matter of a disjunction of propositions with falsifiers fuses their subject-matters.

              theorem Truthmaker.BilProp.subjectMatter_disj_neg {S : Type u_1} [CompleteLattice S] {A : BilProp S} (hv : A.ver.Nonempty) (hf : A.fal.Nonempty) :

              The excluded middle of a proposition with a verifier and a falsifier has the subject-matter of the proposition.

              def Truthmaker.Canonical.mirror {α : Type u_1} (x : α × Bool) :
              α × Bool

              The mirror image of a literal has the same atom and the opposite polarity.

              Equations
              Instances For
                @[simp]
                theorem Truthmaker.Canonical.mirror_mk {α : Type u_1} (a : α) (b : Bool) :
                mirror (a, b) = (a, !b)
                @[simp]
                theorem Truthmaker.Canonical.mirror_mirror {α : Type u_1} (x : α × Bool) :
                mirror (mirror x) = x
                theorem Truthmaker.Canonical.mirror_involutive {α : Type u_1} :
                Function.Involutive mirror
                theorem Truthmaker.Canonical.mirror_ne {α : Type u_1} (x : α × Bool) :
                mirror x ≠ x
                def Truthmaker.Canonical.possible {α : Type u_1} :
                LowerSet (Set (α × Bool))

                The possible states of the canonical space are the consistent sets of literals, those containing no literal together with its mirror image. The literal (a, true) asserts the atom a and (a, false) denies it.

                Equations
                Instances For
                  theorem Truthmaker.Canonical.mem_possible {α : Type u_1} {L : Set (α × Bool)} :
                  L ∈ possible ↔ ∀ x ∈ L, mirror x ∉ L
                  theorem Truthmaker.Canonical.maximal_possible_iff {α : Type u_1} {w : Set (α × Bool)} :
                  Maximal (fun (x : Set (α × Bool)) => x ∈ possible) w ↔ ∀ (x : α × Bool), x ∈ w ↔ mirror x ∉ w

                  The worlds of the canonical space are the sets of literals that contain exactly one of each literal and its mirror image.

                  theorem Truthmaker.Canonical.mem_or_mirror_mem_of_maximal {α : Type u_1} {w : Set (α × Bool)} (hw : Maximal (fun (x : Set (α × Bool)) => x ∈ possible) w) (x : α × Bool) :
                  x ∈ w ∨ mirror x ∈ w

                  A world of the canonical space contains every literal or its mirror image.

                  theorem Truthmaker.Canonical.exists_le_maximal_possible {α : Type u_1} {L : Set (α × Bool)} (hL : L ∈ possible) :
                  ∃ (w : Set (α × Bool)), L ⊆ w ∧ Maximal (fun (x : Set (α × Bool)) => x ∈ possible) w

                  Every consistent set of literals is part of a world, so the canonical space is a W-space.

                  def Truthmaker.Canonical.atom {α : Type u_1} (a : α) :
                  BilProp (Set (α × Bool))

                  The atomic proposition a is verified by its assertion and falsified by its denial.

                  Equations
                  Instances For
                    @[simp]
                    theorem Truthmaker.Canonical.ver_atom {α : Type u_1} (a : α) :
                    (atom a).ver = {{(a, true)}}
                    @[simp]
                    theorem Truthmaker.Canonical.fal_atom {α : Type u_1} (a : α) :
                    (atom a).fal = {{(a, false)}}
                    theorem Truthmaker.Canonical.subjectMatter_atom {α : Type u_1} (a : α) :
                    (atom a).subjectMatter = {(a, true), (a, false)}
                    theorem Truthmaker.Canonical.mem_upperClosure_disj_neg_atom {α : Type u_1} (a : α) {w : Set (α × Bool)} (hw : Maximal (fun (x : Set (α × Bool)) => x ∈ possible) w) :
                    w ∈ upperClosure ((atom a).disj (-atom a)).ver

                    The excluded middle of an atom is true at every world of the canonical space.

                    theorem Truthmaker.Canonical.subjectMatter_disj_neg_atom {α : Type u_1} (a : α) :
                    ((atom a).disj (-atom a)).subjectMatter = {(a, true), (a, false)}

                    The subject-matter of the excluded middle of an atom is an impossible state.

                    theorem Truthmaker.Canonical.subjectMatter_disj_neg_atom_injective {α : Type u_1} :
                    Function.Injective fun (a : α) => ((atom a).disj (-atom a)).subjectMatter

                    Excluded middles of distinct atoms have distinct subject-matters.