(Type u) is the old (Type (u+1)) (PType u) is the old (Type u) Type* is the old (Type (_+1)) PType* is the old Type* The stdlib can be compiled, but we still have > 70 broken tests See discussion at #1341
16 lines
476 B
Text
16 lines
476 B
Text
open nat
|
||
|
||
inductive {u} vec (α : Type u) : ℕ → Type u
|
||
| nil {} : vec 0
|
||
| cons : α → Π {n : nat}, vec n → vec (n+1)
|
||
|
||
namespace vec
|
||
def head {α : Type*} : Π {n : ℕ}, vec α (n+1) → α
|
||
| n (cons x xs) := x
|
||
end vec
|
||
|
||
constants (dret : Π {n : ℕ}, vec nat n → (vec nat n → nat) → nat)
|
||
axiom dret_spec : Π {n : ℕ} (xs : vec nat n) (f : vec nat n → nat), dret xs f = f xs
|
||
|
||
example (v : vec nat (id 1)) : dret v vec.head = vec.head v :=
|
||
by rw dret_spec
|