[Práctico 6] Ej 9

[Práctico 6] Ej 9

de Andres Fulloni Papaleo -
Número de respuestas: 1
Buenas, estoy trancado en este ejercicio.

Comencé haciendo intros, dando como testigo a (insert_sort l) y aplicando functional iduction sobre el testigo. El paso base lo logré probar pero luego tengo que dar una prueba de lo siguiente:

2 subgoals
A : Set
x : nat
xl : list nat
IHl0 : sorted nat le (insert_sort xl) /\ perm nat xl (insert_sort xl)
H : sorted nat le (insert_sort xl)
H0 : perm nat xl (insert_sort xl)
______________________________________(1/2)
sorted nat le (insert x (insert_sort xl))

No veo como poder usar las hipótesis para realizar la prueba. Alguna sugerencia?

Gracias.


En respuesta a Andres Fulloni Papaleo

Re: [Práctico 6] Ej 9

de Carlos Luna -

Hola.

Primero comento que no es un ejercicio trivial y por las dudas aclaro que no se pide en la entrega.

En este caso lo que se pide probar es esencialmente un lema auxiliar que exprese que:

para toda lista L: sorted nat le L -> sorted nat le (insert x L).

Se puede demostrar este lema auxiliar por inducción en L, por ejemplo (también podría ser en la hipótesis sobre: sorted nat le L). 

Saludos, Carlos

PD: Ver el libro Coq'Art, written by Yves Bertot and Pierre Casteran.