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
32 lines
621 B
Text
32 lines
621 B
Text
def g (a : α) (as : List α) : List α :=
|
||
match as with
|
||
| [] => [a]
|
||
| b::bs => a::a::b::bs
|
||
|
||
set_option trace.grind true in
|
||
set_option trace.grind.assert true in
|
||
example : ¬ (g a as).isEmpty := by
|
||
unfold List.isEmpty
|
||
unfold g
|
||
grind
|
||
|
||
def h (as : List Nat) :=
|
||
match as with
|
||
| [] => 1
|
||
| [_] => 2
|
||
| _::_::_ => 3
|
||
|
||
/--
|
||
trace: [grind] closed `grind.1`
|
||
[grind] closed `grind.2`
|
||
[grind] closed `grind.3`
|
||
-/
|
||
#guard_msgs (trace) in
|
||
set_option trace.grind true in
|
||
example : h as ≠ 0 := by
|
||
grind [h.eq_def]
|
||
|
||
example : h as ≠ 0 := by
|
||
unfold h
|
||
fail_if_success grind (splitMatch := false)
|
||
sorry
|