@@ -232,12 +232,7 @@ def CoefficientsMap.toExpr (coeff : CoefficientsMap) (op : Op) : VarStateM (Opti
232232 | some acc => some <| mkApp2 op.toExpr acc expr
233233 return acc
234234
235- open VarStateM Lean.Meta Lean.Elab Term Grind
236-
237- #check Grind.Arith.CommRing.check
238- #check Grind.solve
239- #check Grind.main
240-
235+ open VarStateM Lean.Meta Lean.Elab Term
241236
242237/--
243238Given two expressions `x, y` which are equal up to associativity and commutativity,
@@ -249,23 +244,11 @@ def proveEqualityByGrindCommRing (x y : Expr) : MetaM Expr := do
249244 let expectedType ← mkEq x y
250245 let mvar ← mkFreshExprMVar expectedType
251246 let config := {}
252- let params ← Grind.mkParams config
253- let grindComputation : GrindM Unit := do
254- -- | TODO: get params from GrindM
255- let goal ← Grind.mkGoal mvar.mvarId! params
256- let success? ← Grind.Arith.CommRing.check.run goal
257- return ()
258- -- let go : Grind.GrindM Grind.Result := withReducible do
259- -- let goal ← initCore mvarId params
260- -- let failure? ← solve goal
261- -- let issues := (← get).issues
262- -- let result ← Grind.main mvar.mvarId! (← Grind.mkParams config) (pure ())
263- let result ← grindComputation.run params (pure ())
264- -- if let .some g := result.failure? then
265- -- throwError "grind failed with leftover goal: {indentD (← g.ppState)}"
266- -- else
267- -- instantiateMVars mvar
268- instantiateMVars mvar
247+ let result ← Grind.main mvar.mvarId! (← Grind.mkParams config) (pure ())
248+ if let .some g := result.failure? then
249+ throwError "grind failed with leftover goal: {indentD (← g.ppState)}"
250+ else
251+ instantiateMVars mvar
269252
270253
271254/--
0 commit comments