This PR migrates most remaining tests to the new test suite. It also completes the migration of directories like `tests/lean/run`, meaning that PRs trying to add tests to those old directories will now fail.
80 lines
1.7 KiB
Text
80 lines
1.7 KiB
Text
/-! Incremental reuse in `induction` -/
|
||
|
||
--set_option trace.Elab.reuse true
|
||
|
||
theorem basic (n : Nat) : True := by
|
||
induction n with
|
||
| zero => sorry
|
||
| succ =>
|
||
dbg_trace "b 0"
|
||
dbg_trace "b 1"
|
||
dbg_trace "b 2"
|
||
--^ sync
|
||
--^ insert: ".5"
|
||
|
||
-- RESET
|
||
theorem nonFirst (n : Nat) : True := by
|
||
induction n with
|
||
| zero =>
|
||
dbg_trace "n 0"
|
||
dbg_trace "n 1"
|
||
--^ sync
|
||
--^ insert: ".5"
|
||
| succ =>
|
||
dbg_trace "n 2"
|
||
--^ sync
|
||
--^ insert: ".5"
|
||
|
||
-- RESET
|
||
-- currently the pre-tac will be re-executed even if we can reuse a specific branch's tactics
|
||
theorem preTac (n : Nat) : True := by
|
||
induction n with
|
||
dbg_trace "p -1"
|
||
| zero => sorry
|
||
| succ =>
|
||
dbg_trace "p 0"
|
||
dbg_trace "p 1"
|
||
--^ sync
|
||
--^ insert: ".5"
|
||
|
||
/-! No reuse in cases where branch is run more than once -/
|
||
|
||
-- RESET
|
||
theorem wildcard (n : Nat) : True := by
|
||
induction n with
|
||
| _ =>
|
||
dbg_trace "w 0"
|
||
dbg_trace "w 1"
|
||
--^ sync
|
||
--^ insert: ".5"
|
||
|
||
-- RESET
|
||
theorem preTacMulti (x : Nat × Nat × Nat) : True := by
|
||
induction x with
|
||
cases x
|
||
| mk x =>
|
||
dbg_trace "pm 0"
|
||
dbg_trace "pm 1"
|
||
--^ sync
|
||
--^ insert: ".5"
|
||
|
||
-- RESET
|
||
theorem cases (n : Nat) : True := by
|
||
cases n with
|
||
| zero =>
|
||
dbg_trace "c 0"
|
||
dbg_trace "c 1"
|
||
--^ sync
|
||
--^ insert: ".5"
|
||
| succ =>
|
||
dbg_trace "c 2"
|
||
--^ sync
|
||
--^ insert: ".5"
|
||
|
||
-- RESET
|
||
/-!
|
||
Regression test: make sure the dependent elimination error appears on `cases`
|
||
-/
|
||
example (f : Nat → Nat) (n : Nat) (h : f n = n) := by
|
||
cases h
|
||
--^ collectDiagnostics
|