88public import Lean.Meta.Tactic.Grind.Order.OrderM
99import Init.Data.Int.OfNat
1010import Init.Grind.Module.Envelope
11+ import Init.Grind.Order
1112import Lean.Meta.Tactic.Grind.Arith.CommRing.SafePoly
1213import Lean.Meta.Tactic.Grind.Arith.CommRing.Reify
1314import Lean.Meta.Tactic.Grind.Arith.CommRing.DenoteExpr
@@ -16,6 +17,7 @@ import Lean.Meta.Tactic.Grind.Arith.Cutsat.Nat
1617import Lean.Meta.Tactic.Grind.Order.StructId
1718import Lean.Meta.Tactic.Grind.Order.Util
1819import Lean.Meta.Tactic.Grind.Order.Assert
20+ import Lean.Meta.Tactic.Grind.Order.Proof
1921namespace Lean.Meta.Grind.Order
2022
2123open Arith CommRing
@@ -265,12 +267,14 @@ def toOffsetTerm? (e : Expr) : OrderM (Option OffsetTermResult) := do
265267
266268def internalizeTerm (e : Expr) : OrderM Unit := do
267269 let some r ← toOffsetTerm? e | return ()
268- let _ ← mkNode e
269- let _ ← mkNode r.a
270- -- **TODO** :
271- -- trace[ Meta.debug ] "e: {e}, a: {r.a}, k: {r.k}"
272- -- check r.h
273- return ()
270+ let x ← mkNode e
271+ let y ← mkNode r.a
272+ let h₁ ← mkOrdRingPrefix ``Grind.Order.le_of_offset_eq_1_k
273+ let h₁ := mkApp4 h₁ e r.a (toExpr r.k) r.h
274+ addEdge x y { k := r.k } h₁
275+ let h₂ ← mkOrdRingPrefix ``Grind.Order.le_of_offset_eq_2_k
276+ let h₂ := mkApp4 h₂ e r.a (toExpr r.k) r.h
277+ addEdge y x { k := -r.k } h₂
274278
275279def updateTermMap (e eNew h : Expr) : GoalM Unit := do
276280 modify' fun s => { s with
0 commit comments