Documentation

Lean.Meta.Tactic.Simp.Main

Equations
    Instances For

      Return true if e is of the form ofNat n where n is a kernel Nat literal

      Equations
        Instances For

          If e is a raw Nat literal and OfNat.ofNat is not in the list of declarations to unfold, return an OfNat.ofNat-application.

          Equations
            Instances For

              Return true if e is of the form ofScientific n b m where n and m are kernel Nat literals.

              Equations
                Instances For

                  Return true if e is of the form Char.ofNat n where n is a kernel Nat literals.

                  Equations
                    Instances For
                      def Lean.Meta.Simp.lambdaTelescopeDSimp {α : Type} (e : Expr) (k : Array ExprExprSimpM α) :
                      Equations
                        Instances For
                          partial def Lean.Meta.Simp.lambdaTelescopeDSimp.go {α : Type} (k : Array ExprExprSimpM α) (xs : Array Expr) (e : Expr) :
                          Instances For
                            Equations
                              Instances For
                                def Lean.Meta.Simp.withNewLemmas {α : Type} (xs : Array Expr) (f : SimpM α) :

                                We use withNewlemmas whenever updating the local context.

                                Equations
                                  Instances For
                                    Equations
                                      Instances For
                                        Equations
                                          Instances For
                                            Equations
                                              Instances For
                                                Equations
                                                  Instances For
                                                    Equations
                                                      Instances For
                                                        Equations
                                                          Instances For
                                                            Equations
                                                              Instances For
                                                                Equations
                                                                  Instances For

                                                                    Process the given congruence theorem hypothesis. Return true if it made "progress".

                                                                    Equations
                                                                      Instances For

                                                                        Try to rewrite e children using the given congruence theorem

                                                                        Equations
                                                                          Instances For
                                                                            Equations
                                                                              Instances For

                                                                                Returns true if e is of the form @letFun _ (fun _ => β) _ _

                                                                                β must not contain loose bound variables. Recall that simp does not have support for let_funs where resulting type depends on the let-value. Example:

                                                                                let_fun n := 10;
                                                                                BitVec.zero n
                                                                                
                                                                                Equations
                                                                                  Instances For

                                                                                    Simplifies a sequence of let_fun declarations. It attempts to minimize the quadratic overhead imposed by the locally nameless discipline.

                                                                                    Equations
                                                                                      Instances For
                                                                                        Equations
                                                                                          Instances For
                                                                                            Equations
                                                                                              Instances For
                                                                                                Equations
                                                                                                  Instances For
                                                                                                    @[export lean_simp]
                                                                                                    Equations
                                                                                                      Instances For
                                                                                                        Equations
                                                                                                          Instances For
                                                                                                            @[inline]
                                                                                                            Equations
                                                                                                              Instances For
                                                                                                                def Lean.Meta.Simp.mainCore (e : Expr) (ctx : Context) (s : State := { }) (methods : Methods := { }) :
                                                                                                                Equations
                                                                                                                  Instances For
                                                                                                                    Equations
                                                                                                                      Instances For
                                                                                                                        def Lean.Meta.Simp.main (e : Expr) (ctx : Context) (stats : Stats := { }) (methods : Methods := { }) :
                                                                                                                        Equations
                                                                                                                          Instances For
                                                                                                                            def Lean.Meta.Simp.dsimpMainCore (e : Expr) (ctx : Context) (s : State := { }) (methods : Methods := { }) :
                                                                                                                            Equations
                                                                                                                              Instances For
                                                                                                                                Equations
                                                                                                                                  Instances For
                                                                                                                                    def Lean.Meta.Simp.dsimpMain (e : Expr) (ctx : Context) (stats : Stats := { }) (methods : Methods := { }) :
                                                                                                                                    Equations
                                                                                                                                      Instances For
                                                                                                                                        Equations
                                                                                                                                          Instances For
                                                                                                                                            def Lean.Meta.simp (e : Expr) (ctx : Simp.Context) (simprocs : Simp.SimprocsArray := #[]) (discharge? : Option Simp.Discharge := none) (stats : Simp.Stats := { }) :
                                                                                                                                            Equations
                                                                                                                                              Instances For
                                                                                                                                                def Lean.Meta.dsimp (e : Expr) (ctx : Simp.Context) (simprocs : Simp.SimprocsArray := #[]) (stats : Simp.Stats := { }) :
                                                                                                                                                Equations
                                                                                                                                                  Instances For
                                                                                                                                                    def Lean.Meta.simpTargetCore (mvarId : MVarId) (ctx : Simp.Context) (simprocs : Simp.SimprocsArray := #[]) (discharge? : Option Simp.Discharge := none) (mayCloseGoal : Bool := true) (stats : Simp.Stats := { }) :

                                                                                                                                                    See simpTarget. This method assumes mvarId is not assigned, and we are already using mvarIds local context.

                                                                                                                                                    Equations
                                                                                                                                                      Instances For
                                                                                                                                                        def Lean.Meta.simpTarget (mvarId : MVarId) (ctx : Simp.Context) (simprocs : Simp.SimprocsArray := #[]) (discharge? : Option Simp.Discharge := none) (mayCloseGoal : Bool := true) (stats : Simp.Stats := { }) :

                                                                                                                                                        Simplify the given goal target (aka type). Return none if the goal was closed. Return some mvarId' otherwise, where mvarId' is the simplified new goal.

                                                                                                                                                        Equations
                                                                                                                                                          Instances For
                                                                                                                                                            def Lean.Meta.applySimpResult (mvarId : MVarId) (val type : Expr) (r : Simp.Result) (mayCloseGoal : Bool := true) :

                                                                                                                                                            Applies the result r for type (which is inhabited by val). Returns none if the goal was closed. Returns some (val', type') otherwise, where val' : type' and type' is the simplified type.

                                                                                                                                                            This method assumes mvarId is not assigned, and we are already using mvarIds local context.

                                                                                                                                                            Equations
                                                                                                                                                              Instances For
                                                                                                                                                                @[deprecated Lean.Meta.applySimpResult (since := "2025-03-26")]
                                                                                                                                                                def Lean.Meta.applySimpResultToProp (mvarId : MVarId) (proof prop : Expr) (r : Simp.Result) (mayCloseGoal : Bool := true) :
                                                                                                                                                                Equations
                                                                                                                                                                  Instances For
                                                                                                                                                                    def Lean.Meta.applySimpResultToFVarId (mvarId : MVarId) (fvarId : FVarId) (r : Simp.Result) (mayCloseGoal : Bool) :
                                                                                                                                                                    Equations
                                                                                                                                                                      Instances For
                                                                                                                                                                        def Lean.Meta.simpStep (mvarId : MVarId) (proof prop : Expr) (ctx : Simp.Context) (simprocs : Simp.SimprocsArray := #[]) (discharge? : Option Simp.Discharge := none) (mayCloseGoal : Bool := true) (stats : Simp.Stats := { }) :

                                                                                                                                                                        Simplify prop (which is inhabited by proof). Return none if the goal was closed. Return some (proof', prop') otherwise, where proof' : prop' and prop' is the simplified prop.

                                                                                                                                                                        This method assumes mvarId is not assigned, and we are already using mvarIds local context.

                                                                                                                                                                        Equations
                                                                                                                                                                          Instances For
                                                                                                                                                                            Equations
                                                                                                                                                                              Instances For
                                                                                                                                                                                def Lean.Meta.applySimpResultToLocalDecl (mvarId : MVarId) (fvarId : FVarId) (r : Simp.Result) (mayCloseGoal : Bool) :

                                                                                                                                                                                Simplify simp result to the given local declaration. Return none if the goal was closed. This method assumes mvarId is not assigned, and we are already using mvarIds local context.

                                                                                                                                                                                Equations
                                                                                                                                                                                  Instances For
                                                                                                                                                                                    def Lean.Meta.simpLocalDecl (mvarId : MVarId) (fvarId : FVarId) (ctx : Simp.Context) (simprocs : Simp.SimprocsArray := #[]) (discharge? : Option Simp.Discharge := none) (mayCloseGoal : Bool := true) (stats : Simp.Stats := { }) :
                                                                                                                                                                                    Equations
                                                                                                                                                                                      Instances For
                                                                                                                                                                                        def Lean.Meta.simpGoal (mvarId : MVarId) (ctx : Simp.Context) (simprocs : Simp.SimprocsArray := #[]) (discharge? : Option Simp.Discharge := none) (simplifyTarget : Bool := true) (fvarIdsToSimp : Array FVarId := #[]) (stats : Simp.Stats := { }) :
                                                                                                                                                                                        Equations
                                                                                                                                                                                          Instances For
                                                                                                                                                                                            Equations
                                                                                                                                                                                              Instances For
                                                                                                                                                                                                def Lean.Meta.dsimpGoal (mvarId : MVarId) (ctx : Simp.Context) (simprocs : Simp.SimprocsArray := #[]) (simplifyTarget : Bool := true) (fvarIdsToSimp : Array FVarId := #[]) (stats : Simp.Stats := { }) :
                                                                                                                                                                                                Equations
                                                                                                                                                                                                  Instances For