Documentation

Foundation.Logic.Calculus

Sequent calculus and variants #

This file defines a characterization of Tait style calculus and Gentzen style calculus.

Main Definitions #

One-sided $\mathbf{LK}$ #

class LO.OneSidedLK {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] (𝔇 : List FType u_2) :
Type (max u_1 u_2)
  • identity (φ : F) : 𝔇 [φ, φ]
  • contraction {Δ Γ : List F} : 𝔇 ΔΔ Γ𝔇 Γ
  • verum : 𝔇 []
  • and {φ : F} {Γ : List F} {ψ : F} : 𝔇 (φ :: Γ)𝔇 (ψ :: Γ)𝔇 (φ ψ :: Γ)
  • or {φ ψ : F} {Γ : List F} : 𝔇 (φ :: ψ :: Γ)𝔇 (φ ψ :: Γ)
Instances
    class LO.OneSidedLK.Cut {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] (𝔇 : List FType u_2) extends LO.OneSidedLK 𝔇 :
    Type (max u_1 u_2)
    Instances
      def LO.OneSidedLK.cast {F : Type u_1} {𝔇 : List FType u_2} {Γ Δ : List F} (b : 𝔇 Γ) (h : Γ = Δ := by simp) :
      𝔇 Δ
      Equations
      Instances For
        def LO.OneSidedLK.contra {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {Γ Δ : List F} [OneSidedLK 𝔇] (d : 𝔇 Γ) (h : Γ Δ := by simp) :
        𝔇 Δ
        Equations
        Instances For
          def LO.OneSidedLK.rotate {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {φ : F} {Γ : List F} [OneSidedLK 𝔇] (d : 𝔇 (φ :: Γ)) :
          𝔇 (Γ ++ [φ])
          Equations
          Instances For
            def LO.OneSidedLK.close {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {Γ : List F} [OneSidedLK 𝔇] (φ : F) (hp : φ Γ := by simp) (hn : φ Γ := by simp) :
            𝔇 Γ
            Equations
            Instances For
              def LO.OneSidedLK.top {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {Γ : List F} [OneSidedLK 𝔇] (h : Γ := by simp) :
              𝔇 Γ
              Equations
              Instances For
                def LO.OneSidedLK.tensor {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {Γ Δ : List F} [OneSidedLK 𝔇] {φ ψ : F} ( : 𝔇 (φ :: Γ)) ( : 𝔇 (ψ :: Δ)) :
                𝔇 (φ ψ :: Γ ++ Δ)
                Equations
                Instances For
                  def LO.OneSidedLK.swap₁ {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {φ₂ φ₁ : F} {Γ : List F} [OneSidedLK 𝔇] (d : 𝔇 (φ₂ :: φ₁ :: Γ)) :
                  𝔇 (φ₁ :: φ₂ :: Γ)
                  Equations
                  Instances For
                    def LO.OneSidedLK.swap₂ {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {φ₃ φ₁ φ₂ : F} {Γ : List F} [OneSidedLK 𝔇] (d : 𝔇 (φ₃ :: φ₁ :: φ₂ :: Γ)) :
                    𝔇 (φ₁ :: φ₂ :: φ₃ :: Γ)
                    Equations
                    Instances For
                      def LO.OneSidedLK.swap₃ {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {φ₄ φ₁ φ₂ φ₃ : F} {Γ : List F} [OneSidedLK 𝔇] (d : 𝔇 (φ₄ :: φ₁ :: φ₂ :: φ₃ :: Γ)) :
                      𝔇 (φ₁ :: φ₂ :: φ₃ :: φ₄ :: Γ)
                      Equations
                      Instances For
                        def LO.OneSidedLK.cut {F : Type u_1} {inst✝ : LogicalConnective F} {inst✝¹ : DeMorgan F} {inst✝² : TildeInvolutive F} {𝔇 : List FType u_2} [self : Cut 𝔇] {φ : F} {Γ Δ : List F} :
                        𝔇 (φ :: Γ)𝔇 (φ :: Δ)𝔇 (Γ ++ Δ)

                        Alias of LO.OneSidedLK.Cut.cut.

                        Equations
                        Instances For
                          def LO.OneSidedLK.eCut {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {φ : F} {Γ : List F} {ψ : F} {Δ : List F} [Cut 𝔇] (d₁ : 𝔇 (φ :: Γ)) (d₂ : 𝔇 (ψ :: Δ)) (e : φ = ψ := by simp) :
                          𝔇 (Γ ++ Δ)
                          Equations
                          Instances For
                            @[irreducible]
                            def LO.OneSidedLK.disj₂ {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {Γ Δ : List F} [Cut 𝔇] :
                            𝔇 (Γ ++ Δ)𝔇 (Γ :: Δ)
                            Equations
                            Instances For
                              def LO.OneSidedLK.conj₂ {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} [OneSidedLK 𝔇] {Γ Δ : List F} (d : (φ : F) → φ Γ𝔇 (φ :: Δ)) :
                              𝔇 (Γ :: Δ)
                              Equations
                              Instances For
                                class LO.OneSidedLK.PrincipalEntailment {F : Type u_1} (𝔇 : outParam (List FType u_3)) {P : Type u_4} [Entailment P F] (𝓟 : P) :
                                Type (max (max u_1 u_3) u_5)

                                An entailment relation which is determined solely by derivability.

                                Instances
                                  theorem LO.OneSidedLK.PrincipalEntailment.provable_iff {F : Type u_1} {𝔇 : List FType u_2} {P : Type u_3} [Entailment P F] {𝓟 : P} [PrincipalEntailment 𝔇 𝓟] {φ : F} :
                                  𝓟 φ Nonempty (𝔇 [φ])
                                  @[implicit_reducible]
                                  instance LO.OneSidedLK.PrincipalEntailment.instModusPonens {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {P : Type u_3} [Entailment P F] (𝓟 : P) [PrincipalEntailment 𝔇 𝓟] [Cut 𝔇] :
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  @[implicit_reducible]
                                  instance LO.OneSidedLK.PrincipalEntailment.instCl {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {P : Type u_3} [Entailment P F] (𝓟 : P) [PrincipalEntailment 𝔇 𝓟] [Cut 𝔇] :
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  theorem LO.OneSidedLK.PrincipalEntailment.derivable_iff_provable_disj {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {P : Type u_3} [Entailment P F] {𝓟 : P} [PrincipalEntailment 𝔇 𝓟] [Cut 𝔇] {Γ : List F} :
                                  Nonempty (𝔇 Γ) 𝓟 Γ
                                  @[reducible, inline]
                                  abbrev LO.OneSidedLK.Pullback {F : Type u_1} [LogicalConnective F] (𝔇 : List FType u_3) {G : Type u_4} [LogicalConnective G] (f : G →ˡᶜ F) :
                                  List GType u_3
                                  Equations
                                  Instances For
                                    def LO.OneSidedLK.Pullback.cast {F : Type u_1} [LogicalConnective F] {𝔇 : List FType u_2} {G : Type u_3} [LogicalConnective G] {f : G →ˡᶜ F} {Δ : List F} {Γ : List G} (d : 𝔇 Δ) (h : Δ = List.map (⇑f) Γ := by simp) :
                                    Pullback 𝔇 f Γ
                                    Equations
                                    Instances For
                                      def LO.OneSidedLK.Pullback.uncast {F : Type u_1} [LogicalConnective F] {𝔇 : List FType u_2} {G : Type u_3} [LogicalConnective G] {f : G →ˡᶜ F} {Γ : List G} {Δ : List F} (d : Pullback 𝔇 f Γ) (h : Δ = List.map (⇑f) Γ := by simp) :
                                      𝔇 Δ
                                      Equations
                                      Instances For
                                        @[implicit_reducible]
                                        instance LO.OneSidedLK.Pullback.oneSidedLK {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {G : Type u_3} [LogicalConnective G] [DeMorgan G] [TildeInvolutive G] {f : G →ˡᶜ F} [OneSidedLK 𝔇] :
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        @[implicit_reducible]
                                        instance LO.OneSidedLK.Pullback.cut {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {G : Type u_3} [LogicalConnective G] [DeMorgan G] [TildeInvolutive G] {f : G →ˡᶜ F} [Cut 𝔇] :
                                        Cut (Pullback 𝔇 f)
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        @[simp]
                                        theorem LO.OneSidedLK.Pullback.nonempty_iff {F : Type u_1} [LogicalConnective F] {𝔇 : List FType u_2} {G : Type u_3} [LogicalConnective G] {f : G →ˡᶜ F} {Γ : List G} :
                                        Nonempty (Pullback 𝔇 f Γ) Nonempty (𝔇 (List.map (⇑f) Γ))
                                        @[simp]
                                        theorem LO.OneSidedLK.Pullback.isEmpty_iff {F : Type u_1} [LogicalConnective F] {𝔇 : List FType u_2} {G : Type u_3} [LogicalConnective G] {f : G →ˡᶜ F} {Γ : List G} :
                                        IsEmpty (Pullback 𝔇 f Γ) IsEmpty (𝔇 (List.map (⇑f) Γ))
                                        class LO.OneSidedLK.ContextualEntailment {F : Type u_1} [LogicalConnective F] (𝔇 : outParam (List FType u_3)) (S : Type u_4) [Entailment S F] [AdjunctiveSet F S] :
                                        Type (max (max (max u_1 u_3) u_4) u_5)

                                        An entailment relation which is determined by a context and derivability.

                                        Instances
                                          theorem LO.OneSidedLK.ContextualEntailment.provable_iff {F : Type u_1} [LogicalConnective F] {𝔇 : List FType u_2} {S : Type u_3} [Entailment S F] [AdjunctiveSet F S] [ContextualEntailment 𝔇 S] {φ : F} {𝓢 : S} :
                                          𝓢 φ ∃ (Γ : List F), (∀ ψΓ, ψ 𝓢) Nonempty (𝔇 (φ :: Γ))
                                          def LO.OneSidedLK.ContextualEntailment.toProof {F : Type u_1} [LogicalConnective F] {𝔇 : List FType u_2} {S : Type u_3} [Entailment S F] [AdjunctiveSet F S] [ContextualEntailment 𝔇 S] {φ : F} (𝓢 : S) (d : 𝔇 [φ]) :
                                          𝓢 ⊢! φ
                                          Equations
                                          Instances For
                                            def LO.OneSidedLK.ContextualEntailment.ofAxiomSubset {F : Type u_1} [LogicalConnective F] {𝔇 : List FType u_2} {S : Type u_3} [Entailment S F] [AdjunctiveSet F S] [ContextualEntailment 𝔇 S] {φ : F} {𝓢 𝓤 : S} :
                                            𝓢 ⊢! φ𝓢 𝓤𝓤 ⊢! φ
                                            Equations
                                            Instances For
                                              @[implicit_reducible]
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              @[implicit_reducible]
                                              instance LO.OneSidedLK.ContextualEntailment.instModusPonens {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {S : Type u_3} [Entailment S F] [AdjunctiveSet F S] [ContextualEntailment 𝔇 S] [Cut 𝔇] (𝓢 : S) :
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              @[implicit_reducible]
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              def LO.OneSidedLK.ContextualEntailment.instStrongCut.bl {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {S : Type u_3} [Entailment S F] [AdjunctiveSet F S] [ContextualEntailment 𝔇 S] [Cut 𝔇] {T U : S} {bs : T ⊢!* AdjunctiveSet.set U} (l : List F) (hl : ψl, ψ U) (χ : F) (d : 𝔇 (χ :: l)) :
                                              T ⊢! χ
                                              Equations
                                              Instances For
                                                @[implicit_reducible]
                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                theorem LO.OneSidedLK.ContextualEntailment.inconsistent_iff {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {S : Type u_3} [Entailment S F] [AdjunctiveSet F S] [ContextualEntailment 𝔇 S] [Cut 𝔇] {𝓢 : S} :
                                                Entailment.Inconsistent 𝓢 ∃ (Γ : List F), (∀ ψΓ, ψ 𝓢) Nonempty (𝔇 (Γ))
                                                @[implicit_reducible]
                                                instance LO.OneSidedLK.ContextualEntailment.cl {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {S : Type u_3} [Entailment S F] [AdjunctiveSet F S] [ContextualEntailment 𝔇 S] [Cut 𝔇] (𝓢 : S) :
                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                theorem LO.OneSidedLK.ContextualEntailment.empty_provable_iff_eprovable {F : Type u_1} [LogicalConnective F] [TildeInvolutive F] {𝔇 : List FType u_2} {S : Type u_3} [Entailment S F] [AdjunctiveSet F S] [ContextualEntailment 𝔇 S] {P : Type u_4} [Entailment P F] {φ : F} {𝓟 : P} [PrincipalEntailment 𝔇 𝓟] :
                                                φ 𝓟 φ
                                                theorem LO.OneSidedLK.ContextualEntailment.iff_context {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {S : Type u_3} [Entailment S F] [AdjunctiveSet F S] [ContextualEntailment 𝔇 S] [Cut 𝔇] {P : Type u_4} [Entailment P F] {φ : F} {𝓢 : S} {𝓟 : P} [PrincipalEntailment 𝔇 𝓟] :
                                                𝓢 φ AdjunctiveSet.set 𝓢 *⊢[𝓟] φ
                                                theorem LO.OneSidedLK.ContextualEntailment.of_principal_provable {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {S : Type u_3} [Entailment S F] [AdjunctiveSet F S] [ContextualEntailment 𝔇 S] [Cut 𝔇] {P : Type u_4} [Entailment P F] {φ : F} {𝓟 : P} [PrincipalEntailment 𝔇 𝓟] {𝓢 : S} :
                                                𝓟 φ𝓢 φ
                                                @[reducible, inline]
                                                noncomputable abbrev LO.OneSidedLK.ContextualEntailment.deduction {F : Type u_1} [LogicalConnective F] [DeMorgan F] [TildeInvolutive F] {𝔇 : List FType u_2} {S : Type u_3} [Entailment S F] [AdjunctiveSet F S] [ContextualEntailment 𝔇 S] [Cut 𝔇] {P : Type u_4} [Entailment P F] (𝓟 : P) [PrincipalEntailment 𝔇 𝓟] :
                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For