24 lines
410 B
Text
24 lines
410 B
Text
|
|
inductive foo : bool → Type
|
|
| Z : foo ff
|
|
| O : foo ff → foo tt
|
|
| E : foo tt → foo ff
|
|
|
|
open foo
|
|
|
|
definition to_nat : ∀ {b}, foo b → nat
|
|
| .ff Z := 0
|
|
| .tt (O n) := to_nat n + 1
|
|
| .ff (E n) := to_nat n + 1
|
|
|
|
example : to_nat (E (O Z)) = 2 :=
|
|
rfl
|
|
|
|
example : to_nat Z = 0 :=
|
|
rfl
|
|
|
|
example (a : foo ff) : to_nat (O a) = to_nat a + 1 :=
|
|
rfl
|
|
|
|
example (a : foo tt) : to_nat (E a) = to_nat a + 1 :=
|
|
rfl
|