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 ...
16 Capítulo 2. El lenguaje de demostración Isar demostración ::= proof método declaración* qed | by método declaración ::= fix variable+ | assume proposición+ | (from hecho+)? have proposición+ demostración | (from hecho+)? show proposición+ demostración proposición ::= (etiqueta:)? cadena hecho ::= etiqueta método ::= - | this | rule hecho | simp | blast | auto | induct variable | ... La declaración show demuestra la conclusión de la demostración mientras que la declaración have demuestra un resultado intermedio. 2.2 Razonamiento proposicional Nota 2.2.1 (Regla de introducción de la conjunción). (conjI) P P ∧ Q Lema 2.2.2 (Ejemplo de introducción de conjunción con razonamiento progresivo). P, Q ⊢ P ∧ (Q ∧ P). Demostración: Estamos suponiendo y De 2.2 y 2.1, por introducción de la conjunción, se tiene Q P (2.1) Q (2.2) Q ∧ P (2.3) De 2.1 y 2.3, por introducción de la conjunción, se tiene P ∧ (Q ∧ P). □
2.2. Razonamiento proposicional 17 lemma conj2: assumes p: P and q: Q shows P ∧ (Q ∧ P) proof − from q p have qp: Q ∧ P by (rule conjI) from p qp show P ∧ (Q ∧ P) by (rule conjI) qed Nota 2.2.3 (Razonamiento progresivo y regresivo). • Isabelle soporta razonamiento progresivo. La anterior demostración es una muestra. • Isabelle soporta razonamiento regresivo. La siguiente demostración es una muestra. Lema 2.2.4 (Ejemplo de introducción de la conjunción con razonamiento regresivo). P, Q ⊢ P ∧ (Q ∧ P). Demostración: Estamos suponiendo y P (2.4) Q (2.5) Para demostrar el lema, por introducción de la conjunción, basta probar P (2.6) y Q ∧ P (2.7) La condición 2.6 se tiene por la hipótesis 2.4. Para demostrar la condición 2.7, por introducción de la conjunción, basta probar y Q (2.8) P (2.9) La condición 2.8 se tiene por la hipótesis 2.5 y la condición 2.9 se tiene por la hipótesis 2.4. □ lemma assumes p: P and q: Q shows P ∧ (Q ∧ P) proof (rule conjI)
- 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 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 24 and 25: 24 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
16 Capítulo 2. El lenguaje <strong>de</strong> <strong>de</strong>mostración <strong>Isar</strong><br />
<strong>de</strong>mostración ::= proof método <strong>de</strong>c<strong>la</strong>ración* qed<br />
| by método<br />
<strong>de</strong>c<strong>la</strong>ración ::= fix variable+<br />
| assume proposición+<br />
| (from hecho+)? have proposición+ <strong>de</strong>mostración<br />
| (from hecho+)? show proposición+ <strong>de</strong>mostración<br />
proposición ::= (etiqueta:)? ca<strong>de</strong>na<br />
hecho ::= etiqueta<br />
método ::= -<br />
| this<br />
| rule hecho<br />
| simp<br />
| b<strong>la</strong>st<br />
| auto<br />
| induct variable<br />
| ...<br />
La <strong>de</strong>c<strong>la</strong>ración show <strong>de</strong>muestra <strong>la</strong> <strong>con</strong>clusión <strong>de</strong> <strong>la</strong> <strong>de</strong>mostración mientras que <strong>la</strong> <strong>de</strong>c<strong>la</strong>ración<br />
have <strong>de</strong>muestra un resultado intermedio.<br />
2.2 Razonamiento proposicional<br />
Nota 2.2.1 (Reg<strong>la</strong> <strong>de</strong> introducción <strong>de</strong> <strong>la</strong> <strong>con</strong>junción).<br />
(<strong>con</strong>jI) P<br />
P ∧ Q<br />
Lema 2.2.2 (Ejemplo <strong>de</strong> introducción <strong>de</strong> <strong>con</strong>junción <strong>con</strong> razonamiento progresivo). P, Q<br />
⊢ P ∧ (Q ∧ P).<br />
Demostración: Estamos suponiendo<br />
y<br />
De 2.2 y 2.1, por introducción <strong>de</strong> <strong>la</strong> <strong>con</strong>junción, se tiene<br />
Q<br />
P (2.1)<br />
Q (2.2)<br />
Q ∧ P (2.3)<br />
De 2.1 y 2.3, por introducción <strong>de</strong> <strong>la</strong> <strong>con</strong>junción, se tiene P ∧ (Q ∧ P).<br />
□