19 lines
412 B
Text
19 lines
412 B
Text
universe u
|
||
|
||
macro "Type*" : term => `(Type _)
|
||
|
||
open Nat
|
||
|
||
variable {α : Type u}
|
||
|
||
def vec : Type u → Nat → Type*
|
||
| A, 0 => PUnit
|
||
| A, succ k => A × vec A k
|
||
|
||
inductive dfin : Nat → Type
|
||
| fz {n} : dfin (succ n)
|
||
| fs {n} : dfin n → dfin (succ n)
|
||
|
||
def kth_projn : (n : Nat) → vec α n → dfin n → α
|
||
| succ n, x, dfin.fz => x.fst
|
||
| succ n, (x, xs), dfin.fs k => kth_projn n xs k
|