Documentation

Mathlib.Tactic.FunProp.Core

Tactic fun_prop for proving function properties like Continuous f, Differentiable ℝ f, ... #

Synthesize instance of type type and

  1. assign it to x if x is meta variable
  2. check it is equal to x
Instances For

    Synthesize arguments xs either with typeclass synthesis, with fun_prop or with discharger.

    Instances For

      Try to apply theorem - core function

      Instances For
        def Mathlib.Meta.FunProp.tryTheoremWithHint? (e : Lean.Expr) (thmOrigin : Origin) (hint : Array (Nat × Lean.Expr)) (funProp : Lean.ExprFunPropM (Option Result)) (newMCtxDepth : Bool := false) :

        Try to apply a theorem provided some of the theorem arguments.

        Instances For
          def Mathlib.Meta.FunProp.tryTheorem? (e : Lean.Expr) (thmOrigin : Origin) (funProp : Lean.ExprFunPropM (Option Result)) (newMCtxDepth : Bool := false) :

          Try to apply a theorem thmOrigin to the goal e.

          Instances For

            Try to prove e using the identity lambda theorem.

            For example, e = q(Continuous fun x ↦ x) and funPropDecl is FunPropDecl for Continuous.

            Instances For

              Try to prove e using the constant lambda theorem.

              For example, e = q(Continuous fun x ↦ y) and funPropDecl is FunPropDecl for Continuous.

              Instances For

                Try to prove e using the apply lambda theorem.

                For example, e = q(Continuous fun f ↦ f x) and funPropDecl is FunPropDecl for Continuous.

                Instances For

                  Try to prove e using composition lambda theorem.

                  For example, e = q(Continuous fun x ↦ f (g x)) and funPropDecl is FunPropDecl for Continuous

                  You also have to provide the functions f and g.

                  Instances For

                    Try to prove e using pi lambda theorem.

                    For example, e = q(Continuous fun x y ↦ f x y) and funPropDecl is FunPropDecl for Continuous

                    Instances For

                      Try to prove e = q(P (fun x ↦ let y := φ x; ψ x y).

                      For example,

                      • funPropDecl is FunPropDecl for Continuous
                      • e = q(Continuous fun x ↦ let y := φ x; ψ x y)
                      • f = q(fun x ↦ let y := φ x; ψ x y)
                      Instances For

                        Prove function property of using morphism theorems.

                        Instances For

                          Prove function property of using transition theorems.

                          Instances For

                            Try to remove applied argument i.e. prove P (fun x ↦ f x y) from P (fun x ↦ f x).

                            For example

                            • funPropDecl is FunPropDecl for Continuous
                            • e = q(Continuous fun x ↦ foo (bar x) y)
                            • fData contains info on fun x ↦ foo (bar x) y This tries to prove Continuous fun x ↦ foo (bar x) y from Continuous fun x ↦ foo (bar x)
                            Instances For

                              Prove function property of fun f ↦ f x₁ ... xₙ.

                              Instances For
                                def Mathlib.Meta.FunProp.getDeclTheorems (funPropDecl : FunPropDecl) (funName : Lean.Name) (mainArgs : Array Nat) (appliedArgs : Nat) :

                                Get candidate theorems from the environment for function property funPropDecl and function funName.

                                Instances For
                                  def Mathlib.Meta.FunProp.getLocalTheorems (funPropDecl : FunPropDecl) (funOrigin : Origin) (mainArgs : Array Nat) (appliedArgs : Nat) :

                                  Get candidate theorems from the local context for function property funPropDecl and function funName.

                                  Instances For

                                    Try to apply function theorems thms to e.

                                    Instances For

                                      Prove function property of fun x ↦ f x₁ ... xₙ where f is free variable.

                                      Instances For

                                        Prove function property of fun x ↦ f x₁ ... xₙ where f is declared function.

                                        Instances For

                                          Cache result if it does not have any subgoals.

                                          Instances For

                                            Cache for failed goals such that fun_prop can fail fast next time.

                                            Instances For

                                              Main funProp function. Returns proof of e.