module
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 := 1
    [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
