File tree Expand file tree Collapse file tree 2 files changed +7
-3
lines changed
src/Lean/Meta/Tactic/Grind Expand file tree Collapse file tree 2 files changed +7
-3
lines changed Original file line number Diff line number Diff line change @@ -335,8 +335,7 @@ private def processNewFactsImpl : GoalM Unit := do
335335 resetNewFacts
336336 return ()
337337 checkSystem "grind"
338- let some next := (← popNextFact?)
339- | return ()
338+ let some next ← popNextFact? | return ()
340339 match next with
341340 | .eq lhs rhs proof isHEq => addEqStep lhs rhs proof isHEq
342341 | .fact prop proof gen => addFactStep prop proof gen
Original file line number Diff line number Diff line change @@ -48,7 +48,12 @@ and then applies several other preprocessing steps.
4848def preprocess (e : Expr) : GoalM Simp.Result := do
4949 let e ← instantiateMVars e
5050 let r ← simpCore e
51- let e' := r.expr
51+ /-
52+ **Note** : Some transformation performed by `simp` may introduce metavariables.
53+ Example: zeta-reduction. Recall that `simp` does not necessarily visit every subterm.
54+ In particular, it does not visit universe terms and does not instantiate them.
55+ -/
56+ let e' ← instantiateMVars r.expr
5257 -- Remark: `simpCore` unfolds reducible constants, but it does not consistently visit all possible subterms.
5358 -- So, we must use the following `unfoldReducible` step. It is non-op in most cases
5459 let e' ← unfoldReducible e'
You can’t perform that action at this time.
0 commit comments