con Isabelle/Isar - Dpto. Ciencias de la Computación e Inteligencia ...
con Isabelle/Isar - Dpto. Ciencias de la Computación e Inteligencia ... con Isabelle/Isar - Dpto. Ciencias de la Computación e Inteligencia ...
24 Capítulo 2. El lenguaje de demostración Isar shows a | c proof simp from ab obtain m where m: m∗a = b by auto from bc obtain n where n: n∗b = c by auto from m n have m∗n∗a = c by auto thus ∃ k. k∗a = c by (rule exI) qed Nota 2.4.10 (Método auto). En el lema anterior es la primera vez que se usa el método automático (by auto). Lema 2.4.11 (CNS de divisibilidad). Sean a y b dos números naturales. Entonces a es divisible por b syss el resto de dividir a entre b es cero. lemma CNS-divisibilidad: (a | b) = (b mod a = 0) by auto 2.5 Razonamiento ecuacional Nota 2.5.1 (Elementos para el razonamiento ecuacional). El razonamiento ecuacional se realiza de manera más concisa usando la combinación de also (además) y finally (finalmente). Lema 2.5.2 (Ejemplo de razonamiento ecuacional). Si a = b, b = c y c = d, entonces a = d. lemma assumes 1: a = b and 2: b = c and 3: c = d shows a = d proof − have a = b by (rule 1) also have . . . = c by (rule 2) also have . . . = d by (rule 3) finally show a = d . qed Nota 2.5.3 (Demostración automática con la maza). El lema anterior puede demostrarse automáticamente con la maza (“sledgehammer”). lemma
2.5. Razonamiento ecuacional 25 assumes 1: a = b and 2: b = c and 3: c = d shows a = d proof − show a=d by (metis 1 2 3) qed
- Page 1: Introducción a la demostración as
- Page 4 and 5: 4 Índice 5 Heurísticas para la in
- Page 6 and 7: 6 Índice
- Page 8 and 9: 8 Capítulo 1. Isabelle como un len
- Page 10 and 11: 10 Capítulo 1. Isabelle como un le
- Page 12 and 13: 12 Capítulo 1. Isabelle como un le
- Page 14 and 15: 14 Capítulo 1. Isabelle como un le
- Page 16 and 17: 16 Capítulo 2. El lenguaje de demo
- Page 18 and 19: 18 Capítulo 2. El lenguaje de demo
- Page 20 and 21: 20 Capítulo 2. El lenguaje de demo
- Page 22 and 23: 22 Capítulo 2. El lenguaje de demo
- Page 26 and 27: 26 Capítulo 2. El lenguaje de demo
- Page 28 and 29: 28 Capítulo 3. Distinción de caso
- Page 30 and 31: 30 Capítulo 3. Distinción de caso
- Page 32 and 33: 32 Capítulo 3. Distinción de caso
- Page 34 and 35: 34 Capítulo 3. Distinción de caso
- Page 36 and 37: 36 Capítulo 4. Patrones de demostr
- Page 38 and 39: 38 Capítulo 4. Patrones de demostr
- Page 40 and 41: 40 Capítulo 4. Patrones de demostr
- Page 42 and 43: 42 Capítulo 5. Heurísticas para l
- Page 44 and 45: 44 Capítulo 5. Heurísticas para l
- Page 46 and 47: 46 Capítulo 5. Heurísticas para l
- Page 48 and 49: 48 Capítulo 5. Heurísticas para l
- Page 50 and 51: 50 Capítulo 6. Caso de estudio: Co
- Page 52 and 53: 52 Capítulo 6. Caso de estudio: Co
- Page 54: 54 Capítulo 6. Caso de estudio: Co
24 Capítulo 2. El lenguaje <strong>de</strong> <strong>de</strong>mostración <strong>Isar</strong><br />
shows a | c<br />
proof simp<br />
from ab obtain m where m: m∗a = b by auto<br />
from bc obtain n where n: n∗b = c by auto<br />
from m n have m∗n∗a = c by auto<br />
thus ∃ k. k∗a = c by (rule exI)<br />
qed<br />
Nota 2.4.10 (Método auto). En el lema anterior es <strong>la</strong> primera vez que se usa el método<br />
automático (by auto).<br />
Lema 2.4.11 (CNS <strong>de</strong> divisibilidad). Sean a y b dos números naturales. Entonces a es divisible<br />
por b syss el resto <strong>de</strong> dividir a entre b es cero.<br />
lemma CNS-divisibilidad:<br />
(a | b) = (b mod a = 0)<br />
by auto<br />
2.5 Razonamiento ecuacional<br />
Nota 2.5.1 (Elementos para el razonamiento ecuacional). El razonamiento ecuacional<br />
se realiza <strong>de</strong> manera más <strong>con</strong>cisa usando <strong>la</strong> combinación <strong>de</strong> also (a<strong>de</strong>más) y finally<br />
(finalmente).<br />
Lema 2.5.2 (Ejemplo <strong>de</strong> razonamiento ecuacional). Si a = b, b = c y c = d, entonces<br />
a = d.<br />
lemma<br />
assumes 1: a = b and 2: b = c and 3: c = d<br />
shows a = d<br />
proof −<br />
have a = b by (rule 1)<br />
also have . . . = c by (rule 2)<br />
also have . . . = d by (rule 3)<br />
finally show a = d .<br />
qed<br />
Nota 2.5.3 (Demostración automática <strong>con</strong> <strong>la</strong> maza). El lema anterior pue<strong>de</strong> <strong>de</strong>mostrarse<br />
automáticamente <strong>con</strong> <strong>la</strong> maza (“sledgehammer”).<br />
lemma