lean4-htt/tests/lean/run/grind_split_issue.lean
Leonardo de Moura 1d971c8735
feat: Rabinowitsch transformation in grind (#8789)
This PR implements the Rabinowitsch transformation for `Field`
disequalities in `grind`. For example, this transformation is necessary
for solving:
```lean
example [Field α] (a : α) : a^2 = 0 → a = 0 := by
  grind
```
2025-06-14 22:22:40 +00:00

38 lines
774 B
Text

variable (d : Nat) in
inductive X : Nat → Prop
| f {s : Nat} : X s
| g {s : Nat} : X d → X s
/--
error: `grind` failed
case grind.1
c : Nat
q : X c 0
s : Nat
h : 0 = s
h_1 : ⋯ ≍ ⋯
⊢ False
[grind] Goal diagnostics
[facts] Asserted facts
[prop] X c 0
[prop] 0 = s
[prop] ⋯ ≍ ⋯
[eqc] True propositions
[prop] X c 0
[prop] X c s
[eqc] Equivalence classes
[eqc] {0, s}
[cases] Case analyses
[cases] [1/2]: X c 0
[cases] source: Initial goal
[cutsat] Assignment satisfying linear constraints
[assign] c := 2
[assign] s := 0
-/
#guard_msgs (error) in
example {c : Nat} (q : X c 0) : False := by
grind -mbtc [cases X]
example {c : Nat} (q : X c 0) : False := by
fail_if_success grind [cases X]
sorry