Rewriting at specified locations #
Many metaprograms have the following general structure: the input is an expression e and the
output is a new expression e', together with a proof that e = e'.
This file provides convenience functions to turn such a metaprogram into a variety of tactics:
using the metaprogram to modify the goal, a specified hypothesis, or (via Tactic.Location) a
combination of these.
Runs the given atLocal and atTarget methods on each of the locations selected by the given
loc.
- If
locis a list of locations, runs at each specified hypothesis (and finally the goal if⊢is included), and fails if any of the tactic applications fail. - If
locis*, runs at the nondependentProphypotheses (those produced byLean.MVarId.getNondepPropHyps) and then at the target.
This is a variant of Lean.Elab.Tactic.withLocation.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Different settings of communicating about a tactic which made no progress: do nothing (keep silent), print a warning or throw an error.
- silent : BehaviorIfUnchanged
Stay silent if this action has no effect.
- warning : BehaviorIfUnchanged
Log a warning if this action has no effect.
- error : BehaviorIfUnchanged
Throw an error if this action has no effect.
Instances For
Equations
- Mathlib.Tactic.instBEqBehaviorIfUnchanged.beq x✝ y✝ = (x✝.ctorIdx == y✝.ctorIdx)
Instances For
Equations
- One or more equations did not get rendered due to their size.
Instances For
Equations
Use the procedure m to rewrite the provided goal.
Assumes proc is not surrounded by backticks.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Use the procedure m to rewrite hypothesis fvarId.
The simpTheorems of the simp-context carried with m will be modified to remove fvarId;
this ensures that if the procedure m involves rewriting by this SimpTheoremsArray, then, e.g.,
h : x = y is not transformed (by rewriting h) to True.
Assumes proc is not surrounded by backticks.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Use the procedure m to transform at specified locations (hypotheses and/or goal).
Assumes proc is not surrounded by backticks.
Equations
- One or more equations did not get rendered due to their size.
Instances For
Use the procedure m to transform at specified locations (hypotheses and/or goal).
In the wildcard case (*), filter out all dependent and/or non-Prop hypotheses.
Assumes proc is not surrounded by backticks.
Equations
- One or more equations did not get rendered due to their size.