17 lines
470 B
Text
17 lines
470 B
Text
set_option linter.unusedVariables false
|
|
|
|
inductive BV : Nat → Type
|
|
| nil : BV 0
|
|
| cons : (n : Nat) → (hd : Bool) → (tl : BV n) → BV (Nat.succ n)
|
|
|
|
open BV
|
|
|
|
def h : {n : Nat} → BV n.succ.succ → Bool
|
|
| _, cons (Nat.succ (Nat.succ m)) b v => b
|
|
| _, cons (Nat.succ Nat.zero) b v => not b
|
|
|
|
theorem ex1 (m : Nat) (b : Bool) (v : BV m.succ.succ) : h (cons m.succ.succ b v) = b :=
|
|
rfl
|
|
|
|
theorem ex2 (m : Nat) (b : Bool) (v : BV 1) : h (cons 1 b v) = not b :=
|
|
rfl
|