Estoy tratando de demostrar un lema simple en Agda, que creo que es cierto.Mostrar (head. Init) = cabeza en Agda
Si un vector tiene más de dos elementos, teniendo su
head
siguientes tomando elinit
es el mismo que tomar suhead
inmediatamente.
he formulado de la siguiente manera:
lem-headInit : ∀{l} (xs : Vec ℕ (suc (suc l)))
-> head (init xs) ≡ head xs
lem-headInit (x ∷ xs) = ?
que me da;
.l : ℕ
x : ℕ
xs : Vec ℕ (suc .l)
------------------------------
Goal: head (init (x ∷ xs) | (initLast (x ∷ xs) | initLast xs)) ≡ x
como respuesta.
No entiendo completamente cómo leer el componente (init (x ∷ xs) | (initLast (x ∷ xs) | initLast xs))
. Supongo que mis preguntas son; es posible, cómo y qué significa ese término.
Muchas gracias.