Documentation

Foundation.Meta.IntProver

Proof automation based on the proof search on (modified) $\mathbf{LJpm}^*$ #

main reference: Grigori Mints, A Short Introduction to Intuitionistic Logic [Min00]

Equations
  • One or more equations did not get rendered due to their size.
Instances For
    theorem LO.Meta.IntProver.Theorems.to_twoSided {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {Γ Δ : List F} (h : Entailment.Tableaux.Valid 𝓢 [{ antecedent := Γ, succedent := Δ }]) :
    theorem LO.Meta.IntProver.Theorems.to_provable {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {φ : F} (h : Entailment.Tableaux.Valid 𝓢 [{ antecedent := [], succedent := [φ] }]) :
    𝓢 φ
    theorem LO.Meta.IntProver.Theorems.add_hyp {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {𝒯 : S} (s : 𝒯 𝓢) {Γ Δ : List F} {φ : F} ( : 𝒯 φ) :
    Entailment.Tableaux.Valid 𝓢 [{ antecedent := φ :: Γ, succedent := Δ }]Entailment.Tableaux.Valid 𝓢 [{ antecedent := Γ, succedent := Δ }]
    theorem LO.Meta.IntProver.Theorems.right_closed {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ : F} (h : φ Γ) :
    Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := φ :: Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.left_closed {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ : F} (h : φ Δ) :
    Entailment.Tableaux.Valid 𝓢 ({ antecedent := φ :: Γ, succedent := Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.remove {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : Entailment.Tableaux F} {Γ Δ : List F} :
    Entailment.Tableaux.Valid 𝓢 TEntailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.rotate {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} :
    Entailment.Tableaux.Valid 𝓢 (T ++ [{ antecedent := Γ, succedent := Δ }])Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.remove_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ : F} :
    Entailment.Tableaux.Valid 𝓢 (T ++ [{ antecedent := Γ, succedent := Δ }])Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := φ :: Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.rotate_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ : F} :
    Entailment.Tableaux.Valid 𝓢 (T ++ [{ antecedent := Γ, succedent := Δ ++ [φ] }])Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := φ :: Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.verum_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} :
    Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := :: Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.falsum_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} :
    Entailment.Tableaux.Valid 𝓢 (T ++ [{ antecedent := Γ, succedent := Δ }])Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := :: Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.and_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ ψ : F} :
    Entailment.Tableaux.Valid 𝓢 (T ++ [{ antecedent := Γ, succedent := Δ ++ [φ] }])Entailment.Tableaux.Valid 𝓢 (T ++ [{ antecedent := Γ, succedent := Δ ++ [ψ] }])Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := φ ψ :: Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.or_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ ψ : F} :
    Entailment.Tableaux.Valid 𝓢 (T ++ [{ antecedent := Γ, succedent := Δ ++ [φ, ψ] }])Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := φ ψ :: Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.neg_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ : F} :
    Entailment.Tableaux.Valid 𝓢 (T ++ [{ antecedent := Γ ++ [φ], succedent := [] }] ++ [{ antecedent := Γ, succedent := Δ }])Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := φ :: Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.imply_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ ψ : F} :
    Entailment.Tableaux.Valid 𝓢 (T ++ [{ antecedent := Γ ++ [φ], succedent := [ψ] }] ++ [{ antecedent := Γ, succedent := Δ }])Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := (φ 🡒 ψ) :: Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.iff_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ ψ : F} :
    Entailment.Tableaux.Valid 𝓢 (T ++ [{ antecedent := Γ, succedent := Δ ++ [φ 🡒 ψ] }])Entailment.Tableaux.Valid 𝓢 (T ++ [{ antecedent := Γ, succedent := Δ ++ [ψ 🡒 φ] }])Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := (φ 🡘 ψ) :: Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.remove_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ : F} :
    Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := Δ } :: T)Entailment.Tableaux.Valid 𝓢 ({ antecedent := φ :: Γ, succedent := Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.rotate_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ : F} :
    Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ ++ [φ], succedent := Δ } :: T)Entailment.Tableaux.Valid 𝓢 ({ antecedent := φ :: Γ, succedent := Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.verum_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} :
    Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ, succedent := Δ } :: T)Entailment.Tableaux.Valid 𝓢 ({ antecedent := :: Γ, succedent := Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.falsum_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} :
    Entailment.Tableaux.Valid 𝓢 ({ antecedent := :: Γ, succedent := Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.or_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ ψ : F} :
    Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ ++ [φ], succedent := Δ } :: T)Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ ++ [ψ], succedent := Δ } :: T)Entailment.Tableaux.Valid 𝓢 ({ antecedent := φ ψ :: Γ, succedent := Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.and_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ ψ : F} :
    Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ ++ [φ, ψ], succedent := Δ } :: T)Entailment.Tableaux.Valid 𝓢 ({ antecedent := φ ψ :: Γ, succedent := Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.neg_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ : F} :
    Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ ++ [φ], succedent := Δ ++ [φ] } :: T)Entailment.Tableaux.Valid 𝓢 ({ antecedent := φ :: Γ, succedent := Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.imply_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ ψ : F} :
    Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ ++ [φ 🡒 ψ], succedent := Δ ++ [φ] } :: T)Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ ++ [ψ], succedent := Δ } :: T)Entailment.Tableaux.Valid 𝓢 ({ antecedent := (φ 🡒 ψ) :: Γ, succedent := Δ } :: T)
    theorem LO.Meta.IntProver.Theorems.iff_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] {𝓢 : S} [Entailment.Int 𝓢] {T : List (Entailment.Tableaux.Sequent F)} {Γ Δ : List F} {φ ψ : F} :
    Entailment.Tableaux.Valid 𝓢 ({ antecedent := Γ ++ [φ 🡒 ψ, ψ 🡒 φ], succedent := Δ } :: T)Entailment.Tableaux.Valid 𝓢 ({ antecedent := (φ 🡘 ψ) :: Γ, succedent := Δ } :: T)
    Instances For
      @[reducible, inline]

      The monad for int_prover contains.

      Equations
      Instances For

        Apply the function n : ∀ {F} [LogicalConnective F] [DecidableEq F] {S} [Entailment S F] {𝓢} [Entailment.Int 𝓢], _ to the implicit parameters in the context, and the given list of arguments.

        Equations
        Instances For
          Equations
          Instances For
            def LO.Meta.IntProver.getGoalTwoSided (e : Q(Prop)) :
            Lean.MetaM ((c : Context) × List (have a := c.F; Q(«$a»)) × List (have a := c.F; Q(«$a»)))
            Instances For
              def LO.Meta.IntProver.getGoalProvable (e : Q(Prop)) :
              Lean.MetaM ((c : Context) × have a := c.F; Q(«$a»))
              Instances For
                @[reducible, inline]
                Equations
                Instances For
                  def LO.Meta.IntProver.mkTableauSequentQ {u_1 : Lean.Level} (F : Q(Type u_1)) (Γ Δ : Q(List «$F»)) :
                  Equations
                  Instances For
                    Equations
                    • One or more equations did not get rendered due to their size.
                    Instances For
                      Equations
                      Instances For
                        Equations
                        • One or more equations did not get rendered due to their size.
                        Instances For
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    Equations
                                    Instances For
                                      Equations
                                      Instances For
                                        def LO.Meta.IntProver.andRight (T : Tableaux) (Γ Δ : Sequent) (φ ψ : Lit) (e₁ e₂ : Lean.Expr) :
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          def LO.Meta.IntProver.orRight (T : Tableaux) (Γ Δ : Sequent) (φ ψ : Lit) (e : Lean.Expr) :
                                          Equations
                                          • One or more equations did not get rendered due to their size.
                                          Instances For
                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            Instances For
                                              Equations
                                              • One or more equations did not get rendered due to their size.
                                              Instances For
                                                def LO.Meta.IntProver.iffRight (T : Tableaux) (Γ Δ : Sequent) (φ ψ : Lit) (e₁ e₂ : Lean.Expr) :
                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  Equations
                                                  Instances For
                                                    Equations
                                                    Instances For
                                                      Equations
                                                      Instances For
                                                        def LO.Meta.IntProver.andLeft (T : Tableaux) (Γ Δ : Sequent) (φ ψ : Lit) (e : Lean.Expr) :
                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          def LO.Meta.IntProver.orLeft (T : Tableaux) (Γ Δ : Sequent) (φ ψ : Lit) (e₁ e₂ : Lean.Expr) :
                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            Equations
                                                            • One or more equations did not get rendered due to their size.
                                                            Instances For
                                                              def LO.Meta.IntProver.implyLeft (T : Tableaux) (Γ Δ : Sequent) (φ ψ : Lit) (e₁ e₂ : Lean.Expr) :
                                                              Equations
                                                              • One or more equations did not get rendered due to their size.
                                                              Instances For
                                                                def LO.Meta.IntProver.iffLeft (T : Tableaux) (Γ Δ : Sequent) (φ ψ : Lit) (e : Lean.Expr) :
                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  Equations
                                                                  Instances For
                                                                    Equations
                                                                    Instances For
                                                                      Instances For
                                                                        Equations
                                                                        • One or more equations did not get rendered due to their size.
                                                                        Instances For
                                                                          Instances For
                                                                            Equations
                                                                            • One or more equations did not get rendered due to their size.
                                                                            Instances For
                                                                              def LO.Meta.IntProver.addHyp (𝓣 wt : Lean.Expr) (Γ Δ : Sequent) (φ : Lit) (E e : Lean.Expr) :
                                                                              Equations
                                                                              • One or more equations did not get rendered due to their size.
                                                                              Instances For
                                                                                Equations
                                                                                Instances For
                                                                                  Equations
                                                                                  • One or more equations did not get rendered due to their size.
                                                                                  Instances For
                                                                                    Equations
                                                                                    • One or more equations did not get rendered due to their size.
                                                                                    Instances For
                                                                                      Equations
                                                                                      Instances For
                                                                                        Equations
                                                                                        • One or more equations did not get rendered due to their size.
                                                                                        Instances For
                                                                                          Equations
                                                                                          • One or more equations did not get rendered due to their size.
                                                                                          Instances For
                                                                                            Equations
                                                                                            • One or more equations did not get rendered due to their size.
                                                                                            Instances For