This PR upstreams the definition of `Vector` from Batteries, along with the basic functions.
14 lines
513 B
Text
14 lines
513 B
Text
def Vector' (α : Type u) (n : Nat) :=
|
||
{ l : List α // l.length = n }
|
||
|
||
inductive HVect : (n : Nat) -> (Vector' (Type v) n) -> Type (v+1) where
|
||
| Nil : HVect 0 ⟨ [], simp ⟩
|
||
| Cons : (t : Type v) -> (x : t) -> HVect n ⟨ts, p⟩ -> HVect (n+1) ⟨t::ts, by simp [p]⟩
|
||
|
||
def printHOK (v : HVect (n+1) ⟨String::ts, p'⟩) : String :=
|
||
match v with
|
||
| HVect.Cons _ x _ => (x : String)
|
||
|
||
def printHKO (v : HVect (n+1) ⟨String::ts, p'⟩) : String :=
|
||
match v with
|
||
| HVect.Cons _ x _ => "Hi"
|