Linter for simplification lemmas #
This files defines several linters that prevent common mistakes when declaring simp lemmas:
simpNF
checks that the left-hand side of a simp lemma is not simplified by a different lemma.simpVarHead
checks that the head symbol of the left-hand side is not a variable.simpComm
checks that commutativity lemmas are not marked as simplification lemmas.
Given the list of hypotheses, is this a conditional rewrite rule?
Equations
Instances For
Runs the continuation on all the simp theorems encoded in the given type.
Equations
Instances For
Checks whether two expressions are equal for the simplifier. That is, they are reducibly-definitional equal, and they have the same head symbol.
Equations
Instances For
Constructs a message from all the simp theorems encoded in the given type.
Equations
Instances For
Returns true if this is a @[simp]
declaration.
Equations
Instances For
Returns the list of elements in the discrimination tree.
Equations
Instances For
Add message msg
to any errors thrown inside k
.
Equations
Instances For
Render the list of simp lemmas.
Equations
Instances For
A linter for simp lemmas whose lhs is not in simp-normal form, and which hence never fire.
Equations
Instances For
A linter for simp lemmas whose lhs has a variable as head symbol, and which hence never fire.
Equations
Instances For
A linter for commutativity lemmas that are marked simp.