Gadget for marking match
-expressions that should not be reduced by the grind
simplifier, but the discriminants should be normalized.
We use it when adding instances of match
-equations to prevent them from being simplified to true.
Remark: it must not be marked as [reducible]
. Otherwise, simp
will reduce
simpMatchDiscrsOnly (match 0 with | 0 => true | _ => false) = true
using eq_self
.
Equations
Instances For
Gadget for representing a = b
in patterns for backward propagation.
Equations
- Lean.Grind.eqBwdPattern a b = (a = b)
Instances For
Gadget for annotating conditions of match
equational lemmas.
We use this annotation for two different reasons:
- We don't want to normalize them.
- We have a propagator for them.
Equations
- p = p
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
A marker to indicate that a proposition has already been normalized and should not be processed again.
This prevents issues when case-splitting on the condition c
of an if-then-else
expression. Without this marker, the negated condition ¬c
might be rewritten into
an alternative form c'
, which grind
may not recognize as equivalent to ¬c
.
As a result, grind
could fail to propagate that if c then a else b
simplifies to b
in the ¬c
branch.
Equations
Instances For
Classical.em
variant where disjuncts are marked with alreadyNorm
gadget.
See comment at alreadyNorm