Documentation

Mathlib.Lean.Meta.RefinedDiscrTree.Pi

Reducing Pi instances for indexing in the RefinedDiscrTree #

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

Introduce new lambdas by η-expansion.

Equations
  • One or more equations did not get rendered due to their size.
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
    • One or more equations did not get rendered due to their size.
    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).

        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
          • One or more equations did not get rendered due to their size.
          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