Documentation

Foundation.Logic.Entailment

Basic definitions and properties of proof system related notions #

This file defines a characterization of the system/proof/provability/calculus of formulae. Also defines soundness and completeness.

Main Definitions #

Notation #

class LO.Entailment (S : Type u_1) (F : outParam (Type u_2)) :
Type (max (max u_1 u_2) (u_3 + 1))

Entailment relation on proof system S and formula F

  • Prf : SFType u_3
Instances
    def LO.Entailment.Provable {F : Type u_1} {S : Type u_2} [Entailment S F] (𝓢 : S) (φ : F) :

    Proposition that states φ is provable.

    Equations
    Instances For
      @[reducible, inline]
      abbrev LO.Entailment.Unprovable {F : Type u_1} {S : Type u_2} [Entailment S F] (𝓢 : S) (φ : F) :

      Abbreviation for unprovability.

      Equations
      Instances For
        def LO.Entailment.PrfSet {F : Type u_1} {S : Type u_2} [Entailment S F] (𝓢 : S) (s : Set F) :
        Type (max u_1 u_5)

        Proofs of set of formulae.

        Equations
        Instances For
          def LO.Entailment.ProvableSet {F : Type u_1} {S : Type u_2} [Entailment S F] (𝓢 : S) (s : Set F) :

          Proposition for existance of proofs of set of formulae.

          Equations
          Instances For
            def LO.Entailment.theory {F : Type u_1} {S : Type u_2} [Entailment S F] (𝓢 : S) :
            Set F

            Set of all provable formulae.

            Equations
            Instances For
              def LO.Entailment.cast {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} {φ ψ : F} (b : 𝓢 ⊢! φ) (e : φ = ψ := by simp) :
              𝓢 ⊢! ψ
              Equations
              Instances For
                theorem LO.Entailment.cast! {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} {φ ψ : F} (b : 𝓢 φ) (e : φ = ψ := by simp) :
                𝓢 ψ
                theorem LO.Entailment.unprovable_iff_isEmpty {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} {φ : F} :
                𝓢 φ IsEmpty (𝓢 ⊢! φ)
                noncomputable def LO.Entailment.Provable.get {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} {φ : F} (h : 𝓢 φ) :
                𝓢 ⊢! φ
                Equations
                Instances For
                  theorem LO.Entailment.provableSet_iff {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} {s : Set F} :
                  𝓢 ⊢* s Nonempty (𝓢 ⊢!* s)
                  noncomputable def LO.Entailment.ProvableSet.get {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} {s : Set F} (h : 𝓢 ⊢* s) :
                  𝓢 ⊢!* s
                  Equations
                  Instances For
                    class LO.Entailment.WeakerThan {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] (𝓢 : S) (𝓣 : T) :

                    Provability strength relation of proof systems

                    Instances
                      class LO.Entailment.StrictlyWeakerThan {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] (𝓢 : S) (𝓣 : T) :

                      Strict provability strength relation of proof systems

                      • weakerThan : 𝓢 𝓣
                      • notWT : ¬𝓣 𝓢
                      Instances
                        class LO.Entailment.Equiv {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] (𝓢 : S) (𝓣 : T) :

                        Provability equivalence relation of proof systems

                        Instances

                          Provability strength #

                          @[simp]
                          instance LO.Entailment.WeakerThan.refl {F : Type u_1} {S : Type u_2} [Entailment S F] (𝓢 : S) :
                          𝓢 𝓢
                          theorem LO.Entailment.WeakerThan.wk {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} (h : 𝓢 𝓣) {φ : F} :
                          𝓢 φ𝓣 φ
                          theorem LO.Entailment.WeakerThan.pbl {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} [h : 𝓢 𝓣] {φ : F} :
                          𝓢 φ𝓣 φ
                          theorem LO.Entailment.WeakerThan.trans {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] {𝓢 : S} {𝓣 : T} {𝓤 : U} :
                          𝓢 𝓣𝓣 𝓤𝓢 𝓤
                          @[implicit_reducible]
                          instance LO.Entailment.instTransWeakerThan {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] :
                          Trans (fun (x1 : S) (x2 : T) => x1 x2) (fun (x1 : T) (x2 : U) => x1 x2) fun (x1 : S) (x2 : U) => x1 x2
                          Equations
                          theorem LO.Entailment.weakerThan_iff {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} :
                          𝓢 𝓣 ∀ {φ : F}, 𝓢 φ𝓣 φ
                          theorem LO.Entailment.not_weakerThan_iff {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} :
                          ¬𝓢 𝓣 ∃ (φ : F), 𝓢 φ 𝓣 φ
                          theorem LO.Entailment.strictlyWeakerThan_iff {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} :
                          𝓢 𝓣 (∀ {φ : F}, 𝓢 φ𝓣 φ) ∃ (φ : F), 𝓢 φ 𝓣 φ
                          theorem LO.Entailment.swt_of_swt_of_wt {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] {𝓢 : S} {𝓣 : T} {𝓤 : U} :
                          𝓢 𝓣𝓣 𝓤𝓢 𝓤
                          theorem LO.Entailment.swt_of_wt_of_swt {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] {𝓢 : S} {𝓣 : T} {𝓤 : U} :
                          𝓢 𝓣𝓣 𝓤𝓢 𝓤
                          instance LO.Entailment.instWeakerThanOfStrictlyWeakerThan {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} [𝓢 𝓣] :
                          𝓢 𝓣
                          theorem LO.Entailment.StrictlyWeakerThan.trans {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] {𝓢 : S} {𝓣 : T} {𝓤 : U} :
                          𝓢 𝓣𝓣 𝓤𝓢 𝓤
                          @[implicit_reducible]
                          instance LO.Entailment.instTransStrictlyWeakerThanWeakerThan {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] :
                          Trans (fun (x1 : S) (x2 : T) => x1 x2) (fun (x1 : T) (x2 : U) => x1 x2) fun (x1 : S) (x2 : U) => x1 x2
                          Equations
                          @[implicit_reducible]
                          instance LO.Entailment.instTransWeakerThanStrictlyWeakerThan {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] :
                          Trans (fun (x1 : S) (x2 : T) => x1 x2) (fun (x1 : T) (x2 : U) => x1 x2) fun (x1 : S) (x2 : U) => x1 x2
                          Equations
                          @[implicit_reducible]
                          instance LO.Entailment.instTransStrictlyWeakerThan {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] :
                          Trans (fun (x1 : S) (x2 : T) => x1 x2) (fun (x1 : T) (x2 : U) => x1 x2) fun (x1 : S) (x2 : U) => x1 x2
                          Equations
                          theorem LO.Entailment.weakening {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} (h : 𝓢 𝓣) {φ : F} :
                          𝓢 φ𝓣 φ
                          theorem LO.Entailment.StrictlyWeakerThan.of_unprovable_provable {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} [𝓢 𝓣] {φ : F} (hS : 𝓢 φ) (hT : 𝓣 φ) :
                          𝓢 𝓣
                          theorem LO.Entailment.Equiv.iff {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} :
                          𝓢 𝓣 ∀ (φ : F), 𝓢 φ 𝓣 φ
                          @[simp]
                          instance LO.Entailment.Equiv.refl {F : Type u_1} {S : Type u_2} [Entailment S F] (𝓢 : S) :
                          𝓢 𝓢
                          theorem LO.Entailment.Equiv.symm {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} :
                          𝓢 𝓣𝓣 𝓢
                          theorem LO.Entailment.Equiv.trans {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] {𝓢 : S} {𝓣 : T} {𝓤 : U} :
                          𝓢 𝓣𝓣 𝓤𝓢 𝓤
                          theorem LO.Entailment.Equiv.antisymm_iff {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} :
                          𝓢 𝓣 𝓢 𝓣 𝓣 𝓢
                          theorem LO.Entailment.Equiv.antisymm {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} :
                          𝓢 𝓣 𝓣 𝓢𝓢 𝓣

                          Alias of the reverse direction of LO.Entailment.Equiv.antisymm_iff.

                          theorem LO.Entailment.Equiv.le {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} :
                          𝓢 𝓣𝓢 𝓣
                          @[implicit_reducible]
                          instance LO.Entailment.instTransEquiv {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] :
                          Trans (fun (x1 : S) (x2 : T) => x1 x2) (fun (x1 : T) (x2 : U) => x1 x2) fun (x1 : S) (x2 : U) => x1 x2
                          Equations
                          @[implicit_reducible]
                          instance LO.Entailment.instTransEquivWeakerThan {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] :
                          Trans (fun (x1 : S) (x2 : T) => x1 x2) (fun (x1 : T) (x2 : U) => x1 x2) fun (x1 : S) (x2 : U) => x1 x2
                          Equations
                          @[implicit_reducible]
                          instance LO.Entailment.instTransEquivWeakerThan_1 {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] :
                          Trans (fun (x1 : S) (x2 : T) => x1 x2) (fun (x1 : T) (x2 : U) => x1 x2) fun (x1 : S) (x2 : U) => x1 x2
                          Equations
                          @[implicit_reducible]
                          instance LO.Entailment.instTransWeakerThanEquiv {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] :
                          Trans (fun (x1 : S) (x2 : T) => x1 x2) (fun (x1 : T) (x2 : U) => x1 x2) fun (x1 : S) (x2 : U) => x1 x2
                          Equations
                          @[implicit_reducible]
                          instance LO.Entailment.instTransEquivStrictlyWeakerThan {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] :
                          Trans (fun (x1 : S) (x2 : T) => x1 x2) (fun (x1 : T) (x2 : U) => x1 x2) fun (x1 : S) (x2 : U) => x1 x2
                          Equations
                          @[implicit_reducible]
                          instance LO.Entailment.instTransStrictlyWeakerThanEquiv {F : Type u_1} {S : Type u_2} {T : Type u_3} {U : Type u_4} [Entailment S F] [Entailment T F] [Entailment U F] :
                          Trans (fun (x1 : S) (x2 : T) => x1 x2) (fun (x1 : T) (x2 : U) => x1 x2) fun (x1 : S) (x2 : U) => x1 x2
                          Equations
                          theorem LO.Entailment.iff_strictlyWeakerThan_weakerThan_not_equiv {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} :
                          𝓢 𝓣 𝓢 𝓣 ¬𝓢 𝓣
                          class LO.Entailment.Incomparable {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] (𝓢 : S) (𝓣 : T) :
                          • notWT₁ : ¬𝓢 𝓣
                          • notWT₂ : ¬𝓣 𝓢
                          Instances
                            theorem LO.Entailment.Incomparable.of_unprovable {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} (h₁ : ∃ (φ : F), 𝓢 φ 𝓣 φ) (h₂ : ∃ (ψ : F), 𝓣 ψ 𝓢 ψ) :
                            Incomparable 𝓢 𝓣

                            Consistency and inconsistency #

                            @[simp]
                            theorem LO.Entailment.provableSet_theory {F : Type u_1} {S : Type u_2} [Entailment S F] (𝓢 : S) :
                            𝓢 ⊢* theory 𝓢
                            def LO.Entailment.Inconsistent {F : Type u_1} {S : Type u_2} [Entailment S F] (𝓢 : S) :
                            Equations
                            Instances For
                              class LO.Entailment.Consistent {F : Type u_1} {S : Type u_2} [Entailment S F] (𝓢 : S) :
                              Instances
                                theorem LO.Entailment.inconsistent_def {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} :
                                Inconsistent 𝓢 ∀ (φ : F), 𝓢 φ
                                theorem LO.Entailment.inconsistent_iff_theory_eq {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} :
                                @[simp]
                                theorem LO.Entailment.not_inconsistent_iff_consistent {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} :
                                theorem LO.Entailment.Consistent.not_inc {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} :

                                Alias of the reverse direction of LO.Entailment.not_inconsistent_iff_consistent.

                                @[simp]
                                theorem LO.Entailment.not_consistent_iff_inconsistent {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} :
                                theorem LO.Entailment.Inconsistent.not_con {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} :

                                Alias of the reverse direction of LO.Entailment.not_consistent_iff_inconsistent.

                                theorem LO.Entailment.consistent_iff_exists_unprovable {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} :
                                Consistent 𝓢 ∃ (φ : F), 𝓢 φ
                                theorem LO.Entailment.Consistent.exists_unprovable {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} :
                                Consistent 𝓢∃ (φ : F), 𝓢 φ

                                Alias of the forward direction of LO.Entailment.consistent_iff_exists_unprovable.

                                theorem LO.Entailment.Consistent.of_unprovable {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} {φ : F} (h : 𝓢 φ) :
                                theorem LO.Entailment.Inconsistent.theory_eq {F : Type u_1} {S : Type u_2} [Entailment S F] {𝓢 : S} :

                                Alias of the forward direction of LO.Entailment.inconsistent_iff_theory_eq_univ.

                                theorem LO.Entailment.Inconsistent.of_ge {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} (h𝓢 : Inconsistent 𝓢) (h : 𝓢 𝓣) :
                                theorem LO.Entailment.Consistent.of_le {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] {𝓢 : S} {𝓣 : T} (h𝓢 : Consistent 𝓢) (h : 𝓣 𝓢) :
                                class LO.Entailment.DeductiveExplosion {F : Type u_1} (S : Type u_2) [Entailment S F] [LogicalConnective F] :
                                Type (max (max u_1 u_2) u_5)
                                • dexp {𝓢 : S} : 𝓢 ⊢! (φ : F) → 𝓢 ⊢! φ
                                Instances
                                  def LO.Entailment.DeductiveExplosion.dexp! {F : Type u_1} {S : Type u_2} [Entailment S F] [LogicalConnective F] [DeductiveExplosion S] {𝓢 : S} (h : 𝓢 ) (φ : F) :
                                  𝓢 φ
                                  Equations
                                  • =
                                  Instances For
                                    theorem LO.Entailment.inconsistent_of_provable {F : Type u_1} {S : Type u_2} [Entailment S F] [LogicalConnective F] [DeductiveExplosion S] {𝓢 : S} :
                                    𝓢 Inconsistent 𝓢

                                    Alias of the reverse direction of LO.Entailment.inconsistent_iff_provable_bot.

                                    theorem LO.Entailment.Consistent.not_bot {F : Type u_1} {S : Type u_2} [Entailment S F] [LogicalConnective F] [DeductiveExplosion S] {𝓢 : S} :
                                    Consistent 𝓢𝓢

                                    Alias of the forward direction of LO.Entailment.consistent_iff_unprovable_bot.

                                    Completeness and incompleteness #

                                    class LO.Entailment.Complete {F : Type u_1} {S : Type u_2} [Entailment S F] [LogicalConnective F] (𝓢 : S) :

                                    𝓢 is complete if, for every formula, either it or its negation is provable by 𝓢.

                                    Instances
                                      def LO.Entailment.Independent {F : Type u_1} {S : Type u_2} [Entailment S F] [LogicalConnective F] (𝓢 : S) (φ : F) :

                                      A formula φ is independent from 𝓢 if, neither it nor its negation is provable by 𝓢.

                                      Equations
                                      Instances For
                                        class LO.Entailment.Incomplete {F : Type u_1} {S : Type u_2} [Entailment S F] [LogicalConnective F] (𝓢 : S) :

                                        A proof system is incomplete if and only if there exists a formula that is both unprovable and irrefutable.

                                        Instances
                                          theorem LO.Entailment.complete_def {F : Type u_1} {S : Type u_2} [Entailment S F] [LogicalConnective F] {𝓢 : S} :
                                          Complete 𝓢 ∀ (φ : F), 𝓢 φ 𝓢 φ
                                          theorem LO.Entailment.incomplete_def {F : Type u_1} {S : Type u_2} [Entailment S F] [LogicalConnective F] {𝓢 : S} :
                                          Incomplete 𝓢 ∃ (φ : F), Independent 𝓢 φ
                                          @[simp]
                                          theorem LO.Entailment.not_complete_iff_incomplete {F : Type u_1} {S : Type u_2} [Entailment S F] [LogicalConnective F] {𝓢 : S} :
                                          @[simp]
                                          theorem LO.Entailment.not_incomplete_iff_complete {F : Type u_1} {S : Type u_2} [Entailment S F] [LogicalConnective F] {𝓢 : S} :
                                          instance LO.Entailment.consistent_of_incomplete {F : Type u_1} {S : Type u_2} [Entailment S F] [LogicalConnective F] {𝓢 : S} [h : Incomplete 𝓢] :

                                          Axiomatized provability #

                                          class LO.Entailment.Axiomatized {F : Type u_1} (S : Type u_2) [Entailment S F] [AdjunctiveSet F S] :
                                          Type (max (max u_1 u_2) u_5)
                                          Instances
                                            def LO.Entailment.wk {F : Type u_1} {S : Type u_2} {inst✝ : Entailment S F} {inst✝¹ : AdjunctiveSet F S} [self : Axiomatized S] {φ : F} {𝓢 𝓣 : S} :
                                            𝓢 𝓣𝓢 ⊢! φ𝓣 ⊢! φ

                                            Alias of LO.Entailment.Axiomatized.weakening.

                                            Equations
                                            Instances For
                                              class LO.Entailment.StrongCut {F : Type u_1} (S : Type u_2) (T : Type u_3) [Entailment S F] [Entailment T F] [AdjunctiveSet F T] :
                                              Type (max (max (max (max u_1 u_2) u_3) u_5) u_6)
                                              Instances
                                                def LO.Entailment.Axiomatized.byAxm {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {φ : F} {𝓢 : S} (h : φ 𝓢) :
                                                𝓢 ⊢! φ
                                                Equations
                                                Instances For
                                                  theorem LO.Entailment.Axiomatized.by_axm {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {φ : F} {𝓢 : S} (h : φ 𝓢) :
                                                  𝓢 φ
                                                  @[simp]
                                                  theorem LO.Entailment.Axiomatized.provable_refl {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] (𝓢 : S) :
                                                  theorem LO.Entailment.Axiomatized.axm_subset {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] (𝓢 : S) :
                                                  def LO.Entailment.Axiomatized.adjoin {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] (φ : F) (𝓢 : S) :
                                                  adjoin φ 𝓢 ⊢! φ
                                                  Equations
                                                  Instances For
                                                    @[simp]
                                                    def LO.Entailment.Axiomatized.adjoin! {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] (φ : F) (𝓢 : S) :
                                                    adjoin φ 𝓢 φ
                                                    Equations
                                                    • =
                                                    Instances For
                                                      theorem LO.Entailment.Axiomatized.le_of_subset {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {𝓢 𝓣 : S} (h : 𝓢 𝓣) :
                                                      𝓢 𝓣
                                                      theorem LO.Entailment.Axiomatized.weakening! {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {𝓢 𝓣 : S} (h : 𝓢 𝓣 := by simp) {φ : F} :
                                                      𝓢 φ𝓣 φ
                                                      @[reducible, inline]
                                                      abbrev LO.Entailment.Axiomatized.weakerThanOfSubset {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {𝓢 𝓣 : S} (h : 𝓢 𝓣) :
                                                      𝓢 𝓣
                                                      Equations
                                                      • =
                                                      Instances For
                                                        def LO.Entailment.Axiomatized.toAdjoin {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {ψ φ : F} {𝓢 : S} :
                                                        𝓢 ⊢! ψadjoin φ 𝓢 ⊢! ψ
                                                        Equations
                                                        Instances For
                                                          def LO.Entailment.Axiomatized.to_adjoin {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {ψ φ : F} {𝓢 : S} :
                                                          𝓢 ψadjoin φ 𝓢 ψ
                                                          Equations
                                                          • =
                                                          Instances For
                                                            def LO.Entailment.byAxm {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {φ : F} {𝓢 : S} (h : φ 𝓢) :
                                                            𝓢 ⊢! φ

                                                            Alias of LO.Entailment.Axiomatized.byAxm.

                                                            Equations
                                                            Instances For
                                                              theorem LO.Entailment.by_axm {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {φ : F} {𝓢 : S} (h : φ 𝓢) :
                                                              𝓢 φ

                                                              Alias of LO.Entailment.Axiomatized.by_axm.

                                                              theorem LO.Entailment.wk! {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {𝓢 𝓣 : S} (h : 𝓢 𝓣 := by simp) {φ : F} :
                                                              𝓢 φ𝓣 φ

                                                              Alias of LO.Entailment.Axiomatized.weakening!.

                                                              def LO.Entailment.FiniteAxiomatizable {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] (𝓢 : S) :
                                                              Equations
                                                              Instances For
                                                                theorem LO.Entailment.Consistent.of_subset {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {𝓢 𝓣 : S} (h𝓢 : Consistent 𝓢) (h : 𝓣 𝓢) :
                                                                theorem LO.Entailment.Inconsistent.of_supset {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {𝓢 𝓣 : S} (h𝓢 : Inconsistent 𝓢) (h : 𝓢 𝓣) :
                                                                theorem LO.Entailment.StrongCut.cut! {F : Type u_1} {S : Type u_2} {T : Type u_3} [Entailment S F] [Entailment T F] [AdjunctiveSet F T] [StrongCut S T] {𝓢 : S} {𝓣 : T} {φ : F} (H : 𝓢 ⊢* AdjunctiveSet.set 𝓣) (hp : 𝓣 φ) :
                                                                𝓢 φ
                                                                @[reducible, inline]
                                                                noncomputable abbrev LO.Entailment.WeakerThan.ofAxm! {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [StrongCut S S] {𝓢₁ 𝓢₂ : S} (B : 𝓢₂ ⊢* AdjunctiveSet.set 𝓢₁) :
                                                                𝓢₁ 𝓢₂
                                                                Equations
                                                                • =
                                                                Instances For
                                                                  @[reducible, inline]
                                                                  abbrev LO.Entailment.WeakerThan.ofSubset {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Axiomatized S] {𝓢 𝓣 : S} (h : 𝓢 𝓣) :
                                                                  𝓢 𝓣
                                                                  Equations
                                                                  • =
                                                                  Instances For

                                                                    Compactness #

                                                                    class LO.Entailment.Compact {F : Type u_1} (S : Type u_2) [Entailment S F] [AdjunctiveSet F S] :
                                                                    Type (max (max u_1 u_2) u_5)
                                                                    Instances
                                                                      theorem LO.Entailment.Compact.finite_provable {F : Type u_1} {S : Type u_2} [Entailment S F] [AdjunctiveSet F S] [Compact S] {φ : F} {𝓢 : S} (h : 𝓢 φ) :
                                                                      𝓕𝓢, AdjunctiveSet.Finite 𝓕 𝓕 φ
                                                                      theorem LO.Entailment.consistent_compact {S : Type u_1} {F : Type u_2} [LogicalConnective F] [Entailment S F] [DeductiveExplosion S] [AdjunctiveSet F S] [Axiomatized S] [Compact S] {𝓢 : S} :
                                                                      Consistent 𝓢 𝓕𝓢, AdjunctiveSet.Finite 𝓕Consistent 𝓕

                                                                      Deduction theorem #

                                                                      class LO.Entailment.Deduction (S : Type u_1) {F : Type u_2} [LogicalConnective F] [Entailment S F] [Adjoin F S] :
                                                                      Type (max (max u_1 u_2) u_3)
                                                                      Instances
                                                                        def LO.Entailment.deduction {S : Type u_1} {F : Type u_2} {inst✝ : LogicalConnective F} {inst✝¹ : Entailment S F} {inst✝² : Adjoin F S} [self : Deduction S] {φ ψ : F} {𝓢 : S} :
                                                                        adjoin φ 𝓢 ⊢! ψ𝓢 ⊢! φ 🡒 ψ

                                                                        Alias of LO.Entailment.Deduction.ofInsert.

                                                                        Equations
                                                                        Instances For
                                                                          theorem LO.Entailment.Deduction.of_insert! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [Entailment S F] [Adjoin F S] [Deduction S] {𝓢 : S} {φ ψ : F} (h : adjoin φ 𝓢 ψ) :
                                                                          𝓢 φ 🡒 ψ
                                                                          theorem LO.Entailment.deduction! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [Entailment S F] [Adjoin F S] [Deduction S] {𝓢 : S} {φ ψ : F} (h : adjoin φ 𝓢 ψ) :
                                                                          𝓢 φ 🡒 ψ

                                                                          Alias of LO.Entailment.Deduction.of_insert!.

                                                                          theorem LO.Entailment.Deduction.inv! {S : Type u_1} {F : Type u_2} [LogicalConnective F] [Entailment S F] [Adjoin F S] [Deduction S] {𝓢 : S} {φ ψ : F} (h : 𝓢 φ 🡒 ψ) :
                                                                          adjoin φ 𝓢 ψ
                                                                          theorem LO.Entailment.deduction_iff {S : Type u_1} {F : Type u_2} [LogicalConnective F] [Entailment S F] [Adjoin F S] [Deduction S] {𝓢 : S} {φ ψ : F} :
                                                                          adjoin φ 𝓢 ψ 𝓢 φ 🡒 ψ

                                                                          Soundness and Completeness #

                                                                          class LO.Sound {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] (𝓢 : S) (𝓜 : M) :
                                                                          • sound {φ : F} : 𝓢 φ𝓜 φ
                                                                          Instances
                                                                            class LO.Complete {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] (𝓢 : S) (𝓜 : M) :
                                                                            • complete {φ : F} : 𝓜 φ𝓢 φ
                                                                            Instances
                                                                              theorem LO.Sound.not_provable_of_countermodel {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {𝓜 : M} [Sound 𝓢 𝓜] {φ : F} (hp : 𝓜 φ) :
                                                                              𝓢 φ
                                                                              theorem LO.Sound.consistent_of_meaningful {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {𝓜 : M} [Sound 𝓢 𝓜] :
                                                                              theorem LO.Sound.consistent_of_model {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} [LogicalConnective F] [Semantics.Bot M] (𝓜 : M) [Sound 𝓢 𝓜] :
                                                                              theorem LO.Sound.modelsSet_of_prfSet {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {𝓜 : M} [Sound 𝓢 𝓜] {T : Set F} (b : 𝓢 ⊢* T) :
                                                                              𝓜 ⊧* T
                                                                              theorem LO.Sound.consequence_of_provable {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {T : Set F} [Sound 𝓢 (Semantics.models M T)] {φ : F} :
                                                                              𝓢 φT ⊨[M] φ
                                                                              theorem LO.Sound.consistent_of_satisfiable {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {T : Set F} [Sound 𝓢 (Semantics.models M T)] [LogicalConnective F] [∀ (𝓜 : M), Semantics.Meaningful 𝓜] :
                                                                              theorem LO.Complete.exists_countermodel_of_not_provable {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {𝓜 : M} [Complete 𝓢 𝓜] {φ : F} (h : 𝓢 φ) :
                                                                              𝓜 φ
                                                                              theorem LO.Complete.meaningful_of_consistent {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {𝓜 : M} [Complete 𝓢 𝓜] :
                                                                              theorem LO.Complete.provable_of_consequence {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {s : Set F} [Complete 𝓢 (Semantics.models M s)] {φ : F} :
                                                                              s ⊨[M] φ𝓢 φ
                                                                              theorem LO.Complete.provable_iff_consequence {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {s : Set F} [Complete 𝓢 (Semantics.models M s)] [Sound 𝓢 (Semantics.models M s)] {φ : F} :
                                                                              s ⊨[M] φ 𝓢 φ
                                                                              theorem LO.Complete.satisfiable_of_consistent {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {s : Set F} [Complete 𝓢 (Semantics.models M s)] [LogicalConnective F] [∀ (𝓜 : M), Semantics.Meaningful 𝓜] :
                                                                              theorem LO.Complete.inconsistent_of_unsatisfiable {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {s : Set F} [Complete 𝓢 (Semantics.models M s)] [LogicalConnective F] [∀ (𝓜 : M), Semantics.Meaningful 𝓜] :
                                                                              theorem LO.Complete.consistent_iff_satisfiable {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {s : Set F} [Complete 𝓢 (Semantics.models M s)] [LogicalConnective F] [∀ (𝓜 : M), Semantics.Meaningful 𝓜] [Sound 𝓢 (Semantics.models M s)] :
                                                                              theorem LO.Complete.weakerthan_of_models {S : Type u_1} {F : Type u_2} [Entailment S F] {M : Type u_3} [Semantics M F] {𝓢 : S} {s : Set F} [Complete 𝓢 (Semantics.models M s)] {𝓣 : S} {t : Set F} [Sound 𝓣 (Semantics.models M t)] (H : ∀ (𝓜 : M), 𝓜 ⊧* s𝓜 ⊧* t) :
                                                                              𝓣 𝓢
                                                                              structure LO.Entailment.Pullback (S : Type u_1) {F : Type u_2} {G : Sort u_3} (f : GF) :
                                                                              Type u_1
                                                                              • forget : S
                                                                              Instances For
                                                                                @[reducible, inline]
                                                                                abbrev LO.Entailment.pullback {S : Type u_1} {F : Type u_2} {G : Sort u_3} (𝓢 : S) (f : GF) :
                                                                                Equations
                                                                                Instances For
                                                                                  @[implicit_reducible]
                                                                                  instance LO.Entailment.instPullback {S : Type u_1} {F : Type u_2} [Entailment S F] {G : Type u_4} (f : GF) :
                                                                                  Equations
                                                                                  @[simp]
                                                                                  theorem LO.Entailment.Pullback.pullback_forget {G : Sort u_3} {S : Type u_1} {F : Type u_2} {f : GF} (𝓢 : S) :
                                                                                  (pullback 𝓢 f).forget = 𝓢
                                                                                  @[simp]
                                                                                  theorem LO.Entailment.Pullback.provable_iff {G : Type u_3} {S : Type u_1} {F : Type u_2} [Entailment S F] {f : GF} {𝓢 : S} {φ : G} :
                                                                                  pullback 𝓢 f φ 𝓢 f φ
                                                                                  @[simp]
                                                                                  theorem LO.Entailment.Pullback.unprovable_iff {G : Type u_3} {S : Type u_1} {F : Type u_2} [Entailment S F] {f : GF} {𝓢 : S} {φ : G} :
                                                                                  pullback 𝓢 f φ 𝓢 f φ
                                                                                  @[simp]
                                                                                  theorem LO.Entailment.Pullback.provableSet_iff {G : Type u_3} {S : Type u_1} {F : Type u_2} [Entailment S F] {f : GF} {𝓢 : S} {s : Set G} :
                                                                                  pullback 𝓢 f ⊢* s 𝓢 ⊢* f '' s
                                                                                  @[simp]
                                                                                  theorem LO.Entailment.Pullback.theory_eq {G : Type u_3} {S : Type u_1} {F : Type u_2} [Entailment S F] {f : GF} (𝓢 : S) :
                                                                                  theory (pullback 𝓢 f) = f ⁻¹' theory 𝓢
                                                                                  theorem LO.Entailment.Pullback.weakerThan {G : Type u_4} {S : Type u_1} {F : Type u_2} [Entailment S F] {f : GF} (𝓢 𝓣 : S) (h : 𝓢 𝓣) :
                                                                                  pullback 𝓢 f pullback 𝓣 f
                                                                                  theorem LO.Entailment.Pullback.inconsistent {G : Type u_4} {S : Type u_1} {F : Type u_2} [Entailment S F] {f : GF} {𝓢 : S} :
                                                                                  theorem LO.Entailment.Pullback.consistent {G : Type u_3} {S : Type u_1} {F : Type u_2} [Entailment S F] {f : GF} {𝓢 : S} :
                                                                                  Consistent (pullback 𝓢 f)Consistent 𝓢