clean% term elaborator #
Remove identity functions from a term.
Clean an expression by eliminating identify functions listed in cleanConsts.
Also eliminates fun x => x applications and tautological let/have bindings.
Equations
Instances For
clean% t fully elaborates t and then eliminates all identity functions from it.
Identity functions are normally generated with terms like show t from p,
which translate to some variant on @id t p in order to retain the type.
These are also generated by tactics such as dsimp to insert type hints.
Example:
def x : Id Nat := by dsimp [Id]; exact 1
#print x
-- def x : Id Nat := id 1
def x' : Id Nat := clean% by dsimp [Id]; exact 1
#print x'
-- def x' : Id Nat := 1
Equations
Instances For
clean% t fully elaborates t and then eliminates all identity functions from it.
Identity functions are normally generated with terms like show t from p,
which translate to some variant on @id t p in order to retain the type.
These are also generated by tactics such as dsimp to insert type hints.
Example:
def x : Id Nat := by dsimp [Id]; exact 1
#print x
-- def x : Id Nat := id 1
def x' : Id Nat := clean% by dsimp [Id]; exact 1
#print x'
-- def x' : Id Nat := 1