This PR makes `#guard_msgs` to treat `trace` messages separate from `info`, `warning` and `error`. It also introduce the ability to say `#guard_msgs (pass info`, like `(drop info)` so far, and also adds `(check info)` as the explicit form of `(info)`, for completeness. Fixes #8266
29 lines
707 B
Text
29 lines
707 B
Text
set_option grind.warning false
|
|
|
|
example (x y : Int) : x / 2 + y = 3 → x = 5 → y = 1 := by
|
|
grind
|
|
|
|
example (x y : Int) : x / -2 + y = 3 → x = 5 → y = 5 := by
|
|
grind
|
|
|
|
example (x y : Int) : x % -2 + y = 3 → x = 5 → y = 2 := by
|
|
grind
|
|
|
|
example (x y : Int) : x % 2 + y = 3 → x = 5 → y = 2 := by
|
|
grind
|
|
|
|
/--
|
|
trace: [grind.cutsat.model] x := 5
|
|
[grind.cutsat.model] y := 2
|
|
-/
|
|
#guard_msgs (trace) in
|
|
set_option trace.grind.cutsat.model true in
|
|
example (x y : Int) : x % 2 + y = 3 → x ≤ 5 → x > 4 → y = 1 := by
|
|
fail_if_success grind
|
|
sorry
|
|
|
|
example (x y : Int) : x = y / 2 → y % 2 = 0 → y - 2*x = 0 := by
|
|
grind
|
|
|
|
example (x : Int) : x ≥ 0 → (x + 4) / 2 ≤ x + 2 := by
|
|
grind
|