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

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.

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

Equations
@[inline]

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

Equations

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.

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

Equations
@[inline]

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

Equations