Prove a = b
using the given simp set.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Prove a = b
by simplifying using move and squash lemmas.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Tactic.NormCast.mkCoe e ty = do let __discr ← Lean.Meta.coerce? e ty match __discr with | Lean.LOption.some e' => pure e' | x => failure
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
This is the main heuristic used alongside the elim and move lemmas. The goal is to help casts move past operators by adding intermediate casts. An expression of the shape: op (↑(x : α) : γ) (↑(y : β) : γ) is rewritten to: op (↑(↑(x : α) : β) : γ) (↑(y : β) : γ) when (↑(↑(x : α) : β) : γ) = (↑(x : α) : γ) can be proven with a squash lemma
Equations
- One or more equations did not get rendered due to their size.
Instances For
Discharging function used during simplification in the "squash" step.
TODO: normCast takes a list of expressions to use as lemmas for the discharger TODO: a tactic to print the results the discharger fails to prove
Equations
- One or more equations did not get rendered due to their size.
Instances For
Core rewriting function used in the "squash" step, which moves casts upwards and eliminates them.
It tries to rewrite an expression using the elim and move lemmas. On failure, it calls the splitting procedure heuristic.
Equations
- One or more equations did not get rendered due to their size.
Instances For
If possible, rewrite (n : α)
to (Nat.cast n : α)
where n
is a numeral and α ≠ ℕ
.
Returns a pair of the new expression and proof that they are equal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
The core simplification routine of normCast
.
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
assumption_mod_cast
runs norm_cast
on the goal. For each local hypothesis h
, it also
normalizes h
and tries to use that to close the goal.
Equations
- Tactic.NormCast.tacticAssumption_mod_cast = Lean.ParserDescr.node `Tactic.NormCast.tacticAssumption_mod_cast 1024 (Lean.ParserDescr.nonReservedSymbol "assumption_mod_cast" false)
Instances For
Normalize casts at the given locations by moving them "upwards".
Equations
- One or more equations did not get rendered due to their size.
Instances For
Rewrite with the given rules and normalize casts between steps.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Normalize the goal and the given expression, then close the goal with exact.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Normalize the goal and the given expression, then apply the expression to the goal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
- Tactic.NormCast.convNormCast = Lean.ParserDescr.node `Tactic.NormCast.convNormCast 1024 (Lean.ParserDescr.nonReservedSymbol "norm_cast" false)
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.