This was suggested by Scott Morrison to be able to help projects adjust to `Nat` having built-in custom eliminators.
48 lines
667 B
Text
48 lines
667 B
Text
/-!
|
|
# Tests for the custom eliminators feature for `induction` and `cases`
|
|
-/
|
|
|
|
/-!
|
|
Test the built-in custom `Nat` eliminator.
|
|
-/
|
|
/--
|
|
error: unsolved goals
|
|
case zero
|
|
P : Nat → Prop
|
|
⊢ P 0
|
|
|
|
case succ
|
|
P : Nat → Prop
|
|
n✝ : Nat
|
|
a✝ : P n✝
|
|
⊢ P (n✝ + 1)
|
|
-/
|
|
#guard_msgs in
|
|
example (P : Nat → Prop) : P n := by
|
|
induction n
|
|
done
|
|
|
|
/-!
|
|
Turn off the built-in custom `Nat` eliminator.
|
|
-/
|
|
section
|
|
set_option tactic.customEliminators false
|
|
|
|
/--
|
|
error: unsolved goals
|
|
case zero
|
|
P : Nat → Prop
|
|
⊢ P Nat.zero
|
|
|
|
case succ
|
|
P : Nat → Prop
|
|
n✝ : Nat
|
|
n_ih✝ : P n✝
|
|
⊢ P n✝.succ
|
|
-/
|
|
#guard_msgs in
|
|
example (P : Nat → Prop) : P n := by
|
|
induction n
|
|
done
|
|
|
|
end
|