Documentation

Mathlib.Lean.Meta.RefinedDiscrTree.Pi

Reducing Pi instances for indexing in the RefinedDiscrTree #

@[irreducible, specialize #[]]
def Lean.Meta.RefinedDiscrTree.etaExpand {α : Type} (args : Array Expr) (type : Expr) (lambdas : List FVarId) (goalArity : ) (k : Array ExprList FVarIdMetaM α) :

Introduce new lambdas by η-expansion.

Equations
    Instances For

      Normalize an application of a heterogeneous binary operator like HAdd.hAdd, using:

      • f = fun x => f x to increase the arity to 6
      • (f + g) a = f a + g a to decrease the arity to 6
      • (fun x => f x + g x) = f + g to get rid of any lambdas in front
      Equations
        Instances For

          use that (fun x => f x + g x) = f + g

          Equations
            Instances For
              @[inline]

              Normalize an application if the head is +, *, - or /. Optionally return the (type, lhs, rhs, lambdas).

              Equations
                Instances For

                  Normalize an application of a unary operator like Inv.inv, using:

                  • f⁻¹ a = (f a)⁻¹ to decrease the arity to 3
                  • (fun x => (f a)⁻¹) = f⁻¹ to get rid of any lambdas in front
                  Equations
                    Instances For

                      use that (fun x => (f x)⁻¹) = f⁻¹

                      Equations
                        Instances For
                          @[inline]

                          Normalize an application if the head is ⁻¹ or -. Optionally return the (type, arg, lambdas).

                          Equations
                            Instances For