Documentation

Foundation.Meta.ClProver

Proof automation based on the proof search on $\mathbf{LK}$ #

theorem LO.Meta.ClProver.Theorems.to_provable {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (φ : F) (h : Entailment.TwoSided š“¢ [] [φ]) :
š“¢ ⊢ φ
theorem LO.Meta.ClProver.Theorems.rotate_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ : F) (hφ : Entailment.TwoSided š“¢ Ī“ (Ī” ++ [φ])) :
Entailment.TwoSided š“¢ Ī“ (φ :: Ī”)
theorem LO.Meta.ClProver.Theorems.rotate_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ : F) (hφ : Entailment.TwoSided š“¢ (Ī“ ++ [φ]) Ī”) :
Entailment.TwoSided š“¢ (φ :: Ī“) Ī”
theorem LO.Meta.ClProver.Theorems.add_hyp {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (š’Æ : S) (s : š’Æ āŖÆ š“¢) (Ī“ Ī” : List F) (φ : F) (hφ : š’Æ ⊢ φ) (h : Entailment.TwoSided š“¢ (φ :: Ī“) Ī”) :
Entailment.TwoSided š“¢ Ī“ Ī”
theorem LO.Meta.ClProver.Theorems.right_closed {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ : F) (h : φ ∈ Ī“) :
Entailment.TwoSided š“¢ Ī“ (φ :: Ī”)
theorem LO.Meta.ClProver.Theorems.left_closed {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ : F) (h : φ ∈ Ī”) :
Entailment.TwoSided š“¢ (φ :: Ī“) Ī”
theorem LO.Meta.ClProver.Theorems.verum_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) :
Entailment.TwoSided š“¢ Ī“ (⊤ :: Ī”)
theorem LO.Meta.ClProver.Theorems.falsum_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) :
Entailment.TwoSided š“¢ (⊄ :: Ī“) Ī”
theorem LO.Meta.ClProver.Theorems.falsum_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (h : Entailment.TwoSided š“¢ Ī“ Ī”) :
Entailment.TwoSided š“¢ Ī“ (⊄ :: Ī”)
theorem LO.Meta.ClProver.Theorems.verum_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (h : Entailment.TwoSided š“¢ Ī“ Ī”) :
Entailment.TwoSided š“¢ (⊤ :: Ī“) Ī”
theorem LO.Meta.ClProver.Theorems.and_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ ψ : F) (hφ : Entailment.TwoSided š“¢ Ī“ (Ī” ++ [φ])) (hψ : Entailment.TwoSided š“¢ Ī“ (Ī” ++ [ψ])) :
Entailment.TwoSided š“¢ Ī“ (φ ā‹ ψ :: Ī”)
theorem LO.Meta.ClProver.Theorems.or_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ ψ : F) (hφ : Entailment.TwoSided š“¢ (Ī“ ++ [φ]) Ī”) (hψ : Entailment.TwoSided š“¢ (Ī“ ++ [ψ]) Ī”) :
Entailment.TwoSided š“¢ (φ ā‹Ž ψ :: Ī“) Ī”
theorem LO.Meta.ClProver.Theorems.or_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ ψ : F) (h : Entailment.TwoSided š“¢ Ī“ (Ī” ++ [φ, ψ])) :
Entailment.TwoSided š“¢ Ī“ (φ ā‹Ž ψ :: Ī”)
theorem LO.Meta.ClProver.Theorems.and_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ ψ : F) (h : Entailment.TwoSided š“¢ (Ī“ ++ [φ, ψ]) Ī”) :
Entailment.TwoSided š“¢ (φ ā‹ ψ :: Ī“) Ī”
theorem LO.Meta.ClProver.Theorems.neg_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ : F) (h : Entailment.TwoSided š“¢ (Ī“ ++ [φ]) Ī”) :
Entailment.TwoSided š“¢ Ī“ (āˆ¼Ļ† :: Ī”)
theorem LO.Meta.ClProver.Theorems.neg_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ : F) (h : Entailment.TwoSided š“¢ Ī“ (Ī” ++ [φ])) :
Entailment.TwoSided š“¢ (āˆ¼Ļ† :: Ī“) Ī”
theorem LO.Meta.ClProver.Theorems.imply_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ ψ : F) (h : Entailment.TwoSided š“¢ (Ī“ ++ [φ]) (Ī” ++ [ψ])) :
Entailment.TwoSided š“¢ Ī“ ((φ šŸ”’ ψ) :: Ī”)
theorem LO.Meta.ClProver.Theorems.imply_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ ψ : F) (hφ : Entailment.TwoSided š“¢ Ī“ (Ī” ++ [φ])) (hψ : Entailment.TwoSided š“¢ (Ī“ ++ [ψ]) Ī”) :
Entailment.TwoSided š“¢ ((φ šŸ”’ ψ) :: Ī“) Ī”
theorem LO.Meta.ClProver.Theorems.iff_right {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ ψ : F) (hr : Entailment.TwoSided š“¢ (Ī“ ++ [φ]) (Ī” ++ [ψ])) (hl : Entailment.TwoSided š“¢ (Ī“ ++ [ψ]) (Ī” ++ [φ])) :
Entailment.TwoSided š“¢ Ī“ ((φ 🔘 ψ) :: Ī”)
theorem LO.Meta.ClProver.Theorems.iff_left {F : Type u_1} [LogicalConnective F] [DecidableEq F] {S : Type u_2} [Entailment S F] (š“¢ : S) [Entailment.Cl š“¢] (Ī“ Ī” : List F) (φ ψ : F) (hr : Entailment.TwoSided š“¢ Ī“ (Ī” ++ [φ, ψ])) (hl : Entailment.TwoSided š“¢ (Ī“ ++ [φ, ψ]) Ī”) :
Entailment.TwoSided š“¢ ((φ 🔘 ψ) :: Ī“) Ī”
Instances For
    @[reducible, inline]
    abbrev LO.Meta.ClProver.M (α : Type) :

    The monad for cl_prover contains.

    Equations
    Instances For

      Apply the function n : āˆ€ {F} [LogicalConnective F] [DecidableEq F] {S} [Entailment S F] {š“¢} [Entailment.Cl š“¢], _ to the implicit parameters in the context, and the given list of arguments.

      Equations
      Instances For
        Equations
        Instances For
          def LO.Meta.ClProver.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.ClProver.getGoalProvable (e : Q(Prop)) :
            Lean.MetaM ((c : Context) Ɨ have a := c.F; Q(Ā«$aĀ»))
            Instances For
              @[reducible, inline]
              Equations
              Instances For
                Equations
                Instances For
                  Equations
                  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
                          def LO.Meta.ClProver.rotateRight (Ī“ Ī” : Sequent) (φ : Lit) (e : Lean.Expr) :
                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For
                            def LO.Meta.ClProver.rotateLeft (Ī“ Ī” : 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
                                  def LO.Meta.ClProver.andRight (Ī“ Ī” : Sequent) (φ ψ : Lit) (e₁ eā‚‚ : Lean.Expr) :
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    def LO.Meta.ClProver.orRight (Ī“ Ī” : Sequent) (φ ψ : Lit) (e : Lean.Expr) :
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      def LO.Meta.ClProver.negRight (Ī“ Ī” : Sequent) (φ : Lit) (e : Lean.Expr) :
                                      Equations
                                      Instances For
                                        def LO.Meta.ClProver.implyRight (Ī“ Ī” : Sequent) (φ ψ : Lit) (e : Lean.Expr) :
                                        Equations
                                        • One or more equations did not get rendered due to their size.
                                        Instances For
                                          def LO.Meta.ClProver.iffRight (Ī“ Ī” : 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
                                                def LO.Meta.ClProver.andLeft (Ī“ Ī” : Sequent) (φ ψ : Lit) (e : Lean.Expr) :
                                                Equations
                                                • One or more equations did not get rendered due to their size.
                                                Instances For
                                                  def LO.Meta.ClProver.orLeft (Ī“ Ī” : Sequent) (φ ψ : Lit) (e₁ eā‚‚ : Lean.Expr) :
                                                  Equations
                                                  • One or more equations did not get rendered due to their size.
                                                  Instances For
                                                    def LO.Meta.ClProver.negLeft (Ī“ Ī” : Sequent) (φ : Lit) (e : Lean.Expr) :
                                                    Equations
                                                    Instances For
                                                      def LO.Meta.ClProver.implyLeft (Ī“ Ī” : Sequent) (φ ψ : Lit) (e₁ eā‚‚ : Lean.Expr) :
                                                      Equations
                                                      • One or more equations did not get rendered due to their size.
                                                      Instances For
                                                        def LO.Meta.ClProver.iffLeft (Ī“ Ī” : Sequent) (φ ψ : Lit) (e₁ eā‚‚ : Lean.Expr) :
                                                        Equations
                                                        • One or more equations did not get rendered due to their size.
                                                        Instances For
                                                          Equations
                                                          Instances For
                                                            def LO.Meta.ClProver.prover (k : ā„•) (b : Bool) (Ī“ Ī” : Sequent) :
                                                            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.ClProver.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
                                                                        def LO.Meta.ClProver.addHyps (prover : Sequent → Sequent → M Lean.Expr) (Ī“ Ī” : Sequent) :
                                                                        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