The rewrites tactic. #
rw? tries to find a lemma which can rewrite the goal.
rw? should not be left in proofs; it is a search tool, like apply?.
Suggestions are printed as rw [h] or rw [←h].
Future work #
We could try discharging side goals via assumption or solve_by_elim.
Weight to multiply the "specificity" of a rewrite lemma by when rewriting forwards.
Equations
Instances For
Weight to multiply the "specificity" of a rewrite lemma by when rewriting backwards.
Equations
Instances For
Prepare the discrimination tree entries for a lemma.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Select = and ↔ local hypotheses.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Insert a lemma into the discrimination tree.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Construct the discrimination tree of all lemmas.
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
Retrieve the current cache of lemmas.
Instances For
- expr : Lean.Expr
The lemma we rewrote by. This is
Expr, not just aName, as it may be a local hypothesis. - symm : Bool
Trueif we rewrote backwards (i.e. withrw [← h]). - weight : Nat
The "weight" of the rewrite. This is calculated based on how specific the rewrite rule was.
- result : Lean.Meta.RewriteResult
The result from the
rwtactic. - mctx : Lean.MetavarContext
The metavariable context after the rewrite. This needs to be stored as part of the result so we can backtrack the state.
Data structure recording a potential rewrite to report from the rw? tactic.
Instances For
Update a RewriteResult by filling in the rfl? field if it is currently none,
to reflect whether the remaining goal can be closed by with_reducible rfl.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Find lemmas which can rewrite the goal.
This core function returns a monadic list, to allow the caller to decide how long to search.
See also rewrites for a more convenient interface.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Find lemmas which can rewrite the goal.
Equations
- One or more equations did not get rendered due to their size.
Instances For
rw? tries to find a lemma which can rewrite the goal.
rw? should not be left in proofs; it is a search tool, like apply?.
Suggestions are printed as rw [h] or rw [←h].
Equations
- One or more equations did not get rendered due to their size.