Documentation

Logic.AutoProver.Prover

def LO.Gentzen.rEmLeft {F : Type u_1} [LO.LogicalConnective F] [LO.Gentzen F] {Γ : List F} {Δ : List F} {p : F} (h : p Δ) :
p :: Γ ⊢² Δ
Equations
Instances For
    def LO.Gentzen.rEmRight {F : Type u_1} [LO.LogicalConnective F] [LO.Gentzen F] {Γ : List F} {Δ : List F} {p : F} (h : p Γ) :
    Γ ⊢² p :: Δ
    Equations
    Instances For
      def LO.Gentzen.rNegLeft {F : Type u_1} [LO.LogicalConnective F] [LO.Gentzen F] {Γ : List F} {Δ : List F} {p : F} (dp : Γ ⊢² Δ ++ [p]) :
      ~p :: Γ ⊢² Δ
      Equations
      Instances For
        def LO.Gentzen.rNegRight {F : Type u_1} [LO.LogicalConnective F] [LO.Gentzen F] {Γ : List F} {Δ : List F} {p : F} (dp : Γ ++ [p] ⊢² Δ) :
        Γ ⊢² ~p :: Δ
        Equations
        Instances For
          def LO.Gentzen.rOrLeft {F : Type u_1} [LO.LogicalConnective F] [LO.Gentzen F] {Γ : List F} {Δ : List F} {p : F} {q : F} (dp : Γ ++ [p] ⊢² Δ) (dq : Γ ++ [q] ⊢² Δ) :
          p q :: Γ ⊢² Δ
          Equations
          Instances For
            def LO.Gentzen.rOrRight {F : Type u_1} [LO.LogicalConnective F] [LO.Gentzen F] {Γ : List F} {Δ : List F} {p : F} {q : F} (d : Γ ⊢² Δ ++ [p, q]) :
            Γ ⊢² p q :: Δ
            Equations
            Instances For
              def LO.Gentzen.rAndLeft {F : Type u_1} [LO.LogicalConnective F] [LO.Gentzen F] {Γ : List F} {Δ : List F} {p : F} {q : F} (d : Γ ++ [p, q] ⊢² Δ) :
              p q :: Γ ⊢² Δ
              Equations
              Instances For
                def LO.Gentzen.rAndRight {F : Type u_1} [LO.LogicalConnective F] [LO.Gentzen F] {Γ : List F} {Δ : List F} {p : F} {q : F} (dp : Γ ⊢² Δ ++ [p]) (dq : Γ ⊢² Δ ++ [q]) :
                Γ ⊢² p q :: Δ
                Equations
                Instances For
                  def LO.Gentzen.rImplyLeft {F : Type u_1} [LO.LogicalConnective F] [LO.Gentzen F] {Γ : List F} {Δ : List F} {p : F} {q : F} (dp : Γ ⊢² Δ ++ [p]) (dq : Γ ++ [q] ⊢² Δ) :
                  (p q) :: Γ ⊢² Δ
                  Equations
                  Instances For
                    def LO.Gentzen.rImplyRight {F : Type u_1} [LO.LogicalConnective F] [LO.Gentzen F] {Γ : List F} {Δ : List F} {p : F} {q : F} (d : Γ ++ [p] ⊢² Δ ++ [q]) :
                    Γ ⊢² (p q) :: Δ
                    Equations
                    Instances For
                      @[reducible, inline]
                      abbrev LO.AutoProver.DerivationQ {u : Lean.Level} {F : Q(Type u)} (instLS : Q(LO.LogicalConnective «$F»)) (instGz : Q(LO.Gentzen «$F»)) (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) :
                      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.AutoProver.DerivationQ.rotateLeft {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) {p : LO.Litform.Meta.Lit F} (d : LO.AutoProver.DerivationQ instLS instGz (L ++ [p]) R) :
                          LO.AutoProver.DerivationQ instLS instGz (p :: L) R
                          Equations
                          Instances For
                            def LO.AutoProver.DerivationQ.rotateRight {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) {p : LO.Litform.Meta.Lit F} (d : LO.AutoProver.DerivationQ instLS instGz L (R ++ [p])) :
                            LO.AutoProver.DerivationQ instLS instGz L (p :: R)
                            Equations
                            Instances For
                              def LO.AutoProver.DerivationQ.verum {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) :
                              LO.AutoProver.DerivationQ instLS instGz L ( :: R)
                              Equations
                              • One or more equations did not get rendered due to their size.
                              Instances For
                                def LO.AutoProver.DerivationQ.falsum {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) :
                                LO.AutoProver.DerivationQ instLS instGz ( :: L) R
                                Equations
                                • One or more equations did not get rendered due to their size.
                                Instances For
                                  def LO.AutoProver.DerivationQ.rEmLeftOfEq {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) {p : LO.Litform.Meta.Lit F} :
                                  Lean.MetaM (LO.AutoProver.DerivationQ instLS instGz (p :: L) R)
                                  Equations
                                  • One or more equations did not get rendered due to their size.
                                  Instances For
                                    def LO.AutoProver.DerivationQ.rEmRightOfEq {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) {p : LO.Litform.Meta.Lit F} :
                                    Lean.MetaM (LO.AutoProver.DerivationQ instLS instGz L (p :: R))
                                    Equations
                                    • One or more equations did not get rendered due to their size.
                                    Instances For
                                      def LO.AutoProver.DerivationQ.rNegLeft {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) {p : LO.Litform.Meta.Lit F} (d : LO.AutoProver.DerivationQ instLS instGz L (R ++ [p])) :
                                      LO.AutoProver.DerivationQ instLS instGz (~p :: L) R
                                      Equations
                                      Instances For
                                        def LO.AutoProver.DerivationQ.rNegRight {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) {p : LO.Litform.Meta.Lit F} (d : LO.AutoProver.DerivationQ instLS instGz (L ++ [p]) R) :
                                        LO.AutoProver.DerivationQ instLS instGz L (~p :: R)
                                        Equations
                                        Instances For
                                          def LO.AutoProver.DerivationQ.rAndLeft {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) {p : LO.Litform.Meta.Lit F} {q : LO.Litform.Meta.Lit F} (d : LO.AutoProver.DerivationQ instLS instGz (L ++ [p, q]) R) :
                                          LO.AutoProver.DerivationQ instLS instGz (p q :: L) R
                                          Equations
                                          Instances For
                                            def LO.AutoProver.DerivationQ.rAndRight {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) {p : LO.Litform.Meta.Lit F} {q : LO.Litform.Meta.Lit F} (dp : LO.AutoProver.DerivationQ instLS instGz L (R ++ [p])) (dq : LO.AutoProver.DerivationQ instLS instGz L (R ++ [q])) :
                                            LO.AutoProver.DerivationQ instLS instGz L (p q :: R)
                                            Equations
                                            Instances For
                                              def LO.AutoProver.DerivationQ.rOrLeft {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) {p : LO.Litform.Meta.Lit F} {q : LO.Litform.Meta.Lit F} (dp : LO.AutoProver.DerivationQ instLS instGz (L ++ [p]) R) (dq : LO.AutoProver.DerivationQ instLS instGz (L ++ [q]) R) :
                                              LO.AutoProver.DerivationQ instLS instGz (p q :: L) R
                                              Equations
                                              Instances For
                                                def LO.AutoProver.DerivationQ.rOrRight {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) {p : LO.Litform.Meta.Lit F} {q : LO.Litform.Meta.Lit F} (d : LO.AutoProver.DerivationQ instLS instGz L (R ++ [p, q])) :
                                                LO.AutoProver.DerivationQ instLS instGz L (p q :: R)
                                                Equations
                                                Instances For
                                                  def LO.AutoProver.DerivationQ.rImplyLeft {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) {p : LO.Litform.Meta.Lit F} {q : LO.Litform.Meta.Lit F} (dp : LO.AutoProver.DerivationQ instLS instGz L (R ++ [p])) (dq : LO.AutoProver.DerivationQ instLS instGz (L ++ [q]) R) :
                                                  LO.AutoProver.DerivationQ instLS instGz ((p q) :: L) R
                                                  Equations
                                                  Instances For
                                                    def LO.AutoProver.DerivationQ.rImplyRight {u : Lean.Level} {F : Q(Type u)} {instLS : Q(LO.LogicalConnective «$F»)} {instGz : Q(LO.Gentzen «$F»)} (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) {p : LO.Litform.Meta.Lit F} {q : LO.Litform.Meta.Lit F} (d : LO.AutoProver.DerivationQ instLS instGz (L ++ [p]) (R ++ [q])) :
                                                    LO.AutoProver.DerivationQ instLS instGz L ((p q) :: R)
                                                    Equations
                                                    Instances For
                                                      def LO.AutoProver.DerivationQ.deriveAux {u : Lean.Level} {F : Q(Type u)} (instLS : Q(LO.LogicalConnective «$F»)) (instGz : Q(LO.Gentzen «$F»)) :
                                                      Bool(L R : List (LO.Litform.Meta.Lit F)) → Lean.MetaM (LO.AutoProver.DerivationQ instLS instGz L R)
                                                      Equations
                                                      Instances For
                                                        def LO.AutoProver.DerivationQ.derive {u : Lean.Level} {F : Q(Type u)} (instLS : Q(LO.LogicalConnective «$F»)) (instGz : Q(LO.Gentzen «$F»)) (s : ) (L : List (LO.Litform.Meta.Lit F)) (R : List (LO.Litform.Meta.Lit F)) :
                                                        Equations
                                                        Instances For
                                                          def LO.AutoProver.isExprProvable? (ty : Q(Prop)) :
                                                          Lean.MetaM ((u : Lean.Level) × (v : Lean.Level) × (_ : Lean.Level) × (F : Q(Type u)) × (S : Q(Type v)) × Q(«$S») × Q(«$F»))
                                                          Equations
                                                          • One or more equations did not get rendered due to their size.
                                                          Instances For
                                                            def LO.AutoProver.prove! {u : Lean.Level} {v : Lean.Level} {w : Lean.Level} {F : Q(Type u)} {S : Q(Type v)} (instLS : Q(LO.LogicalConnective «$F»)) (instSys : Q(LO.System «$F» «$S»)) (instGz : Q(LO.Gentzen «$F»)) (instLTS : Q(LO.LawfulTwoSided «$S»)) (s : ) (𝓢 : Q(«$S»)) (p : Q(«$F»)) :
                                                            Lean.MetaM Q(«$𝓢» ⊢! «$p»)
                                                            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.AutoProver.proofOfProvable? {u : Lean.Level} {v : Lean.Level} {w : Lean.Level} {F : Q(Type u)} {S : Q(Type v)} (instSys : Q(LO.System «$F» «$S»)) (T : Q(«$S»)) (e : Lean.Expr) :
                                                                Lean.MetaM ((p : Q(«$F»)) × Q(«$T» ⊢! «$p»))
                                                                Equations
                                                                • One or more equations did not get rendered due to their size.
                                                                Instances For
                                                                  def LO.AutoProver.proverL₀ {u : Lean.Level} {v : Lean.Level} {w : Lean.Level} {F : Q(Type u)} {S : Q(Type v)} (instLS : Q(LO.LogicalConnective «$F»)) (instSys : Q(LO.System «$F» «$S»)) (T : Q(«$S»)) (seq : Option (Lean.TSyntax `LO.AutoProver.termSeq)) :
                                                                  Lean.Elab.TermElabM ((L₀ : List (LO.Litform.Meta.Lit F)) × let a := (LO.Litform.Meta.denotation F instLS).toExprₗ L₀; let toQList_1 := Qq.toQList (List.map Denotation.toExpr' L₀); Q(q«$toQList_1», «$T» ⊢! q))
                                                                  Equations
                                                                  • One or more equations did not get rendered due to their size.
                                                                  Instances For
                                                                    def LO.AutoProver.proveL₀! {u : Lean.Level} {v : Lean.Level} {w : Lean.Level} {F : Q(Type u)} {S : Q(Type v)} (instLS : Q(LO.LogicalConnective «$F»)) (instSys : Q(LO.System «$F» «$S»)) (instGz : Q(LO.Gentzen «$F»)) (instLTS : Q(LO.LawfulTwoSided «$S»)) (s : ) (T : Q(«$S»)) (p : Q(«$F»)) (L₀ : List (LO.Litform.Meta.Lit F)) (H₀ : let a := (LO.Litform.Meta.denotation F instLS).toExprₗ L₀; let toQList_1 := Qq.toQList (List.map Denotation.toExpr' L₀); Q(q«$toQList_1», «$T» ⊢! q)) :
                                                                    Lean.MetaM Q(«$T» ⊢! «$p»)
                                                                    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