Documentation

Studies.Fitting2021

Fitting (2021): The strict/tolerant idea and bilattices #

This file formalizes Fitting's generalization of the strict/tolerant logic ST of Cobreros, Égré, Ripley and van Rooij from three values to any logical bilattice: an interlaced bilattice with negation and conflation together with a prime bifilter of designated values, after Arieli and Avron. Over its exact values −a = a and anticonsistent values −a ≤ₖ a live two logics (Definition 8.7.1): ST⟨B, F⟩ reads premises strictly and conclusions tolerantly over anticonsistent valuations, C⟨B, F⟩ reads both strictly over exact valuations. They validate the same sequents (Proposition 8.7.2, stValid_iff_cValid), yet cut is locally valid only in the second (Proposition 8.7.3, cut_not_local_stValid).

The examples come from products L ⊙ L of De Morgan algebras: the exact values of L ⊙ L are L (Proposition 8.8.3, exactIso), D × L is a prime bifilter for every prime filter D (Lemma 8.9.2, PrimeFilter.prod), and C⟨L ⊙ L, D × L⟩ is the logic ⟨L, D⟩ itself (Proposition 8.9.3, cValid_prod_iff). Hence every logical De Morgan algebra has a strict/tolerant counterpart with the same consequence relation (Proposition 8.10.1, stValid_prod_iff): classical logic from Bool, K3 and LP from SignType, and FDE from FOUR (Examples 8.10.2–8.10.5).

Implementation notes #

References #

Formulas and valuations (§8.6) #

inductive Fitting2021.Fml (α : Type u_3) :
Type u_3

Formulas over propositional letters built by conjunction, disjunction and negation, with no implication ([Fit21] Def 8.6.1).

