21 lines
681 B
Text
21 lines
681 B
Text
universe variables u
|
|
inductive vec (A : Type u) : nat → Type (max 1 u)
|
|
| nil {} : vec 0
|
|
| cons : Π {n}, A → vec n → vec (n+1)
|
|
|
|
open vec
|
|
|
|
variables {A : Type u}
|
|
variables f : A → A → A
|
|
|
|
/- The new equation compiler can process this example.
|
|
So, this is not a test about error messages anymore.
|
|
-/
|
|
def map_head : ∀ {n}, vec A n → vec A n → vec A n
|
|
| .(0) nil nil := nil
|
|
| .(n+1) (@cons .(A) .(n) a va) (@cons .(A) n b vb) := cons (f a b) va
|
|
|
|
/- The following shorter version is also accepted. -/
|
|
def map_head2 : ∀ {n}, vec A n → vec A n → vec A n
|
|
| _ nil nil := nil
|
|
| _ (cons a va) (cons b vb) := cons (f a b) va
|