Buenas.,
estoy con problemas para demostrar el L5. Llego a esto:
A : Set
a : A
l : list A
IHl : length A (reverse_aux A l (nil A)) = length A l
______________________________________(1/1)
length A (reverse_aux A l (const A a (nil A))) = S (length A (reverse_aux A l (nil A)))
Y luego no se como seguir. Puede ser que mi definición de reverse este mal:
Fixpoint reverse_aux (A:Set) (l acc : list A) : list A :=
match l with
| nil _ => acc
| const _ x rest => reverse_aux A rest (const A x acc)
end .
Definition reverse (A: Set) (l:list A) : list A :=
reverse_aux A l (nil A).