Acciones

Discusión

Relación 5

De Razonamiento automático (2016-17)

Revisión del 16:07 1 dic 2016 de Danrodcha (discusión | contribuciones)
(dif) ← Revisión anterior | Revisión actual (dif) | Revisión siguiente → (dif)

(* bowma *) lemma length_borraDuplicados_2f:

 "length (borraDuplicados xs) ≤ length xs" (is "?p xs")

proof (induct xs)

 show "length (borraDuplicados []) ≤ length []" by simp

next

 fix a xs
 assume HI: "?p xs"
 have c1: "1+length xs = length (a#xs)" by simp
 also have "length(borraDuplicados (a#xs)) ≤ 
            1 + length(borraDuplicados xs)" by simp
 also have "... ≤ 1+length xs" using HI by simp
 then show "length(borraDuplicados (a#xs)) ≤ length (a#xs)" 
   using c1 by simp

(* ¿Aquí porqué no puedo usar "finally show "?p (a # xs)" using c1 by simp?

  Y porque no puedo añadir "finally show "?p (a # xs)" by simp al final? *)

qed

(* respuesta : danrodcha *) (* mirar en editar xq aqui no se entiende *) lemma length_borraDuplicados_2f:

 "length (borraDuplicados xs) ≤ length xs" (is "?p xs")

proof (induct xs)

 show "length (borraDuplicados []) ≤ length []" by simp (* <----yo aprovecharia los patrones "?p []" *)

next

 fix a xs
 assume HI: "?p xs"

(* have c1: "1+length xs = length (a#xs)" by simp *) (* <------ esto no hace falta *) (* also *) have "length(borraDuplicados (a#xs)) ≤

            1 + length(borraDuplicados xs)" by simp
 also have "... ≤ 1+length xs" using HI by simp
(* then show "length(borraDuplicados (a#xs)) ≤ length (a#xs)" 
    using c1 by simp *)
 finally show "?p (a#xs)" by simp

qed