@@ -69,7 +69,6 @@ def mkExpectedHint (s : Struct) (e : Expr) (kind : CnstrKind) (lhs rhs : Expr) (
6969 let rel := match kind with
7070 | .le => s.leFn
7171 | .lt => s.ltFn?.get!
72- | .eq => mkApp (mkConst ``Eq [mkLevelSucc s.u]) s.type
7372 let e' := mkApp2 rel lhs rhs
7473 let prop := mkApp2 propEq e e'
7574 let h' := mkExpectedPropHint h prop
@@ -88,7 +87,6 @@ def mkCnstrNorm0 (s : Struct) (ringInst : Expr) (kind : CnstrKind) (lhs rhs : Ex
8887 match kind with
8988 | .le => mkLeNorm0 s ringInst lhs rhs
9089 | .lt => mkLtNorm0 s ringInst lhs rhs
91- | .eq => mkEqNorm0 s ringInst lhs rhs
9290
9391/--
9492Returns `rel lhs (rhs + 0)`
@@ -98,7 +96,6 @@ def mkDenote0 [MonadLiftT MetaM m] [MonadError m] [Monad m] [MonadCanon m] [Mona
9896 let rel := match kind with
9997 | .le => s.leFn
10098 | .lt => s.ltFn?.get!
101- | .eq => mkApp (mkConst ``Eq [mkLevelSucc s.u]) s.type
10299 let rhs' := mkApp2 (← getAddFn) rhs (mkApp (← getIntCastFn) (mkIntLit 0 ))
103100 return mkApp2 rel lhs rhs'
104101
@@ -118,7 +115,6 @@ def mkCommRingCnstr? (e : Expr) (s : Struct) (kind : CnstrKind) (lhs rhs : Expr)
118115 let h ← match kind with
119116 | .le => mkLeIffProof s.leInst s.ltInst?.get! s.isPreorderInst s.orderedRingInst?.get! lhs rhs lhs' rhs'
120117 | .lt => mkLtIffProof s.leInst s.ltInst?.get! s.lawfulOrderLTInst?.get! s.isPreorderInst s.orderedRingInst?.get! lhs rhs lhs' rhs'
121- | .eq => mkEqIffProof lhs rhs lhs' rhs'
122118 let (e', h') := mkExpectedHint s e kind u (← rhs'.denoteExpr) h
123119 return some {
124120 kind, u, v, k, e := e', h? := some h'
@@ -141,7 +137,6 @@ def mkNonCommRingCnstr? (e : Expr) (s : Struct) (kind : CnstrKind) (lhs rhs : Ex
141137 let h ← match kind with
142138 | .le => mkNonCommLeIffProof s.leInst s.ltInst?.get! s.isPreorderInst s.orderedRingInst?.get! lhs rhs lhs' rhs'
143139 | .lt => mkNonCommLtIffProof s.leInst s.ltInst?.get! s.lawfulOrderLTInst?.get! s.isPreorderInst s.orderedRingInst?.get! lhs rhs lhs' rhs'
144- | .eq => mkNonCommEqIffProof lhs rhs lhs' rhs'
145140 let (e', h') := mkExpectedHint s e kind u (← rhs'.denoteExpr) h
146141 return some {
147142 kind, u, v, k, e := e', h? := some h'
@@ -192,15 +187,15 @@ def internalizeCnstr (e : Expr) (kind : CnstrKind) (lhs rhs : Expr) : OrderM Uni
192187 let u ← mkNode c.u
193188 let v ← mkNode c.v
194189 let c := { c with u, v }
195- if let some k' := c.getWeight? then
196- if let some k ← getDist? u v then
197- if k ≤ k' then
198- propagateEqTrue c e u v k k'
199- return ()
200- if let some k ← getDist? v u then
201- if (k + k').isNeg then
202- propagateEqFalse c e v u k k'
203- return ()
190+ let k' := c.getWeight
191+ if let some k ← getDist? u v then
192+ if k ≤ k' then
193+ propagateEqTrue c e u v k k'
194+ return ()
195+ if let some k ← getDist? v u then
196+ if (k + k').isNeg then
197+ propagateEqFalse c e v u k k'
198+ return ()
204199 setStructId e
205200 modifyStruct fun s => { s with
206201 cnstrs := s.cnstrs.insert { expr := e } c
@@ -224,12 +219,6 @@ def adaptNat (e : Expr) : GoalM Expr := do
224219 let eNew := mkIntLT lhs' rhs'
225220 let h := mkApp6 (mkConst ``Nat.ToInt.lt_eq) lhs rhs lhs' rhs' h₁ h₂
226221 pure (eNew, h)
227- | Eq _ lhs rhs =>
228- let (lhs', h₁) ← natToInt lhs
229- let (rhs', h₂) ← natToInt rhs
230- let eNew := mkIntEq lhs' rhs'
231- let h := mkApp6 (mkConst ``Nat.ToInt.eq_eq) lhs rhs lhs' rhs' h₁ h₂
232- pure (eNew, h)
233222 | _ => return e
234223 modify' fun s => { s with
235224 cnstrsMap := s.cnstrsMap.insert { expr := e } (eNew, h)
@@ -259,7 +248,6 @@ public def internalize (e : Expr) (parent? : Option Expr) : GoalM Unit := do
259248 match_expr e with
260249 | LE.le _ _ lhs rhs => internalizeCnstr e .le lhs rhs
261250 | LT.lt _ _ lhs rhs => if (← hasLt) then internalizeCnstr e .lt lhs rhs
262- | Eq _ lhs rhs => internalizeCnstr e .eq lhs rhs
263251 | _ =>
264252 -- **Note** : We currently do not internalize offset terms nested in other terms.
265253 return ()
0 commit comments