Hola, haciendo elim en l3 este ejercicio se resuelve fácilmente. Sin embargo si hacemos induction en l3 llegamos a una hipótesis inductiva con la que no podemos llegar a nada. ¿No entiendo por qué?
Esta es la prueba correcta con elim:
Lemma es_correcto_posfijo1 : forall (A : Set) (l1 l2 l3 : list A),
l2 = append A l3 l1 -> posfijo A l1 l2.
Proof.
intros.
rewrite H.
elim l3.
simpl.
apply vacio.
simpl.
intros.
apply no_vacio.
assumption.
Qed.
Sin embargo cuando la hago con iduction llego en le paso inductivo llego a:
H : l2 = append A (cons A a l3) l1
IHl3 : l2 = append A l3 l1 -> posfijo A l1 (append A l3 l1)
______________________________________(1/1)
posfijo A l1 (append A (cons A a l3) l1)
Saludos,
Jairo.