Instances For
    def Fitting2021.Fml.eval {B : Type u_1} {α : Type u_2} [Lattice B] [InvolutiveCompl B] (v : α → B) :
    Fml α → B

    The extension of a valuation to formulas ([Fit21] Def 8.6.2).

    Equations
    Instances For
      theorem Fitting2021.eval_isExact {B : Type u_1} {α : Type u_2} [Lattice B] [InvolutiveCompl B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] [Bilattice.NegConfComm B] {v : α → B} (hv : ∀ (p : α), Bilattice.IsExact (v p)) (φ : Fml α) :

      Exact valuations evaluate to exact values ([Fit21] Prop 8.6.3).

      theorem Fitting2021.eval_isAnticonsistent {B : Type u_1} {α : Type u_2} [Lattice B] [InvolutiveCompl B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] [Bilattice.NegConfComm B] [Bilattice.Negation B] [Bilattice.IsInterlaced B] {v : α → B} (hv : ∀ (p : α), Bilattice.IsAnticonsistent (v p)) (φ : Fml α) :

      Anticonsistent valuations evaluate to anticonsistent values ([Fit21] Prop 8.6.3).

      theorem Fitting2021.eval_kLE_eval {B : Type u_1} {α : Type u_2} [Lattice B] [InvolutiveCompl B] [Lattice (Bilattice.Know B)] [Bilattice.Negation B] [Bilattice.IsInterlaced B] {v w : α → B} (h : ∀ (p : α), Bilattice.kLE (v p) (w p)) (φ : Fml α) :

      Evaluation is knowledge-monotone in the valuation ([Fit21] Prop 8.6.4).

      Prime bifilters ([Fit21] Def 8.6.5, after [AA98]) #

      structure Fitting2021.PrimeBifilter (B : Type u_3) [Lattice B] [Lattice (Bilattice.Know B)] :
      Type u_3

      A prime bifilter is a proper nonempty subset that is a prime filter for both the truth and the knowledge lattice operations ([Fit21] Def 8.6.5). It generalizes the designated values {t, ⊤} of FOUR ([AA96], [AA98]).

      Instances For
        @[instance_reducible]
        instance Fitting2021.instMembershipPrimeBifilter {B : Type u_1} [Lattice B] [Lattice (Bilattice.Know B)] :
        Membership B (PrimeBifilter B)
        Equations
        theorem Fitting2021.PrimeBifilter.mem_of_kLE {B : Type u_1} [Lattice B] [Lattice (Bilattice.Know B)] (F : PrimeBifilter B) {a b : B} (ha : a ∈ F) (h : Bilattice.kLE a b) :
        b ∈ F

        Prime bifilters are upward closed in the knowledge order ([Fit21] Prop 8.6.6).

        theorem Fitting2021.PrimeBifilter.mem_of_le {B : Type u_1} [Lattice B] [Lattice (Bilattice.Know B)] (F : PrimeBifilter B) {a b : B} (ha : a ∈ F) (h : a ≤ b) :
        b ∈ F

        Prime bifilters are upward closed in the truth order ([Fit21] Prop 8.6.6).

        The strict/tolerant and classical logics of a logical bilattice (§8.7) #

        def Fitting2021.StrictlyDesignated {B : Type u_1} [Lattice B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] (F : PrimeBifilter B) (a : B) :

        A value is strictly designated when it is designated and exact ([Fit21] Def 8.7.1).

        Equations
        Instances For
          def Fitting2021.TolerantlyDesignated {B : Type u_1} [Lattice B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] (F : PrimeBifilter B) (a : B) :

          A value is tolerantly designated when it is designated and anticonsistent ([Fit21] Def 8.7.1).

          Equations
          Instances For
            def Fitting2021.STSatisfies {B : Type u_1} {α : Type u_2} [Lattice B] [InvolutiveCompl B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] (F : PrimeBifilter B) (v : α → B) (Γ Δ : List (Fml α)) :

            A valuation satisfies a sequent strict-to-tolerantly when some conclusion is tolerantly designated whenever every premise is strictly designated.

            Equations
            • One or more equations did not get rendered due to their size.
            Instances For
              def Fitting2021.CSatisfies {B : Type u_1} {α : Type u_2} [Lattice B] [InvolutiveCompl B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] (F : PrimeBifilter B) (v : α → B) (Γ Δ : List (Fml α)) :

              A valuation satisfies a sequent strictly on both sides.

              Equations
              • One or more equations did not get rendered due to their size.
              Instances For
                def Fitting2021.STValid {B : Type u_1} {α : Type u_2} [Lattice B] [InvolutiveCompl B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] (F : PrimeBifilter B) (Γ Δ : List (Fml α)) :

                ST⟨B, F⟩ validity is the mixed consequence of strict premises and tolerant conclusions over the valuations into the anticonsistent values ([Fit21] Def 8.7.1).

                Equations
                • One or more equations did not get rendered due to their size.
                Instances For
                  def Fitting2021.CValid {B : Type u_1} {α : Type u_2} [Lattice B] [InvolutiveCompl B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] (F : PrimeBifilter B) (Γ Δ : List (Fml α)) :

                  C⟨B, F⟩ validity is the consequence of strict premises and strict conclusions over the valuations into the exact values ([Fit21] Def 8.7.1).

                  Equations
                  • One or more equations did not get rendered due to their size.
                  Instances For
                    @[instance_reducible]
                    instance Fitting2021.instDecidableStrictlyDesignatedOfMemPrimeBifilterOfDecidablePredIsExact {B : Type u_1} [Lattice B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] {F : PrimeBifilter B} [DecidablePred fun (x : B) => x ∈ F] [DecidablePred Bilattice.IsExact] (a : B) :
                    Decidable (StrictlyDesignated F a)
                    Equations
                    @[instance_reducible]
                    instance Fitting2021.instDecidableTolerantlyDesignatedOfMemPrimeBifilterOfDecidablePredIsAnticonsistent {B : Type u_1} [Lattice B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] {F : PrimeBifilter B} [DecidablePred fun (x : B) => x ∈ F] [DecidablePred Bilattice.IsAnticonsistent] (a : B) :
                    Decidable (TolerantlyDesignated F a)
                    Equations
                    theorem Fitting2021.stValid_iff_cValid {B : Type u_1} {α : Type u_2} [Lattice B] [InvolutiveCompl B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] [Bilattice.Negation B] [Bilattice.IsInterlaced B] [Bilattice.NegConfComm B] (F : PrimeBifilter B) (Γ Δ : List (Fml α)) :
                    STValid F Γ Δ ↔ CValid F Γ Δ

                    The strict/tolerant and classical logics of a logical bilattice validate exactly the same sequents ([Fit21] Prop 8.7.2). Both directions are model correspondences (Consequence.MixedConsequence.comap). Every exact valuation is anticonsistent, and below every anticonsistent valuation lies an exact one on which strict premises agree, whose strict conclusions lift along knowledge-monotonicity and bifilter closure. This replaces the chapter's contraposition.

                    theorem Fitting2021.cut_cSatisfies {B : Type u_1} {α : Type u_2} [Lattice B] [InvolutiveCompl B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] (F : PrimeBifilter B) {Γ Δ : List (Fml α)} {A : Fml α} {v : α → B} (h₁ : CSatisfies F v (A :: Γ) Δ) (h₂ : CSatisfies F v Γ (A :: Δ)) :
                    CSatisfies F v Γ Δ

                    Cut is locally valid in C⟨B, F⟩, so a valuation satisfying both premises of a cut instance satisfies its conclusion ([Fit21] Prop 8.7.3).

                    theorem Fitting2021.cut_not_local_stValid {B : Type u_1} {α : Type u_2} [Lattice B] [InvolutiveCompl B] [Lattice (Bilattice.Know B)] [Bilattice.Conflation B] [BoundedOrder (Bilattice.Know B)] (F : PrimeBifilter B) (p : α) (hbt : ⊥ ≠ ⊤) :
                    ¬∀ (v : α → B), (∀ (q : α), Bilattice.IsAnticonsistent (v q)) → STSatisfies F v [Fml.atom p] [] → STSatisfies F v [] [Fml.atom p] → STSatisfies F v [] []

                    The cut scheme fails locally in ST⟨B, F⟩ when the knowledge order is nontrivial, the ST half of [Fit21] Prop 8.7.3. The countermodel sends a letter to the knowledge top — designated and anticonsistent but not exact — so both cut premises hold while the empty conclusion fails.

                    Products of De Morgan algebras (§§8.8–8.9) #

                    def Fitting2021.exactIso {L : Type u_3} [Lattice L] [InvolutiveCompl L] :
                    { x : Bilattice.Product L L // Bilattice.IsExact x } ≃o L

                    The exact members of L ⊙ L are the pairs ⟨a, aᶜ⟩, and under the truth order they are L ([Fit21] Prop 8.8.3).

                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      structure Fitting2021.PrimeFilter (L : Type u_4) [Lattice L] :
                      Type u_4

                      A prime filter of L holds the designated values of a logical De Morgan algebra ⟨L, D⟩, nonempty and proper as §8.2 requires ([Fit21] Def 8.9.1).

                      • carrier : Set L

                        The designated values.

                      • nonempty : self.carrier.Nonempty
                      • ne_univ : self.carrier ≠ Set.univ
                      • inf_mem_iff {a b : L} : a ⊓ b ∈ self.carrier ↔ a ∈ self.carrier ∧ b ∈ self.carrier
                      • sup_mem_iff {a b : L} : a ⊔ b ∈ self.carrier ↔ a ∈ self.carrier ∨ b ∈ self.carrier
                      Instances For
                        @[instance_reducible]
                        instance Fitting2021.instMembershipPrimeFilter {L : Type u_3} [Lattice L] :
                        Membership L (PrimeFilter L)
                        Equations
                        def Fitting2021.PrimeFilter.prod {L : Type u_3} [Lattice L] [BoundedOrder L] (D : PrimeFilter L) :

                        D × L is a prime bifilter of L ⊙ L ([Fit21] Lemma 8.9.2).

                        Equations
                        • D.prod = { carrier := {x : Bilattice.Product L L | x.pro ∈ D}, nonempty := ⋯, ne_univ := ⋯, inf_mem_iff := ⋯, kInf_mem_iff := ⋯, sup_mem_iff := ⋯, kSup_mem_iff := ⋯ }
                        Instances For
                          theorem Fitting2021.PrimeFilter.mem_prod_iff {L : Type u_3} [Lattice L] [BoundedOrder L] (D : PrimeFilter L) (x : Bilattice.Product L L) :
                          x ∈ D.prod ↔ x.pro ∈ D
                          @[instance_reducible]
                          instance Fitting2021.instDecidablePredProductMemPrimeBifilterProdOfPrimeFilter {L : Type u_3} [Lattice L] [BoundedOrder L] (D : PrimeFilter L) [DecidablePred fun (x : L) => x ∈ D] :
                          DecidablePred fun (x : Bilattice.Product L L) => x ∈ D.prod
                          Equations
                          theorem Fitting2021.strictlyDesignated_prod_iff {L : Type u_3} [Lattice L] [BoundedOrder L] [InvolutiveCompl L] (D : PrimeFilter L) (x : Bilattice.Product L L) :
                          StrictlyDesignated D.prod x ↔ x.pro ∈ D ∧ x.con = x.proᶜ

                          In D × L the strictly designated values are the exact pairs ⟨a, aᶜ⟩ with a ∈ D.

                          theorem Fitting2021.tolerantlyDesignated_prod_iff {L : Type u_3} [Lattice L] [BoundedOrder L] [InvolutiveCompl L] (D : PrimeFilter L) (x : Bilattice.Product L L) :
                          TolerantlyDesignated D.prod x ↔ x.pro ∈ D ∧ x.proᶜ ≤ x.con

                          In D × L the tolerantly designated values are the anticonsistent pairs with a ∈ D.

                          def Fitting2021.Fml.evalL {α : Type u_2} {L : Type u_3} [Lattice L] [InvolutiveCompl L] (v : α → L) :
                          Fml α → L

                          The logic ⟨L, D⟩ evaluates formulas in L by meet, join and the De Morgan complement.

                          Equations
                          Instances For
                            def Fitting2021.LValid {α : Type u_2} {L : Type u_3} [Lattice L] [InvolutiveCompl L] (D : PrimeFilter L) (Γ Δ : List (Fml α)) :

                            A sequent is valid in the logic ⟨L, D⟩ when designated premises entail a designated conclusion (§8.2).

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              def Fitting2021.exactVal {α : Type u_2} {L : Type u_3} [Lattice L] [InvolutiveCompl L] (v : α → L) (p : α) :

                              The exact valuation of L ⊙ L a valuation in L determines, p ↦ ⟨v p, (v p)ᶜ⟩.

                              Equations
                              Instances For
                                theorem Fitting2021.exactVal_isExact {α : Type u_2} {L : Type u_3} [Lattice L] [InvolutiveCompl L] (v : α → L) (p : α) :
                                theorem Fitting2021.eq_exactVal_of_isExact {α : Type u_2} {L : Type u_3} [Lattice L] [InvolutiveCompl L] {v : α → Bilattice.Product L L} (hv : ∀ (p : α), Bilattice.IsExact (v p)) :
                                v = exactVal fun (p : α) => (v p).pro

                                Exact valuations are exactly the exactVals.

                                theorem Fitting2021.eval_exactVal {α : Type u_2} {L : Type u_3} [Lattice L] [InvolutiveCompl L] (v : α → L) (φ : Fml α) :

                                Evaluation in L ⊙ L along an exact valuation is evaluation in L.

                                theorem Fitting2021.cValid_prod_iff {α : Type u_2} {L : Type u_3} [Lattice L] [InvolutiveCompl L] [BoundedOrder L] (D : PrimeFilter L) (Γ Δ : List (Fml α)) :
                                CValid D.prod Γ Δ ↔ LValid D Γ Δ

                                C⟨L ⊙ L, D × L⟩ is the logic ⟨L, D⟩ ([Fit21] Prop 8.9.3). The two validate the same sequents, the exact values of the product corresponding to L and (D × L) ∩ E to D.

                                Generating strict/tolerant examples (§8.10) #

                                theorem Fitting2021.stValid_prod_iff {α : Type u_2} {L : Type u_3} [Lattice L] [InvolutiveCompl L] [BoundedOrder L] (D : PrimeFilter L) (Γ Δ : List (Fml α)) :
                                STValid D.prod Γ Δ ↔ LValid D Γ Δ

                                The strict/tolerant counterpart ST⟨L ⊙ L, D × L⟩ of a logical De Morgan algebra ⟨L, D⟩ has the same consequence relation ([Fit21] Prop 8.10.1).

                                theorem Fitting2021.cut_not_local_prod {α : Type u_2} {L : Type u_3} [Lattice L] [InvolutiveCompl L] [BoundedOrder L] [Nontrivial L] (D : PrimeFilter L) (p : α) :
                                ¬∀ (v : α → Bilattice.Product L L), (∀ (q : α), Bilattice.IsAnticonsistent (v q)) → STSatisfies D.prod v [Fml.atom p] [] → STSatisfies D.prod v [] [Fml.atom p] → STSatisfies D.prod v [] []

                                The strict/tolerant counterpart differs at the metaconsequence level, since cut fails locally in it ([Fit21] Prop 8.10.1).

                                Examples 8.10.2–8.10.5: classical logic, K3, LP and FDE #

                                Classical logic is the logical De Morgan algebra Bool with {true} designated.

                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  @[reducible, inline]

                                  The designated values {t, ⊤} of FOUR ([Fit21] Example 8.7.4) are {true} × Bool ([Fit21] Example 8.10.2).

                                  Equations
                                  Instances For

                                    FOUR's exact values are the classical {F, T} ([Fit21] Example 8.7.4).

                                    FOUR's anticonsistent values are {F, T, I}, the value space of LP ([Fit21] Example 8.7.4).

                                    theorem Fitting2021.four_stValid_iff_cValid {α : Type u_3} (Γ Δ : List (Fml α)) :

                                    ST and classical logic validate the same sequents, the original collapse of [CERvR12] (via [Fit21] Example 8.7.4).

                                    theorem Fitting2021.four_cut_not_local {α : Type u_3} (p : α) :
                                    ¬∀ (v : α → Bilattice.FOUR), (∀ (q : α), Bilattice.IsAnticonsistent (v q)) → STSatisfies fourBifilter v [Fml.atom p] [] → STSatisfies fourBifilter v [] [Fml.atom p] → STSatisfies fourBifilter v [] []

                                    And cut fails locally in ST over FOUR.

                                    K3, Kleene's strong three-valued logic, is SignType with {1} designated ([Fit21] Example 8.10.3).

                                    Equations
                                    Instances For

                                      LP, the logic of paradox of [Pri79], is SignType with {0, 1} (Fitting's {½, 1}) designated ([Fit21] Example 8.10.4).

                                      Equations
                                      Instances For
                                        @[instance_reducible]
                                        instance Fitting2021.instDecidablePredSignTypeMemPrimeFilterLpFilter :
                                        DecidablePred fun (x : SignType) => x ∈ lpFilter
                                        Equations
                                        @[reducible, inline]

                                        The bilattice NINE = SignType ⊙ SignType of Figure 4 ([Fit21] Example 8.10.3).

                                        Equations
                                        Instances For

                                          NINE's exact values are {f, d⊤, t} ([Fit21] §8.5).

                                          NINE's consistent values are the exact ones with {df, ⊥, dt} ([Fit21] §8.5).

                                          NINE's anticonsistent values are the exact ones with {of, ⊤, ot} ([Fit21] §8.5).

                                          theorem Fitting2021.nine_bifilters :
                                          (∀ (x : NINE), x ∈ k3Filter.prod ↔ x = Bilattice.Product.mk 1 (-1) ∨ x = Bilattice.Product.mk 1 0 ∨ x = Bilattice.Product.mk 1 1) ∧ ∀ (x : NINE), x ∈ lpFilter.prod ↔ x = Bilattice.Product.mk 0 (-1) ∨ x = Bilattice.Product.mk 1 (-1) ∨ x = Bilattice.Product.mk 0 0 ∨ x = Bilattice.Product.mk 1 0 ∨ x = Bilattice.Product.mk 0 1 ∨ x = Bilattice.Product.mk 1 1

                                          The two prime bifilters of NINE are {t, ot, ⊤} from K3 and the six-element {dt, t, d⊤, ot, of, ⊤} from LP ([Fit21] Examples 8.7.5 and 8.10.4).

                                          With K3 the strictly designated values reduce to {t}, so C⟨NINE, {1} × K3⟩ is K3 ([Fit21] Example 8.7.5).

                                          With LP the strictly designated values are {d⊤, t} and the tolerantly designated ones {t, d⊤, ot, of, ⊤} ([Fit21] Example 8.10.4).

                                          P, ¬P ⇒ Q fails in strict/tolerant LP as in LP, with countermodel v(P) = d⊤ and v(Q) = f ([Fit21] Example 8.10.4).

                                          FDE is the logical De Morgan algebra FOUR under the truth order with {t, ⊤} designated ([Fit21] Example 8.10.5).

                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            @[instance_reducible]
                                            Equations
                                            @[reducible, inline]

                                            The bilattice SIXTEEN = FOUR ⊙ FOUR of Figure 6 ([Fit21] Example 8.10.5).

                                            Equations
                                            Instances For
                                              theorem Fitting2021.fde_stValid_iff {α : Type u_3} (Γ Δ : List (Fml α)) :

                                              FDE's strict/tolerant counterpart validates exactly the sequents of FDE ([Fit21] Example 8.10.5).