<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/~jalonso/LMF2013/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jalonso</id>
	<title>Lógica matemática y fundamentos (2012-13) - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/~jalonso/LMF2013/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jalonso"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php/Especial:Contribuciones/Jalonso"/>
	<updated>2026-07-17T20:26:25Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=563</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=563"/>
		<updated>2022-01-24T15:26:04Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Relaciones de ejercicios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]]). &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=MediaWiki:Common.css&amp;diff=562</id>
		<title>MediaWiki:Common.css</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=MediaWiki:Common.css&amp;diff=562"/>
		<updated>2018-07-16T07:34:17Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con «/* Los estilos CSS colocados aquí se aplicarán a todas las apariencias */ @import url(&amp;quot;/~jalonso/font-awesome-4.7.0/css/font-awesome.min.css&amp;quot;);»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;/* Los estilos CSS colocados aquí se aplicarán a todas las apariencias */&lt;br /&gt;
@import url(&amp;quot;/~jalonso/font-awesome-4.7.0/css/font-awesome.min.css&amp;quot;);&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=561</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=561"/>
		<updated>2014-03-18T16:01:06Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Relaciones de ejercicios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]]). &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=560</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=560"/>
		<updated>2014-03-18T15:59:39Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]]). &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]].&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=557</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=557"/>
		<updated>2014-02-11T09:58:12Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
&amp;lt;!--&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]] y [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]] y [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]] y [[AplicacionesLP |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;br /&gt;
--&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_1&amp;diff=556</id>
		<title>Relación 1</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_1&amp;diff=556"/>
		<updated>2014-02-11T09:57:26Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;pp&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;pp&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=555</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=555"/>
		<updated>2013-09-18T05:33:31Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Ejercicios evaluables */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]] y [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 8&amp;#039;&amp;#039;&amp;#039;: Tableros semánticos proposicionales en Haskell. ([[Media:Rel_8.hs |Enunciado]] y [[Relación 8 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 9&amp;#039;&amp;#039;&amp;#039;: Formas normales en lógica proposicional en Haskell ([[Media:FormasNormales.hs |Enunciado]] y [[Relación 9 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 10&amp;#039;&amp;#039;&amp;#039;: Cláusulas proposicionales en Haskell. ([[Media:Clausulas.hs |Enunciado]] y [[Relación 10 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 11&amp;#039;&amp;#039;&amp;#039;: Resolución proposicional en Haskell. ([[Media:ResolucionProposicional.hs |Enunciado]] y [[Relación 11 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 12&amp;#039;&amp;#039;&amp;#039;: Aplicaciones de la Lógica Proposicional en Haskell. ([[Media:AplicacionesLP.hs |Enunciado]] y [[AplicacionesLP |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 13&amp;#039;&amp;#039;&amp;#039;: Programación funcional en Isabelle/HOL. ([[Media:R13.thy |Enunciado]] y [[Relación 13 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 14&amp;#039;&amp;#039;&amp;#039;: Razonamiento sobre programas con Isabelle/HOL. ([[Media:R14.thy |Enunciado]] y [[Relación 14 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 14&amp;#039;&amp;#039;&amp;#039;: [[Tema 14 | Programación funcional en Isabelle/HOL]] ([[Media:T14.thy |Teoría]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 15&amp;#039;&amp;#039;&amp;#039;: [[Tema 15 | Razonamiento sobre programas con Isabelle/HOL]] ([[Media:T15.thy |Teoría]]).&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Relación 3 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Nota al ejercicio 2&amp;#039;&amp;#039;&amp;#039;: los lemas auxiliares que se usen en una demostración por deducción natural han de ser probados de forma no automática. Se amplía el plazo hasta el viernes 3 de mayo para que se envíe el ejercicio 2 teniendo en cuenta esta aclaración.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 3&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 3 |Argumentación, deducción natural en lógica de primer orden con Isabelle/HOL y tableros semánticos]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 4&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 4 | Algoritmos de lógica proposicional en Haskell]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 5 (opcional)&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 5 | Formas normales condicionales (Haskell e Isabelle/HOL)]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_7&amp;diff=378</id>
		<title>Rel 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_7&amp;diff=378"/>
		<updated>2013-04-09T18:59:07Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Protegió «Rel 7» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=377</id>
		<title>Relación 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_7&amp;diff=377"/>
		<updated>2013-04-09T18:58:40Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt; header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}  theory R7 imports Main  begin  text {*   Demostrar o refutar los siguientes...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_7&amp;diff=376</id>
		<title>Rel 7</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_7&amp;diff=376"/>
		<updated>2013-04-09T18:58:06Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt; header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}  theory R7 imports Main  begin  text {*   Demostrar o refutar los siguientes...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R7: Deducción natural en lógica de primer orden con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory R7&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Demostrar o refutar los siguientes lemas usando sólo las reglas&lt;br /&gt;
  básicas de deducción natural de la lógica proposicional, de los&lt;br /&gt;
  cuantificadores y de la igualdad: &lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
&lt;br /&gt;
  · allI:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allE:       (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  · exI:        P x ⟹ ∃x. P x&lt;br /&gt;
  · exE:        ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  · refl:       t = t&lt;br /&gt;
  · subst:      ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
  · trans:      ⟦r = s; s = t⟧ ⟹ r = t&lt;br /&gt;
  · sym:        s = t ⟹ t = s&lt;br /&gt;
  · not_sym:    t ≠ s ⟹ s ≠ t&lt;br /&gt;
  · ssubst:     ⟦t = s; P s⟧ ⟹ P t&lt;br /&gt;
  · box_equals: ⟦a = b; a = c; b = d⟧ ⟹ a: = d&lt;br /&gt;
  · arg_cong:   x = y ⟹ f x = f y&lt;br /&gt;
  · fun_cong:   f = g ⟹ f x = g x&lt;br /&gt;
  · cong:       ⟦f = g; x = y⟧ ⟹ f x = g y&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. P x) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P x) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
       ∃x. ¬(P x) ⊢ ¬(∀x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_2: &lt;br /&gt;
  assumes &amp;quot;∃x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
       ∀x. P x ⊢ ∀y. P y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_3: &lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. P y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q x ⊢ (∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_4: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. ¬(Q x)) ⟶ (∀x. ¬ (P x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
       ∀x. P x  ⟶ ¬(Q x) ⊢ ¬(∃x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5: &lt;br /&gt;
  assumes &amp;quot;∀x. P x  ⟶ ¬(Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
       ∀x y. P x y ⊢ ∀u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6: &lt;br /&gt;
  assumes &amp;quot;∀x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀u v. P u v&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
       ∃x y. P x y ⟹ ∃u v. P u v&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7: &lt;br /&gt;
  assumes &amp;quot;∃x y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃u v. P u v&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
       ∃x. ∀y. P x y ⊢ ∀y. ∃x. P x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8: &lt;br /&gt;
  assumes &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
       ∃x. P a ⟶ Q x ⊢ P a ⟶ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9: &lt;br /&gt;
  assumes &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
       P a ⟶ (∃x. Q x) ⊢ ∃x. P a ⟶ Q x &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10: &lt;br /&gt;
  fixes P Q :: &amp;quot;&amp;#039;b ⇒ bool&amp;quot; &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∃x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
       (∃x. P x) ⟶ Q a ⊢ ∀x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11: &lt;br /&gt;
  assumes &amp;quot;(∃x. P x) ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
       ∀x. P x ⟶ Q a ⊢ ∃ x. P x ⟶ Q a&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12: &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x ⟶ Q a&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
       (∀x. P x) ∨ (∀x. Q x) ⊢ ∀x. P x ∨ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13: &lt;br /&gt;
  assumes &amp;quot;(∀x. P x) ∨ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
       ∃x. P x ∧ Q x ⊢ (∃x. P x) ∧ (∃x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14: &lt;br /&gt;
  assumes &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
       ∀x y. P y ⟶ Q x ⊢ (∃y. P y) ⟶ (∀x. Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15: &lt;br /&gt;
  assumes &amp;quot;∀x y. P y ⟶ Q x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃y. P y) ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
       ¬(∀x. ¬(P x)) ⊢ ∃x. P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16: &lt;br /&gt;
  assumes &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
       ∀x. ¬(P x) ⊢ ¬(∃x. P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17: &lt;br /&gt;
  assumes &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
       ∃x. P x ⊢ ¬(∀x. ¬(P x))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18: &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. ¬(P x))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
       P a ⟶ (∀x. Q x) ⊢ ∀x. P a ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19: &lt;br /&gt;
  assumes &amp;quot;P a ⟶ (∀x. Q x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
       {∀x y z. R x y ∧ R y z ⟶ R x z, &lt;br /&gt;
        ∀x. ¬(R x x)}&lt;br /&gt;
       ⊢ ∀x y. R x y ⟶ ¬(R y x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20: &lt;br /&gt;
  assumes &amp;quot;∀x y z. R x y ∧ R y z ⟶ R x z&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. ¬(R x x)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     {∀x. P x ∨ Q x, ∃x. ¬(Q x), ∀x. R x ⟶ ¬(P x)} ⊢ ∃x. ¬(R x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; &lt;br /&gt;
          &amp;quot;∃x. ¬(Q x)&amp;quot; &lt;br /&gt;
          &amp;quot;∀x. R x ⟶ ¬(P x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬(R x)&amp;quot; &lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     {∀x. P x ⟶ Q x ∨ R x, ¬(∃x. P x ∧ R x)} ⊢ ∀x. P x ⟶ Q x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; &lt;br /&gt;
          &amp;quot;¬(∃x. P x ∧ R x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ Q x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     ∃x y. R x y ∨ R y x ⊢ ∃x y. R x y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. R x y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
       (∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
       (∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
       ((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_26: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar o refutar&lt;br /&gt;
       ((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar o refutar&lt;br /&gt;
       ((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar o refutar&lt;br /&gt;
       (∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29: &lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar o refutar&lt;br /&gt;
       (¬(∀x. P x)) ⟷ (∃x. ¬P x)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Ejercicios sobre igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar o refutar&lt;br /&gt;
       P a ⟹ ∀x. x = a ⟶ P x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;P a&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. x = a ⟶ P x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar o refutar&lt;br /&gt;
       ∃x y. R x y ∨ R y x; ¬(∃x. R x x)⟧ ⟹ ∃x y. x ≠ y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  fixes R :: &amp;quot;&amp;#039;c ⇒ &amp;#039;c ⇒ bool&amp;quot;&lt;br /&gt;
  assumes &amp;quot;∃x y. R x y ∨ R y x&amp;quot;&lt;br /&gt;
          &amp;quot;¬(∃x. R x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)} &lt;br /&gt;
     ⊢ P (f a) a (f a)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot;&lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;P (f a) a (f a)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar o refutar&lt;br /&gt;
     {∀x. P a x x, &lt;br /&gt;
      ∀x y z. P x y z ⟶ P (f x) y (f z)⟧&lt;br /&gt;
     ⊢ ∃z. P (f a) z (f (f a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;∀x. P a x x&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y z. P x y z ⟶ P (f x) y (f z)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃z. P (f a) z (f (f a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar o refutar&lt;br /&gt;
     {∀y. Q a y, &lt;br /&gt;
      ∀x y. Q x y ⟶ Q (s x) (s y)} &lt;br /&gt;
     ⊢ ∃z. Qa z ∧ Q z (s (s a))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;∀y. Q a y&amp;quot; &lt;br /&gt;
          &amp;quot;∀x y. Q x y ⟶ Q (s x) (s y)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar o refutar&lt;br /&gt;
     {x = f x, odd (f x)} ⊢ odd x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar o refutar&lt;br /&gt;
     {x = f x, triple (f x) (f x) x} ⊢ triple x x x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=375</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=375"/>
		<updated>2013-04-09T18:57:13Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Relaciones de ejercicios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 7&amp;#039;&amp;#039;&amp;#039;: Deducción natural en lógica de primer con Isabelle/HOL. ([[Rel_7 |Enunciado]] y [[Relación 7 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL de los temas de deducción natural ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
&lt;br /&gt;
=== Ejercicios evaluables ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 1&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 1 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Ejercicio 2&amp;#039;&amp;#039;&amp;#039;: [[Ejercicio 2 |Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Ejercicio_2&amp;diff=370</id>
		<title>Ejercicio 2</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Ejercicio_2&amp;diff=370"/>
		<updated>2013-04-09T15:58:43Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Enunciado */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Enunciado ==&lt;br /&gt;
El segundo ejercicio evaluable consiste en la realización de una demostración por deducción natural en la Lógica de primer orden, con Isabelle/HOL.&lt;br /&gt;
Para ello, &lt;br /&gt;
* Cada alumno elegirá uno de los ejercicios propuestos en [[T2 |T2]]. &lt;br /&gt;
* Una vez elegido, lo anotará en la lista que se muestra a continuación, no pudiendo un mismo ejercicio ser elegido por más de un alumno. &lt;br /&gt;
* El ejercicio resuelto se enviará a mjoseh@us.es en un fichero usuario_2.thy antes del viernes 26 de abril de 2013.&lt;br /&gt;
* En la valoración del ejercicio se tendrá en cuenta tanto el nivel de dificultad como la calidad de la demostración.&lt;br /&gt;
&lt;br /&gt;
== Selección del ejercicio ==&lt;br /&gt;
&lt;br /&gt;
* Ejercicio 1: &lt;br /&gt;
* Ejercicio 2: &lt;br /&gt;
* Ejercicio 3: &lt;br /&gt;
* Ejercicio 4: &lt;br /&gt;
* Ejercicio 5: &lt;br /&gt;
* Ejercicio 6: &lt;br /&gt;
* Ejercicio 7: &lt;br /&gt;
* Ejercicio 8: &lt;br /&gt;
* Ejercicio 9: &lt;br /&gt;
* Ejercicio 10: &lt;br /&gt;
* Ejercicio 11: &lt;br /&gt;
* Ejercicio 12: &lt;br /&gt;
* Ejercicio 13: &lt;br /&gt;
* Ejercicio 14: &lt;br /&gt;
* Ejercicio 15: &lt;br /&gt;
* Ejercicio 16: &lt;br /&gt;
* Ejercicio 17: &lt;br /&gt;
* Ejercicio 18: &lt;br /&gt;
* Ejercicio 19: &lt;br /&gt;
* Ejercicio 20: &lt;br /&gt;
* Ejercicio 21: &lt;br /&gt;
* Ejercicio 22: &lt;br /&gt;
* Ejercicio 23: &lt;br /&gt;
* Ejercicio 24: &lt;br /&gt;
* Ejercicio 25: &lt;br /&gt;
* Ejercicio 26: &lt;br /&gt;
* Ejercicio 27: &lt;br /&gt;
* Ejercicio 28: &lt;br /&gt;
* Ejercicio 29: &lt;br /&gt;
* Ejercicio 30: &lt;br /&gt;
* Ejercicio 31: &lt;br /&gt;
* Ejercicio 32: &lt;br /&gt;
* Ejercicio 33:&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_8&amp;diff=329</id>
		<title>Tema 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_8&amp;diff=329"/>
		<updated>2013-04-01T15:48:58Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* Tema 8: Deducción natural en lógica de primer orden *}&lt;br /&gt;
&lt;br /&gt;
theory Tema8&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  El objetivo de este tema es presentar la deducción natural en &lt;br /&gt;
  lógica de primer orden con Isabelle/HOL. La presentación se &lt;br /&gt;
  basa en los ejemplos de tema 8 del curso LMF que se encuentra &lt;br /&gt;
  en http://goo.gl/uJj8d (que a su vez se basa en el libro de &lt;br /&gt;
  Huth y Ryan &amp;quot;Logic in Computer Science&amp;quot; http://goo.gl/qsVpY ). &lt;br /&gt;
&lt;br /&gt;
  La página al lado de cada ejemplo indica la página de las &lt;br /&gt;
  transparencias de LMF donde se encuentra la demostración. *}&lt;br /&gt;
&lt;br /&gt;
section {* Reglas del cuantificador universal *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Las reglas del cuantificador universal son&lt;br /&gt;
  · allE:    ⟦∀x. P x; P a ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allI:    (⋀x. P x) ⟹ ∀x. P x&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 1 (p. 10). Demostrar que&lt;br /&gt;
     P(c), ∀x. (P(x) ⟶ ¬Q(x)) ⊢ ¬Q(c)&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_1a: &lt;br /&gt;
  assumes 1: &amp;quot;P(c)&amp;quot; and&lt;br /&gt;
          2: &amp;quot;∀x. (P(x) ⟶ ¬Q(x))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Q(c)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;P(c) ⟶ ¬Q(c)&amp;quot; using 2 by (rule allE)&lt;br /&gt;
  show 4: &amp;quot;¬Q(c)&amp;quot; using 3 1 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_1b: &lt;br /&gt;
  assumes &amp;quot;P(c)&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. (P(x) ⟶ ¬Q(x))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Q(c)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;P(c) ⟶ ¬Q(c)&amp;quot; using assms(2) ..&lt;br /&gt;
  thus &amp;quot;¬Q(c)&amp;quot; using assms(1) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_1c: &lt;br /&gt;
  assumes &amp;quot;P(c)&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. (P(x) ⟶ ¬Q(x))&amp;quot;&lt;br /&gt;
  shows &amp;quot;¬Q(c)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 2 (p. 11). Demostrar que&lt;br /&gt;
     ∀x. (P x ⟶ ¬(Q x)), ∀x. P x ⊢ ∀x. ¬(Q x)&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2a: &lt;br /&gt;
  assumes 1: &amp;quot;∀x. (P x ⟶ ¬(Q x))&amp;quot; and&lt;br /&gt;
          2: &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;∀x. ¬(Q x)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { fix a&lt;br /&gt;
    have 3: &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using 1 by (rule allE)&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot; using 2 by (rule allE)&lt;br /&gt;
    have 5: &amp;quot;¬(Q a)&amp;quot; using 3 4 by (rule mp) }&lt;br /&gt;
  thus &amp;quot;∀x. ¬(Q x)&amp;quot; by (rule allI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_2b: &lt;br /&gt;
  assumes 1: &amp;quot;∀x. (P x ⟶ ¬(Q x))&amp;quot; and&lt;br /&gt;
          2: &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;∀x. ¬(Q x)&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix a&lt;br /&gt;
  have 3: &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using 1 by (rule allE)&lt;br /&gt;
  have 4: &amp;quot;P a&amp;quot; using 2 by (rule allE)&lt;br /&gt;
  show 5: &amp;quot;¬(Q a)&amp;quot; using 3 4 by (rule mp) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2c: &lt;br /&gt;
  assumes &amp;quot;∀x. (P x ⟶ ¬(Q x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;∀x. ¬(Q x)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using assms(2) ..&lt;br /&gt;
  have &amp;quot;P a ⟶ ¬(Q a)&amp;quot; using assms(1) ..&lt;br /&gt;
  thus &amp;quot;¬(Q a)&amp;quot; using `P a` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_2d: &lt;br /&gt;
  assumes &amp;quot;∀x. (P x ⟶ ¬(Q x))&amp;quot;&lt;br /&gt;
          &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. ¬(Q x)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Reglas del cuantificador existencial *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Las reglas del cuantificador existencial son&lt;br /&gt;
  · exI:     P a ⟹ ∃x. P x&lt;br /&gt;
  · exE:     ⟦∃x. P x; ⋀x. P x ⟹ Q⟧ ⟹ Q&lt;br /&gt;
&lt;br /&gt;
  En la regla exE la nueva variable se introduce mediante la declaración &lt;br /&gt;
  &amp;quot;obtain ... where ... by (rule exE)&amp;quot; &lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo  (p. 12). Demostrar que&lt;br /&gt;
     ∀x. P x ⊢ ∃x. P x&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3a:&lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using assms by (rule allE)&lt;br /&gt;
  thus &amp;quot;∃x. P x&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3b:&lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using assms ..&lt;br /&gt;
  thus &amp;quot;∃x. P x&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada se puede simplificar&amp;quot;&lt;br /&gt;
lemma ejemplo_3c:&lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof (rule exI)&lt;br /&gt;
  fix a&lt;br /&gt;
  show &amp;quot;P a&amp;quot; using assms ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada se puede simplificar aún más&amp;quot;&lt;br /&gt;
lemma ejemplo_3d:&lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix a&lt;br /&gt;
  show &amp;quot;P a&amp;quot; using assms ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_3e:&lt;br /&gt;
  assumes &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 4 (p. 13). Demostrar&lt;br /&gt;
     ∀x. (P x ⟶ Q x), ∃x. P x ⊢ ∃x. Q x&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4a:&lt;br /&gt;
  assumes 1: &amp;quot;∀x. (P x ⟶ Q x)&amp;quot; and&lt;br /&gt;
          2: &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;∃x. Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;P a&amp;quot; using 2 by (rule exE)&lt;br /&gt;
  have 4: &amp;quot;P a ⟶ Q a&amp;quot; using 1 by (rule allE)&lt;br /&gt;
  have 5: &amp;quot;Q a&amp;quot; using 4 3 by (rule mp)&lt;br /&gt;
  thus 6: &amp;quot;∃x. Q x&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4b:&lt;br /&gt;
  assumes &amp;quot;∀x. (P x ⟶ Q x)&amp;quot;&lt;br /&gt;
          &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;∃x. Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where &amp;quot;P a&amp;quot; using assms(2) ..&lt;br /&gt;
  have &amp;quot;P a ⟶ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot; using `P a` ..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_4c:&lt;br /&gt;
  assumes &amp;quot;∀x. (P x ⟶ Q x)&amp;quot;&lt;br /&gt;
          &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;∃x. Q x&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Demostración de equivalencias *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 5.1 (p. 15). Demostrar&lt;br /&gt;
     ¬∀x. P x  ⊢ ∃x. ¬(P x) *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_1a:&lt;br /&gt;
  assumes &amp;quot;¬(∀x. P(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬P(x)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume &amp;quot;¬(∃x. ¬P(x))&amp;quot;&lt;br /&gt;
  have &amp;quot;∀x. P(x)&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix a&lt;br /&gt;
    show &amp;quot;P(a)&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬P(x)&amp;quot; by (rule exI)&lt;br /&gt;
      with `¬(∃x. ¬P(x))` show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
  with assms show False by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_1b:&lt;br /&gt;
  assumes &amp;quot;¬(∀x. P(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬P(x)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume &amp;quot;¬(∃x. ¬P(x))&amp;quot;&lt;br /&gt;
  have &amp;quot;∀x. P(x)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    fix a&lt;br /&gt;
    show &amp;quot;P(a)&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬P(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. ¬P(x)&amp;quot; ..&lt;br /&gt;
      with `¬(∃x. ¬P(x))` show False ..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
  with assms show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_1c:&lt;br /&gt;
  assumes &amp;quot;¬(∀x. P(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. ¬P(x)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 5.2 (p. 16). Demostrar&lt;br /&gt;
     ∃x. ¬(P x)  ⊢ ¬∀x. P x *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_2a:&lt;br /&gt;
  assumes &amp;quot;∃x. ¬P(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P(x))&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume &amp;quot;∀x. P(x)&amp;quot;&lt;br /&gt;
  obtain a where &amp;quot;¬P(a)&amp;quot; using assms by (rule exE)&lt;br /&gt;
  have &amp;quot;P(a)&amp;quot; using `∀x. P(x)` by (rule allE)&lt;br /&gt;
  with `¬P(a)` show False by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_2b:&lt;br /&gt;
  assumes &amp;quot;∃x. ¬P(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P(x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;∀x. P(x)&amp;quot;&lt;br /&gt;
  obtain a where &amp;quot;¬P(a)&amp;quot; using assms ..&lt;br /&gt;
  have &amp;quot;P(a)&amp;quot; using `∀x. P(x)` ..&lt;br /&gt;
  with `¬P(a)` show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_2c:&lt;br /&gt;
  assumes &amp;quot;∃x. ¬P(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(∀x. P(x))&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 5.3 (p. 17). Demostrar&lt;br /&gt;
     ⊢ ¬∀x. P x  ⟷ ∃x. ¬(P x) *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_3a:&lt;br /&gt;
  &amp;quot;(¬(∀x. P(x))) ⟷ (∃x. ¬P(x))&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  assume &amp;quot;¬(∀x. P(x))&amp;quot;&lt;br /&gt;
  thus &amp;quot;∃x. ¬P(x)&amp;quot; by (rule ejemplo_5_1a)&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;∃x. ¬P(x)&amp;quot;&lt;br /&gt;
  thus &amp;quot;¬(∀x. P(x))&amp;quot; by (rule ejemplo_5_2a)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_3b:&lt;br /&gt;
  &amp;quot;(¬(∀x. P(x))) ⟷ (∃x. ¬P(x))&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 6.1 (p. 18). Demostrar&lt;br /&gt;
     ∀x. P(x) ∧ Q(x) ⊢  (∀x. P(x)) ∧ (∀x. Q(x)) *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_1a:&lt;br /&gt;
  assumes &amp;quot;∀x. P(x) ∧ Q(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P(x)) ∧ (∀x. Q(x))&amp;quot;&lt;br /&gt;
proof (rule conjI)&lt;br /&gt;
  show &amp;quot;∀x. P(x)&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix a&lt;br /&gt;
    have &amp;quot;P(a) ∧ Q(a)&amp;quot; using assms by (rule allE)&lt;br /&gt;
    thus &amp;quot;P(a)&amp;quot; by (rule conjunct1)&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;∀x. Q(x)&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix a&lt;br /&gt;
    have &amp;quot;P(a) ∧ Q(a)&amp;quot; using assms by (rule allE)&lt;br /&gt;
    thus &amp;quot;Q(a)&amp;quot; by (rule conjunct2)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_1b:&lt;br /&gt;
  assumes &amp;quot;∀x. P(x) ∧ Q(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P(x)) ∧ (∀x. Q(x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;∀x. P(x)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    fix a&lt;br /&gt;
    have &amp;quot;P(a) ∧ Q(a)&amp;quot; using assms ..&lt;br /&gt;
    thus &amp;quot;P(a)&amp;quot; ..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;∀x. Q(x)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    fix a&lt;br /&gt;
    have &amp;quot;P(a) ∧ Q(a)&amp;quot; using assms ..&lt;br /&gt;
    thus &amp;quot;Q(a)&amp;quot; ..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_1c:&lt;br /&gt;
  assumes &amp;quot;∀x. P(x) ∧ Q(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∀x. P(x)) ∧ (∀x. Q(x))&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 6.2 (p. 19). Demostrar&lt;br /&gt;
     (∀x. P(x)) ∧ (∀x. Q(x)) ⊢ ∀x. P(x) ∧ Q(x)  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_2a:&lt;br /&gt;
  assumes &amp;quot;(∀x. P(x)) ∧ (∀x. Q(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P(x) ∧ Q(x)&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;∀x. P(x)&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
  hence &amp;quot;P(a)&amp;quot; by (rule allE)&lt;br /&gt;
  have &amp;quot;∀x. Q(x)&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
  hence &amp;quot;Q(a)&amp;quot; by (rule allE)&lt;br /&gt;
  with `P(a)` show &amp;quot;P(a) ∧ Q(a)&amp;quot; by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_2b:&lt;br /&gt;
  assumes &amp;quot;(∀x. P(x)) ∧ (∀x. Q(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P(x) ∧ Q(x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;∀x. P(x)&amp;quot; using assms ..&lt;br /&gt;
  hence &amp;quot;P(a)&amp;quot; by (rule allE)&lt;br /&gt;
  have &amp;quot;∀x. Q(x)&amp;quot; using assms ..&lt;br /&gt;
  hence &amp;quot;Q(a)&amp;quot; ..&lt;br /&gt;
  with `P(a)` show &amp;quot;P(a) ∧ Q(a)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_2c:&lt;br /&gt;
  assumes &amp;quot;(∀x. P(x)) ∧ (∀x. Q(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P(x) ∧ Q(x)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 6.3 (p. 20). Demostrar&lt;br /&gt;
     ⊢ ∀x. P(x) ∧ Q(x) ⟷ (∀x. P(x)) ∧ (∀x. Q(x)) *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_3a:&lt;br /&gt;
  &amp;quot;(∀x. P(x) ∧ Q(x)) ⟷ ((∀x. P(x)) ∧ (∀x. Q(x)))&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  assume &amp;quot;∀x. P(x) ∧ Q(x)&amp;quot;&lt;br /&gt;
  thus &amp;quot;(∀x. P(x)) ∧ (∀x. Q(x))&amp;quot; by (rule ejemplo_6_1a)&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;(∀x. P(x)) ∧ (∀x. Q(x))&amp;quot;&lt;br /&gt;
  thus &amp;quot;∀x. P(x) ∧ Q(x)&amp;quot; by (rule ejemplo_6_2a)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 7.1 (p. 21). Demostrar&lt;br /&gt;
     (∃x. P(x)) ∨ (∃x. Q(x)) ⊢ ∃x. P(x) ∨ Q(x)  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_1a:&lt;br /&gt;
  assumes &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P(x) ∨ Q(x)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;∃x. P(x)&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;P(a)&amp;quot; by (rule exE)&lt;br /&gt;
  hence &amp;quot;P(a) ∨ Q(a)&amp;quot; by (rule disjI1)&lt;br /&gt;
  thus &amp;quot;∃x. P(x) ∨ Q(x)&amp;quot; by (rule exI)&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;∃x. Q(x)&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;Q(a)&amp;quot; by (rule exE)&lt;br /&gt;
  hence &amp;quot;P(a) ∨ Q(a)&amp;quot; by (rule disjI2)&lt;br /&gt;
  thus &amp;quot;∃x. P(x) ∨ Q(x)&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_1b:&lt;br /&gt;
  assumes &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P(x) ∨ Q(x)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. P(x)&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;P(a)&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;P(a) ∨ Q(a)&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;∃x. P(x) ∨ Q(x)&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;∃x. Q(x)&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;Q(a)&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;P(a) ∨ Q(a)&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;∃x. P(x) ∨ Q(x)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_1c:&lt;br /&gt;
  assumes &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x. P(x) ∨ Q(x)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 7.2 (p. 22). Demostrar&lt;br /&gt;
     ∃x. P(x) ∨ Q(x) ⊢ (∃x. P(x)) ∨ (∃x. Q(x))  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_2a:&lt;br /&gt;
  assumes &amp;quot;∃x. P(x) ∨ Q(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where &amp;quot;P(a) ∨ Q(a)&amp;quot; using assms by (rule exE)&lt;br /&gt;
  thus &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    assume &amp;quot;P(a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P(x)&amp;quot; by (rule exI)&lt;br /&gt;
    thus &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot; by (rule disjI1)&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. Q(x)&amp;quot; by (rule exI)&lt;br /&gt;
    thus &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot; by (rule disjI2)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejercicio_7_2b:&lt;br /&gt;
  assumes &amp;quot;∃x. P(x) ∨ Q(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where &amp;quot;P(a) ∨ Q(a)&amp;quot; using assms ..&lt;br /&gt;
  thus &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume &amp;quot;P(a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. P(x)&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot; ..&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;∃x. Q(x)&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot; ..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejercicio_7_2c:&lt;br /&gt;
  assumes &amp;quot;∃x. P(x) ∨ Q(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 7.3 (p. 23). Demostrar&lt;br /&gt;
     ⊢ ((∃x. P(x)) ∨ (∃x. Q(x))) ⟷ (∃x. P(x) ∨ Q(x))  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_3a:&lt;br /&gt;
  &amp;quot;((∃x. P(x)) ∨ (∃x. Q(x))) ⟷ (∃x. P(x) ∨ Q(x))&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  assume &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot;&lt;br /&gt;
  thus &amp;quot;∃x. P(x) ∨ Q(x)&amp;quot; by (rule ejemplo_7_1a)&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;∃x. P(x) ∨ Q(x)&amp;quot;&lt;br /&gt;
  thus &amp;quot;(∃x. P(x)) ∨ (∃x. Q(x))&amp;quot; by (rule ejemplo_7_2a)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_3b:&lt;br /&gt;
  &amp;quot;((∃x. P(x)) ∨ (∃x. Q(x))) ⟷ (∃x. P(x) ∨ Q(x))&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 8.1 (p. 24). Demostrar&lt;br /&gt;
     ∃x y. P(x,y) ⊢ ∃y x. P(x,y)  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_1a:&lt;br /&gt;
  assumes &amp;quot;∃x y. P(x,y)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃y x. P(x,y)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where &amp;quot;∃y. P(a,y)&amp;quot; using assms by (rule exE)&lt;br /&gt;
  then obtain b where &amp;quot;P(a,b)&amp;quot; by (rule exE)&lt;br /&gt;
  hence &amp;quot;∃x. P(x,b)&amp;quot; by (rule exI)&lt;br /&gt;
  thus &amp;quot;∃y x. P(x,y)&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_1b:&lt;br /&gt;
  assumes &amp;quot;∃x y. P(x,y)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃y x. P(x,y)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where &amp;quot;∃y. P(a,y)&amp;quot; using assms ..&lt;br /&gt;
  then obtain b where &amp;quot;P(a,b)&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;∃x. P(x,b)&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;∃y x. P(x,y)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_1c:&lt;br /&gt;
  assumes &amp;quot;∃x y. P(x,y)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃y x. P(x,y)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 8.2. Demostrar&lt;br /&gt;
     ∃y x. P(x,y) ⊢ ∃x y. P(x,y)  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_2a:&lt;br /&gt;
  assumes &amp;quot;∃y x. P(x,y)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. P(x,y)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain b where &amp;quot;∃x. P(x,b)&amp;quot; using assms by (rule exE)&lt;br /&gt;
  then obtain a where &amp;quot;P(a,b)&amp;quot; by (rule exE)&lt;br /&gt;
  hence &amp;quot;∃y. P(a,y)&amp;quot; by (rule exI)&lt;br /&gt;
  thus &amp;quot;∃x y. P(x,y)&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_2b:&lt;br /&gt;
  assumes &amp;quot;∃y x. P(x,y)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. P(x,y)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain b where &amp;quot;∃x. P(x,b)&amp;quot; using assms ..&lt;br /&gt;
  then obtain a where &amp;quot;P(a,b)&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;∃y. P(a,y)&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;∃x y. P(x,y)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_2c:&lt;br /&gt;
  assumes &amp;quot;∃y x. P(x,y)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∃x y. P(x,y)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 8.3 (p. 25). Demostrar&lt;br /&gt;
     ⊢ (∃x y. P(x,y)) ⟷ (∃y x. P(x,y))  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_3a:&lt;br /&gt;
  &amp;quot;(∃x y. P(x,y)) ⟷ (∃y x. P(x,y))&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  assume &amp;quot;∃x y. P(x,y)&amp;quot;&lt;br /&gt;
  thus &amp;quot;∃y x. P(x,y)&amp;quot; by (rule ejemplo_8_1a)&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;∃y x. P(x,y)&amp;quot;&lt;br /&gt;
  thus &amp;quot;∃x y. P(x,y)&amp;quot; by (rule ejemplo_8_2a)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_3b:&lt;br /&gt;
  &amp;quot;(∃x y. P(x,y)) ⟷ (∃y x. P(x,y))&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Reglas de la igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Las reglas básicas de la igualdad son:&lt;br /&gt;
  · refl:  t = t&lt;br /&gt;
  · subst: ⟦s = t; P s⟧ ⟹ P t&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 9 (p. 27). Demostrar&lt;br /&gt;
     x+1 = 1+x, x+1 &amp;gt; 1 ⟶ x+1 &amp;gt; 0 ⊢ 1+x &amp;gt; 1 ⟶ 1+x &amp;gt; 0&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9a: &lt;br /&gt;
  assumes &amp;quot;x+1 = 1+x&amp;quot; &lt;br /&gt;
          &amp;quot;x+1 &amp;gt; 1 ⟶ x+1 &amp;gt; 0&amp;quot;&lt;br /&gt;
  shows   &amp;quot;1+x &amp;gt; 1 ⟶ 1+x &amp;gt; 0&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;1+x &amp;gt; 1 ⟶ 1+x &amp;gt; 0&amp;quot; using assms by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9b: &lt;br /&gt;
  assumes &amp;quot;x+1 = 1+x&amp;quot; &lt;br /&gt;
          &amp;quot;x+1 &amp;gt; 1 ⟶ x+1 &amp;gt; 0&amp;quot;&lt;br /&gt;
  shows   &amp;quot;1+x &amp;gt; 1 ⟶ 1+x &amp;gt; 0&amp;quot;&lt;br /&gt;
using assms &lt;br /&gt;
by (rule subst)&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_9c: &lt;br /&gt;
  assumes &amp;quot;x+1 = 1+x&amp;quot; &lt;br /&gt;
          &amp;quot;x+1 &amp;gt; 1 ⟶ x+1 &amp;gt; 0&amp;quot;&lt;br /&gt;
  shows   &amp;quot;1+x &amp;gt; 1 ⟶ 1+x &amp;gt; 0&amp;quot;&lt;br /&gt;
using assms &lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 10 (p. 27). Demostrar&lt;br /&gt;
     x = y, y = z ⊢ x = z&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10a:&lt;br /&gt;
  assumes &amp;quot;x = y&amp;quot; &lt;br /&gt;
          &amp;quot;y = z&amp;quot;&lt;br /&gt;
  shows   &amp;quot;x = z&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;x = z&amp;quot; using assms(2,1) by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10b: &lt;br /&gt;
  assumes &amp;quot;x = y&amp;quot; &lt;br /&gt;
          &amp;quot;y = z&amp;quot;&lt;br /&gt;
  shows   &amp;quot;x = z&amp;quot;&lt;br /&gt;
using assms(2,1)&lt;br /&gt;
by (rule subst)&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_10c: &lt;br /&gt;
  assumes &amp;quot;x = y&amp;quot; &lt;br /&gt;
          &amp;quot;y = z&amp;quot;&lt;br /&gt;
  shows   &amp;quot;x = z&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 11 (p. 28). Demostrar&lt;br /&gt;
     s = t ⊢ t = s&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_11a:&lt;br /&gt;
  assumes &amp;quot;s = t&amp;quot;&lt;br /&gt;
  shows   &amp;quot;t = s&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;s = s&amp;quot; by (rule refl)&lt;br /&gt;
  with assms show &amp;quot;t = s&amp;quot; by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemlo_11b:&lt;br /&gt;
  assumes &amp;quot;s = t&amp;quot;&lt;br /&gt;
  shows   &amp;quot;t = s&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_8&amp;diff=328</id>
		<title>Tema 8</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_8&amp;diff=328"/>
		<updated>2013-04-01T15:47:28Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt; header {* Tema 8: Deducción natural en lógica de primer orden *}  theory Tema8 imports Main  begin  text {*   El objetivo de este tema es presentar la ded...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;Isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* Tema 8: Deducción natural en lógica de primer orden *}&lt;br /&gt;
&lt;br /&gt;
theory Tema8&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  El objetivo de este tema es presentar la deducción natural en &lt;br /&gt;
  lógica de primer orden con Isabelle/HOL. La presentación se &lt;br /&gt;
  basa en los ejemplos de tema 8 del curso LMF que se encuentra &lt;br /&gt;
  en http://goo.gl/uJj8d (que a su vez se basa en el libro de &lt;br /&gt;
  Huth y Ryan &amp;quot;Logic in Computer Science&amp;quot; http://goo.gl/qsVpY ). &lt;br /&gt;
&lt;br /&gt;
  La página al lado de cada ejemplo indica la página de las &lt;br /&gt;
  transparencias de LMF donde se encuentra la demostración. *}&lt;br /&gt;
&lt;br /&gt;
section {* Reglas del cuantificador universal *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Las reglas del cuantificador universal son&lt;br /&gt;
  · allE:    \&amp;lt;lbrakk&amp;gt;\&amp;lt;forall&amp;gt;x. P x; P a \&amp;lt;Longrightarrow&amp;gt; R\&amp;lt;rbrakk&amp;gt; \&amp;lt;Longrightarrow&amp;gt; R&lt;br /&gt;
  · allI:    (\&amp;lt;And&amp;gt;x. P x) \&amp;lt;Longrightarrow&amp;gt; \&amp;lt;forall&amp;gt;x. P x&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 1 (p. 10). Demostrar que&lt;br /&gt;
     P(c), \&amp;lt;forall&amp;gt;x. (P(x) \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;Q(x)) \&amp;lt;turnstile&amp;gt; \&amp;lt;not&amp;gt;Q(c)&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_1a: &lt;br /&gt;
  assumes 1: &amp;quot;P(c)&amp;quot; and&lt;br /&gt;
          2: &amp;quot;\&amp;lt;forall&amp;gt;x. (P(x) \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;Q(x))&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;not&amp;gt;Q(c)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;P(c) \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;Q(c)&amp;quot; using 2 by (rule allE)&lt;br /&gt;
  show 4: &amp;quot;\&amp;lt;not&amp;gt;Q(c)&amp;quot; using 3 1 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_1b: &lt;br /&gt;
  assumes &amp;quot;P(c)&amp;quot;&lt;br /&gt;
          &amp;quot;\&amp;lt;forall&amp;gt;x. (P(x) \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;Q(x))&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;not&amp;gt;Q(c)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;P(c) \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;Q(c)&amp;quot; using assms(2) ..&lt;br /&gt;
  thus &amp;quot;\&amp;lt;not&amp;gt;Q(c)&amp;quot; using assms(1) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_1c: &lt;br /&gt;
  assumes &amp;quot;P(c)&amp;quot;&lt;br /&gt;
          &amp;quot;\&amp;lt;forall&amp;gt;x. (P(x) \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;Q(x))&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;not&amp;gt;Q(c)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 2 (p. 11). Demostrar que&lt;br /&gt;
     \&amp;lt;forall&amp;gt;x. (P x \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;(Q x)), \&amp;lt;forall&amp;gt;x. P x \&amp;lt;turnstile&amp;gt; \&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;(Q x)&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2a: &lt;br /&gt;
  assumes 1: &amp;quot;\&amp;lt;forall&amp;gt;x. (P x \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;(Q x))&amp;quot; and&lt;br /&gt;
          2: &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;(Q x)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { fix a&lt;br /&gt;
    have 3: &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;(Q a)&amp;quot; using 1 by (rule allE)&lt;br /&gt;
    have 4: &amp;quot;P a&amp;quot; using 2 by (rule allE)&lt;br /&gt;
    have 5: &amp;quot;\&amp;lt;not&amp;gt;(Q a)&amp;quot; using 3 4 by (rule mp) }&lt;br /&gt;
  thus &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;(Q x)&amp;quot; by (rule allI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_2b: &lt;br /&gt;
  assumes 1: &amp;quot;\&amp;lt;forall&amp;gt;x. (P x \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;(Q x))&amp;quot; and&lt;br /&gt;
          2: &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;(Q x)&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix a&lt;br /&gt;
  have 3: &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;(Q a)&amp;quot; using 1 by (rule allE)&lt;br /&gt;
  have 4: &amp;quot;P a&amp;quot; using 2 by (rule allE)&lt;br /&gt;
  show 5: &amp;quot;\&amp;lt;not&amp;gt;(Q a)&amp;quot; using 3 4 by (rule mp) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2c: &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. (P x \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;(Q x))&amp;quot;&lt;br /&gt;
          &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;(Q x)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using assms(2) ..&lt;br /&gt;
  have &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;(Q a)&amp;quot; using assms(1) ..&lt;br /&gt;
  thus &amp;quot;\&amp;lt;not&amp;gt;(Q a)&amp;quot; using `P a` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_2d: &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. (P x \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;(Q x))&amp;quot;&lt;br /&gt;
          &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;(Q x)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Reglas del cuantificador existencial *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Las reglas del cuantificador existencial son&lt;br /&gt;
  · exI:     P a \&amp;lt;Longrightarrow&amp;gt; \&amp;lt;exists&amp;gt;x. P x&lt;br /&gt;
  · exE:     \&amp;lt;lbrakk&amp;gt;\&amp;lt;exists&amp;gt;x. P x; \&amp;lt;And&amp;gt;x. P x \&amp;lt;Longrightarrow&amp;gt; Q\&amp;lt;rbrakk&amp;gt; \&amp;lt;Longrightarrow&amp;gt; Q&lt;br /&gt;
&lt;br /&gt;
  En la regla exE la nueva variable se introduce mediante la declaración &lt;br /&gt;
  &amp;quot;obtain ... where ... by (rule exE)&amp;quot; &lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo  (p. 12). Demostrar que&lt;br /&gt;
     \&amp;lt;forall&amp;gt;x. P x \&amp;lt;turnstile&amp;gt; \&amp;lt;exists&amp;gt;x. P x&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3a:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using assms by (rule allE)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3b:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;P a&amp;quot; using assms ..&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada se puede simplificar&amp;quot;&lt;br /&gt;
lemma ejemplo_3c:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot;&lt;br /&gt;
proof (rule exI)&lt;br /&gt;
  fix a&lt;br /&gt;
  show &amp;quot;P a&amp;quot; using assms ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada se puede simplificar aún más&amp;quot;&lt;br /&gt;
lemma ejemplo_3d:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  fix a&lt;br /&gt;
  show &amp;quot;P a&amp;quot; using assms ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_3e:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 4 (p. 13). Demostrar&lt;br /&gt;
     \&amp;lt;forall&amp;gt;x. (P x \&amp;lt;longrightarrow&amp;gt; Q x), \&amp;lt;exists&amp;gt;x. P x \&amp;lt;turnstile&amp;gt; \&amp;lt;exists&amp;gt;x. Q x&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4a:&lt;br /&gt;
  assumes 1: &amp;quot;\&amp;lt;forall&amp;gt;x. (P x \&amp;lt;longrightarrow&amp;gt; Q x)&amp;quot; and&lt;br /&gt;
          2: &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x. Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 3: &amp;quot;P a&amp;quot; using 2 by (rule exE)&lt;br /&gt;
  have 4: &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot; using 1 by (rule allE)&lt;br /&gt;
  have 5: &amp;quot;Q a&amp;quot; using 4 3 by (rule mp)&lt;br /&gt;
  thus 6: &amp;quot;\&amp;lt;exists&amp;gt;x. Q x&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4b:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. (P x \&amp;lt;longrightarrow&amp;gt; Q x)&amp;quot;&lt;br /&gt;
          &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x. Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where &amp;quot;P a&amp;quot; using assms(2) ..&lt;br /&gt;
  have &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot; using `P a` ..&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. Q x&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_4c:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. (P x \&amp;lt;longrightarrow&amp;gt; Q x)&amp;quot;&lt;br /&gt;
          &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x. Q x&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Demostración de equivalencias *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 5.1 (p. 15). Demostrar&lt;br /&gt;
     \&amp;lt;not&amp;gt;\&amp;lt;forall&amp;gt;x. P x  \&amp;lt;turnstile&amp;gt; \&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;(P x) *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_1a:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. P(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x))&amp;quot;&lt;br /&gt;
  have &amp;quot;\&amp;lt;forall&amp;gt;x. P(x)&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix a&lt;br /&gt;
    show &amp;quot;P(a)&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;\&amp;lt;not&amp;gt;P(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x)&amp;quot; by (rule exI)&lt;br /&gt;
      with `\&amp;lt;not&amp;gt;(\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x))` show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
  with assms show False by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_1b:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. P(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x)&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x))&amp;quot;&lt;br /&gt;
  have &amp;quot;\&amp;lt;forall&amp;gt;x. P(x)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    fix a&lt;br /&gt;
    show &amp;quot;P(a)&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;\&amp;lt;not&amp;gt;P(a)&amp;quot;&lt;br /&gt;
      hence &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x)&amp;quot; ..&lt;br /&gt;
      with `\&amp;lt;not&amp;gt;(\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x))` show False ..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
  with assms show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_1c:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. P(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 5.2 (p. 16). Demostrar&lt;br /&gt;
     \&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;(P x)  \&amp;lt;turnstile&amp;gt; \&amp;lt;not&amp;gt;\&amp;lt;forall&amp;gt;x. P x *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_2a:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. P(x))&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume &amp;quot;\&amp;lt;forall&amp;gt;x. P(x)&amp;quot;&lt;br /&gt;
  obtain a where &amp;quot;\&amp;lt;not&amp;gt;P(a)&amp;quot; using assms by (rule exE)&lt;br /&gt;
  have &amp;quot;P(a)&amp;quot; using `\&amp;lt;forall&amp;gt;x. P(x)` by (rule allE)&lt;br /&gt;
  with `\&amp;lt;not&amp;gt;P(a)` show False by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_2b:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. P(x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;\&amp;lt;forall&amp;gt;x. P(x)&amp;quot;&lt;br /&gt;
  obtain a where &amp;quot;\&amp;lt;not&amp;gt;P(a)&amp;quot; using assms ..&lt;br /&gt;
  have &amp;quot;P(a)&amp;quot; using `\&amp;lt;forall&amp;gt;x. P(x)` ..&lt;br /&gt;
  with `\&amp;lt;not&amp;gt;P(a)` show False ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_2c:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. P(x))&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 5.3 (p. 17). Demostrar&lt;br /&gt;
     \&amp;lt;turnstile&amp;gt; \&amp;lt;not&amp;gt;\&amp;lt;forall&amp;gt;x. P x  \&amp;lt;longleftrightarrow&amp;gt; \&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;(P x) *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_3a:&lt;br /&gt;
  &amp;quot;(\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. P(x))) \&amp;lt;longleftrightarrow&amp;gt; (\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x))&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  assume &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. P(x))&amp;quot;&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x)&amp;quot; by (rule ejemplo_5_1a)&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x)&amp;quot;&lt;br /&gt;
  thus &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. P(x))&amp;quot; by (rule ejemplo_5_2a)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_3b:&lt;br /&gt;
  &amp;quot;(\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. P(x))) \&amp;lt;longleftrightarrow&amp;gt; (\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x))&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 6.1 (p. 18). Demostrar&lt;br /&gt;
     \&amp;lt;forall&amp;gt;x. P(x) \&amp;lt;and&amp;gt; Q(x) \&amp;lt;turnstile&amp;gt;  (\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;and&amp;gt; (\&amp;lt;forall&amp;gt;x. Q(x)) *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_1a:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P(x) \&amp;lt;and&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;and&amp;gt; (\&amp;lt;forall&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
proof (rule conjI)&lt;br /&gt;
  show &amp;quot;\&amp;lt;forall&amp;gt;x. P(x)&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix a&lt;br /&gt;
    have &amp;quot;P(a) \&amp;lt;and&amp;gt; Q(a)&amp;quot; using assms by (rule allE)&lt;br /&gt;
    thus &amp;quot;P(a)&amp;quot; by (rule conjunct1)&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;\&amp;lt;forall&amp;gt;x. Q(x)&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix a&lt;br /&gt;
    have &amp;quot;P(a) \&amp;lt;and&amp;gt; Q(a)&amp;quot; using assms by (rule allE)&lt;br /&gt;
    thus &amp;quot;Q(a)&amp;quot; by (rule conjunct2)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_1b:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P(x) \&amp;lt;and&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;and&amp;gt; (\&amp;lt;forall&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;\&amp;lt;forall&amp;gt;x. P(x)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    fix a&lt;br /&gt;
    have &amp;quot;P(a) \&amp;lt;and&amp;gt; Q(a)&amp;quot; using assms ..&lt;br /&gt;
    thus &amp;quot;P(a)&amp;quot; ..&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;\&amp;lt;forall&amp;gt;x. Q(x)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    fix a&lt;br /&gt;
    have &amp;quot;P(a) \&amp;lt;and&amp;gt; Q(a)&amp;quot; using assms ..&lt;br /&gt;
    thus &amp;quot;Q(a)&amp;quot; ..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_1c:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P(x) \&amp;lt;and&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;and&amp;gt; (\&amp;lt;forall&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 6.2 (p. 19). Demostrar&lt;br /&gt;
     (\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;and&amp;gt; (\&amp;lt;forall&amp;gt;x. Q(x)) \&amp;lt;turnstile&amp;gt; \&amp;lt;forall&amp;gt;x. P(x) \&amp;lt;and&amp;gt; Q(x)  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_2a:&lt;br /&gt;
  assumes &amp;quot;(\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;and&amp;gt; (\&amp;lt;forall&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;forall&amp;gt;x. P(x) \&amp;lt;and&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;\&amp;lt;forall&amp;gt;x. P(x)&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
  hence &amp;quot;P(a)&amp;quot; by (rule allE)&lt;br /&gt;
  have &amp;quot;\&amp;lt;forall&amp;gt;x. Q(x)&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
  hence &amp;quot;Q(a)&amp;quot; by (rule allE)&lt;br /&gt;
  with `P(a)` show &amp;quot;P(a) \&amp;lt;and&amp;gt; Q(a)&amp;quot; by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_2b:&lt;br /&gt;
  assumes &amp;quot;(\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;and&amp;gt; (\&amp;lt;forall&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;forall&amp;gt;x. P(x) \&amp;lt;and&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  have &amp;quot;\&amp;lt;forall&amp;gt;x. P(x)&amp;quot; using assms ..&lt;br /&gt;
  hence &amp;quot;P(a)&amp;quot; by (rule allE)&lt;br /&gt;
  have &amp;quot;\&amp;lt;forall&amp;gt;x. Q(x)&amp;quot; using assms ..&lt;br /&gt;
  hence &amp;quot;Q(a)&amp;quot; ..&lt;br /&gt;
  with `P(a)` show &amp;quot;P(a) \&amp;lt;and&amp;gt; Q(a)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_2c:&lt;br /&gt;
  assumes &amp;quot;(\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;and&amp;gt; (\&amp;lt;forall&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;forall&amp;gt;x. P(x) \&amp;lt;and&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 6.3 (p. 20). Demostrar&lt;br /&gt;
     \&amp;lt;turnstile&amp;gt; \&amp;lt;forall&amp;gt;x. P(x) \&amp;lt;and&amp;gt; Q(x) \&amp;lt;longleftrightarrow&amp;gt; (\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;and&amp;gt; (\&amp;lt;forall&amp;gt;x. Q(x)) *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_3a:&lt;br /&gt;
  &amp;quot;(\&amp;lt;forall&amp;gt;x. P(x) \&amp;lt;and&amp;gt; Q(x)) \&amp;lt;longleftrightarrow&amp;gt; ((\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;and&amp;gt; (\&amp;lt;forall&amp;gt;x. Q(x)))&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  assume &amp;quot;\&amp;lt;forall&amp;gt;x. P(x) \&amp;lt;and&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
  thus &amp;quot;(\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;and&amp;gt; (\&amp;lt;forall&amp;gt;x. Q(x))&amp;quot; by (rule ejemplo_6_1a)&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;(\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;and&amp;gt; (\&amp;lt;forall&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
  thus &amp;quot;\&amp;lt;forall&amp;gt;x. P(x) \&amp;lt;and&amp;gt; Q(x)&amp;quot; by (rule ejemplo_6_2a)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 7.1 (p. 21). Demostrar&lt;br /&gt;
     (\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x)) \&amp;lt;turnstile&amp;gt; \&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_1a:&lt;br /&gt;
  assumes &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;\&amp;lt;exists&amp;gt;x. P(x)&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;P(a)&amp;quot; by (rule exE)&lt;br /&gt;
  hence &amp;quot;P(a) \&amp;lt;or&amp;gt; Q(a)&amp;quot; by (rule disjI1)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)&amp;quot; by (rule exI)&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;\&amp;lt;exists&amp;gt;x. Q(x)&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;Q(a)&amp;quot; by (rule exE)&lt;br /&gt;
  hence &amp;quot;P(a) \&amp;lt;or&amp;gt; Q(a)&amp;quot; by (rule disjI2)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_1b:&lt;br /&gt;
  assumes &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;\&amp;lt;exists&amp;gt;x. P(x)&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;P(a)&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;P(a) \&amp;lt;or&amp;gt; Q(a)&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;\&amp;lt;exists&amp;gt;x. Q(x)&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;Q(a)&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;P(a) \&amp;lt;or&amp;gt; Q(a)&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_1c:&lt;br /&gt;
  assumes &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 7.2 (p. 22). Demostrar&lt;br /&gt;
     \&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x) \&amp;lt;turnstile&amp;gt; (\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_2a:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where &amp;quot;P(a) \&amp;lt;or&amp;gt; Q(a)&amp;quot; using assms by (rule exE)&lt;br /&gt;
  thus &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    assume &amp;quot;P(a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;\&amp;lt;exists&amp;gt;x. P(x)&amp;quot; by (rule exI)&lt;br /&gt;
    thus &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot; by (rule disjI1)&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;\&amp;lt;exists&amp;gt;x. Q(x)&amp;quot; by (rule exI)&lt;br /&gt;
    thus &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot; by (rule disjI2)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejercicio_7_2b:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where &amp;quot;P(a) \&amp;lt;or&amp;gt; Q(a)&amp;quot; using assms ..&lt;br /&gt;
  thus &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume &amp;quot;P(a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;\&amp;lt;exists&amp;gt;x. P(x)&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot; ..&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;Q(a)&amp;quot;&lt;br /&gt;
    hence &amp;quot;\&amp;lt;exists&amp;gt;x. Q(x)&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot; ..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejercicio_7_2c:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 7.3 (p. 23). Demostrar&lt;br /&gt;
     \&amp;lt;turnstile&amp;gt; ((\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))) \&amp;lt;longleftrightarrow&amp;gt; (\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x))  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_3a:&lt;br /&gt;
  &amp;quot;((\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))) \&amp;lt;longleftrightarrow&amp;gt; (\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x))&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  assume &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot;&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)&amp;quot; by (rule ejemplo_7_1a)&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x)&amp;quot;&lt;br /&gt;
  thus &amp;quot;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))&amp;quot; by (rule ejemplo_7_2a)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_3b:&lt;br /&gt;
  &amp;quot;((\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;or&amp;gt; (\&amp;lt;exists&amp;gt;x. Q(x))) \&amp;lt;longleftrightarrow&amp;gt; (\&amp;lt;exists&amp;gt;x. P(x) \&amp;lt;or&amp;gt; Q(x))&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 8.1 (p. 24). Demostrar&lt;br /&gt;
     \&amp;lt;exists&amp;gt;x y. P(x,y) \&amp;lt;turnstile&amp;gt; \&amp;lt;exists&amp;gt;y x. P(x,y)  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_1a:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x y. P(x,y)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;exists&amp;gt;y x. P(x,y)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where &amp;quot;\&amp;lt;exists&amp;gt;y. P(a,y)&amp;quot; using assms by (rule exE)&lt;br /&gt;
  then obtain b where &amp;quot;P(a,b)&amp;quot; by (rule exE)&lt;br /&gt;
  hence &amp;quot;\&amp;lt;exists&amp;gt;x. P(x,b)&amp;quot; by (rule exI)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;y x. P(x,y)&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_1b:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x y. P(x,y)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;exists&amp;gt;y x. P(x,y)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where &amp;quot;\&amp;lt;exists&amp;gt;y. P(a,y)&amp;quot; using assms ..&lt;br /&gt;
  then obtain b where &amp;quot;P(a,b)&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;\&amp;lt;exists&amp;gt;x. P(x,b)&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;y x. P(x,y)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_1c:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x y. P(x,y)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;exists&amp;gt;y x. P(x,y)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 8.2. Demostrar&lt;br /&gt;
     \&amp;lt;exists&amp;gt;y x. P(x,y) \&amp;lt;turnstile&amp;gt; \&amp;lt;exists&amp;gt;x y. P(x,y)  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_2a:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;y x. P(x,y)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;exists&amp;gt;x y. P(x,y)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain b where &amp;quot;\&amp;lt;exists&amp;gt;x. P(x,b)&amp;quot; using assms by (rule exE)&lt;br /&gt;
  then obtain a where &amp;quot;P(a,b)&amp;quot; by (rule exE)&lt;br /&gt;
  hence &amp;quot;\&amp;lt;exists&amp;gt;y. P(a,y)&amp;quot; by (rule exI)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x y. P(x,y)&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_2b:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;y x. P(x,y)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;exists&amp;gt;x y. P(x,y)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain b where &amp;quot;\&amp;lt;exists&amp;gt;x. P(x,b)&amp;quot; using assms ..&lt;br /&gt;
  then obtain a where &amp;quot;P(a,b)&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;\&amp;lt;exists&amp;gt;y. P(a,y)&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x y. P(x,y)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_2c:&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;y x. P(x,y)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;exists&amp;gt;x y. P(x,y)&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 8.3 (p. 25). Demostrar&lt;br /&gt;
     \&amp;lt;turnstile&amp;gt; (\&amp;lt;exists&amp;gt;x y. P(x,y)) \&amp;lt;longleftrightarrow&amp;gt; (\&amp;lt;exists&amp;gt;y x. P(x,y))  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_3a:&lt;br /&gt;
  &amp;quot;(\&amp;lt;exists&amp;gt;x y. P(x,y)) \&amp;lt;longleftrightarrow&amp;gt; (\&amp;lt;exists&amp;gt;y x. P(x,y))&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  assume &amp;quot;\&amp;lt;exists&amp;gt;x y. P(x,y)&amp;quot;&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;y x. P(x,y)&amp;quot; by (rule ejemplo_8_1a)&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;\&amp;lt;exists&amp;gt;y x. P(x,y)&amp;quot;&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x y. P(x,y)&amp;quot; by (rule ejemplo_8_2a)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_3b:&lt;br /&gt;
  &amp;quot;(\&amp;lt;exists&amp;gt;x y. P(x,y)) \&amp;lt;longleftrightarrow&amp;gt; (\&amp;lt;exists&amp;gt;y x. P(x,y))&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Reglas de la igualdad *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Las reglas básicas de la igualdad son:&lt;br /&gt;
  · refl:  t = t&lt;br /&gt;
  · subst: \&amp;lt;lbrakk&amp;gt;s = t; P s\&amp;lt;rbrakk&amp;gt; \&amp;lt;Longrightarrow&amp;gt; P t&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 9 (p. 27). Demostrar&lt;br /&gt;
     x+1 = 1+x, x+1 &amp;gt; 1 \&amp;lt;longrightarrow&amp;gt; x+1 &amp;gt; 0 \&amp;lt;turnstile&amp;gt; 1+x &amp;gt; 1 \&amp;lt;longrightarrow&amp;gt; 1+x &amp;gt; 0&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9a: &lt;br /&gt;
  assumes &amp;quot;x+1 = 1+x&amp;quot; &lt;br /&gt;
          &amp;quot;x+1 &amp;gt; 1 \&amp;lt;longrightarrow&amp;gt; x+1 &amp;gt; 0&amp;quot;&lt;br /&gt;
  shows   &amp;quot;1+x &amp;gt; 1 \&amp;lt;longrightarrow&amp;gt; 1+x &amp;gt; 0&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;1+x &amp;gt; 1 \&amp;lt;longrightarrow&amp;gt; 1+x &amp;gt; 0&amp;quot; using assms by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9b: &lt;br /&gt;
  assumes &amp;quot;x+1 = 1+x&amp;quot; &lt;br /&gt;
          &amp;quot;x+1 &amp;gt; 1 \&amp;lt;longrightarrow&amp;gt; x+1 &amp;gt; 0&amp;quot;&lt;br /&gt;
  shows   &amp;quot;1+x &amp;gt; 1 \&amp;lt;longrightarrow&amp;gt; 1+x &amp;gt; 0&amp;quot;&lt;br /&gt;
using assms &lt;br /&gt;
by (rule subst)&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_9c: &lt;br /&gt;
  assumes &amp;quot;x+1 = 1+x&amp;quot; &lt;br /&gt;
          &amp;quot;x+1 &amp;gt; 1 \&amp;lt;longrightarrow&amp;gt; x+1 &amp;gt; 0&amp;quot;&lt;br /&gt;
  shows   &amp;quot;1+x &amp;gt; 1 \&amp;lt;longrightarrow&amp;gt; 1+x &amp;gt; 0&amp;quot;&lt;br /&gt;
using assms &lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 10 (p. 27). Demostrar&lt;br /&gt;
     x = y, y = z \&amp;lt;turnstile&amp;gt; x = z&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10a:&lt;br /&gt;
  assumes &amp;quot;x = y&amp;quot; &lt;br /&gt;
          &amp;quot;y = z&amp;quot;&lt;br /&gt;
  shows   &amp;quot;x = z&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;x = z&amp;quot; using assms(2,1) by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10b: &lt;br /&gt;
  assumes &amp;quot;x = y&amp;quot; &lt;br /&gt;
          &amp;quot;y = z&amp;quot;&lt;br /&gt;
  shows   &amp;quot;x = z&amp;quot;&lt;br /&gt;
using assms(2,1)&lt;br /&gt;
by (rule subst)&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_10c: &lt;br /&gt;
  assumes &amp;quot;x = y&amp;quot; &lt;br /&gt;
          &amp;quot;y = z&amp;quot;&lt;br /&gt;
  shows   &amp;quot;x = z&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 11 (p. 28). Demostrar&lt;br /&gt;
     s = t \&amp;lt;turnstile&amp;gt; t = s&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_11a:&lt;br /&gt;
  assumes &amp;quot;s = t&amp;quot;&lt;br /&gt;
  shows   &amp;quot;t = s&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;s = s&amp;quot; by (rule refl)&lt;br /&gt;
  with assms show &amp;quot;t = s&amp;quot; by (rule subst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemlo_11b:&lt;br /&gt;
  assumes &amp;quot;s = t&amp;quot;&lt;br /&gt;
  shows   &amp;quot;t = s&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=327</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=327"/>
		<updated>2013-04-01T15:46:20Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Teorías Isabelle/HOL de los temas de deducción natural */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL de los temas de deducción natural ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural en lógica proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 8&amp;#039;&amp;#039;&amp;#039;: [[Tema 8 | Deducción natural en lógica de primer orden con Isabelle/HOL]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=260</id>
		<title>Relación 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_6&amp;diff=260"/>
		<updated>2013-03-19T05:50:04Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt; text {*   ---------------------------------------------------------------------    El objetivo de esta relación es formalizar en lógica de primer orden   ...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_6&amp;diff=259</id>
		<title>Rel 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_6&amp;diff=259"/>
		<updated>2013-03-19T05:49:52Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Protegió «Rel 6» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_6&amp;diff=258</id>
		<title>Rel 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_6&amp;diff=258"/>
		<updated>2013-03-19T05:49:33Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_6&amp;diff=257</id>
		<title>Rel 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_6&amp;diff=257"/>
		<updated>2013-03-19T05:49:01Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación. *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma no_ex: &amp;quot;¬(∃x. P(x)) ⟹ ∀x. ¬P(x)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma no_para_todo: &amp;quot;¬(∀x. P(x)) ⟹ ∃x. ¬P(x)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_6&amp;diff=256</id>
		<title>Rel 6</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_6&amp;diff=256"/>
		<updated>2013-03-19T05:47:23Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt; text {*   ---------------------------------------------------------------------    El objetivo de esta relación es formalizar en lógica de primer orden   ...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es formalizar en lógica de primer orden&lt;br /&gt;
  argumentos expresados en lenguaje natural.&lt;br /&gt;
&lt;br /&gt;
  Antes de escribir la soluciones, comprobar con APLI2 la corrección de la&lt;br /&gt;
  formalización. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación. *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P \&amp;lt;Longrightarrow&amp;gt; \&amp;lt;not&amp;gt;\&amp;lt;not&amp;gt; P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;\&amp;lt;lbrakk&amp;gt;F \&amp;lt;longrightarrow&amp;gt; G; \&amp;lt;not&amp;gt;G\&amp;lt;rbrakk&amp;gt; \&amp;lt;Longrightarrow&amp;gt; \&amp;lt;not&amp;gt;F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma no_ex: &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;exists&amp;gt;x. P(x)) \&amp;lt;Longrightarrow&amp;gt; \&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;P(x)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma no_para_todo: &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. P(x)) \&amp;lt;Longrightarrow&amp;gt; \&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;P(x)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar el siguiente argumento &lt;br /&gt;
     Sócrates es un hombre. &lt;br /&gt;
     Los hombres son mortales. &lt;br /&gt;
     Luego, Sócrates es mortal.&lt;br /&gt;
  Usar s    para Sócrates&lt;br /&gt;
       H(x) para x es un hombre          &lt;br /&gt;
       M(x) para x es mortal&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar el siguiente argumento&lt;br /&gt;
     Hay estudiantes inteligentes y hay estudiantes trabajadores. Por&lt;br /&gt;
     tanto, hay estudiantes inteligentes y trabajadores.&lt;br /&gt;
  Usar I(x) para x es inteligente&lt;br /&gt;
       T(x) para x es trabajador&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los participantes son vencedores. Hay como máximo un&lt;br /&gt;
     vencedor. Hay como máximo un participante. Por lo tanto, hay&lt;br /&gt;
     exactamente un participante. &lt;br /&gt;
  Usar P(x) para x es un participante&lt;br /&gt;
       V(x) para x es un vencedor&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar el siguiente argumento&lt;br /&gt;
     Todo aquel que entre en el país y no sea un VIP será cacheado por&lt;br /&gt;
     un aduanero. Hay un contrabandista que entra en el país y que solo&lt;br /&gt;
     podrá ser cacheado por contrabandistas. Ningún contrabandista es un&lt;br /&gt;
     VIP. Por tanto, algún aduanero es contrabandista.&lt;br /&gt;
  Usar A(x)    para x es aduanero&lt;br /&gt;
       Ca(x,y) para x cachea a y&lt;br /&gt;
       Co(x)   para x es contrabandista&lt;br /&gt;
       E(x)    para x entra en el pais&lt;br /&gt;
       V(x)    para x es un VIP&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar el siguiente argumento&lt;br /&gt;
     Juan teme a María. Pedro es temido por Juan. Luego, alguien teme a&lt;br /&gt;
     María y a Pedro.&lt;br /&gt;
  Usar j      para Juan  &lt;br /&gt;
       m      para María&lt;br /&gt;
       p      para Pedro&lt;br /&gt;
       T(x,y) para x teme a y&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar el siguiente argumento&lt;br /&gt;
     Los hermanos tienen el mismo padre. Juan es hermano de Luis. Carlos&lt;br /&gt;
     es padre de Luis. Por tanto, Carlos es padre de Juan.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       P(x,y) para x es padre de y&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar el siguiente argumento&lt;br /&gt;
     La existencia de algún canal de TV pública, supone un acicate para&lt;br /&gt;
     cualquier canal de TV privada; el que un canal de TV tenga un&lt;br /&gt;
     acicate, supone una gran satisfacción para cualquiera de sus&lt;br /&gt;
     directivos; en Madrid hay varios canales públicos de TV; TV5 es un&lt;br /&gt;
     canal de TV privada; por tanto, todos los directivos de TV5 están&lt;br /&gt;
     satisfechos. &lt;br /&gt;
  Usar Pu(x)  para x es un canal de TV pública&lt;br /&gt;
       Pr(x)  para x es un canal de TV privada&lt;br /&gt;
       A(x)   para x posee un acicate&lt;br /&gt;
       D(x,y) para x es un directivo del canal y&lt;br /&gt;
       S(x)   para x está satisfecho &lt;br /&gt;
       t      para TV5&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar el siguiente argumento&lt;br /&gt;
     Quien intente entrar en un país y no tenga pasaporte, encontrará&lt;br /&gt;
     algún aduanero que le impida el paso. A algunas personas&lt;br /&gt;
     motorizadas que intentan entrar en un país le impiden el paso&lt;br /&gt;
     únicamente personas motorizadas. Ninguna persona motorizada tiene&lt;br /&gt;
     pasaporte. Por tanto, ciertos aduaneros están motorizados.&lt;br /&gt;
  Usar E(x)   para x entra en un país&lt;br /&gt;
       P(x)   para x tiene pasaporte&lt;br /&gt;
       A(x)   para x es aduanero&lt;br /&gt;
       I(x,y) para x impide el paso a y&lt;br /&gt;
       M(x)   para x está motorizada&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar el siguiente argumento&lt;br /&gt;
     Los aficionados al fútbol aplauden a cualquier futbolista&lt;br /&gt;
     extranjero. Juanito no aplaude a futbolistas extranjeros. Por&lt;br /&gt;
     tanto, si hay algún futbolista extranjero nacionalizado español,&lt;br /&gt;
     Juanito no es aficionado al fútbol.&lt;br /&gt;
  Usar Af(x)   para x es aficicionado al fútbol&lt;br /&gt;
       Ap(x,y) para x aplaude a y&lt;br /&gt;
       E(x)    para x es un futbolista extranjero&lt;br /&gt;
       N(x)    para x es un futbolista nacionalizado español&lt;br /&gt;
       j       para Juanito&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún aristócrata debe ser condenado a galeras a menos que sus&lt;br /&gt;
     crímenes sean vergonzosos y lleve una vida licenciosa. En la ciudad&lt;br /&gt;
     hay aristócratas que han cometido crímenes vergonzosos aunque su&lt;br /&gt;
     forma de vida no sea licenciosa. Por tanto, hay algún aristócrata&lt;br /&gt;
     que no está condenado a galeras. &lt;br /&gt;
  Usar A(x)  para x es aristócrata&lt;br /&gt;
       G(x)  para x está condenado a galeras&lt;br /&gt;
       L(x)  para x lleva una vida licenciosa&lt;br /&gt;
       V(x)  para x ha cometido crímenes vergonzoso&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar el siguiente argumento&lt;br /&gt;
     Todo individuo que esté conforme con el contenido de cualquier&lt;br /&gt;
     acuerdo internacional lo apoya o se inhibe en absoluto de asuntos&lt;br /&gt;
     políticos. Cualquiera que se inhiba de los asuntos políticos, no&lt;br /&gt;
     participará en el próximo referéndum. Todo español, está conforme&lt;br /&gt;
     con el acuerdo internacional de Maastricht, al que sin embargo no&lt;br /&gt;
     apoya. Por tanto, cualquier individuo o no es español, o en otro&lt;br /&gt;
     caso, está conforme con el contenido del acuerdo internacional de&lt;br /&gt;
     Maastricht y no participará en el próximo referéndum. &lt;br /&gt;
  Usar C(x,y) para la persona x conforme con el contenido del acuerdo y&lt;br /&gt;
       A(x,y) para la persona x apoya el acuerdo y&lt;br /&gt;
       I(x)   para la persona x se inibe de asuntos políticos&lt;br /&gt;
       R(x)   para la persona x participará en el próximo referéndum&lt;br /&gt;
       E(x)   para la persona x es española&lt;br /&gt;
       m      para el acuerdo de Maastricht&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar el siguiente argumento&lt;br /&gt;
     Toda persona pobre tiene un padre rico. Por tanto, existe una&lt;br /&gt;
     persona rica que tiene un abuelo rico.&lt;br /&gt;
  Usar R(x) para x es rico&lt;br /&gt;
       p(x) para el padre de x&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Formalizar el siguiente argumento&lt;br /&gt;
     Todo deprimido que estima a un submarinista es listo. Cualquiera&lt;br /&gt;
     que se estime a sí mismo es listo. Ningún deprimido se estima a sí&lt;br /&gt;
     mismo. Por tanto, ningún deprimido estima a un submarinista.&lt;br /&gt;
  Usar D(x)   para x está deprimido&lt;br /&gt;
       E(x,y) para x estima a y&lt;br /&gt;
       L(x)   para x es listo&lt;br /&gt;
       S(x)   para x es submarinista&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Formalizar el siguiente argumento&lt;br /&gt;
     Todos los robots obedecen a los amigos del programador jefe.&lt;br /&gt;
     Alvaro es amigo del programador jefe, pero Benito no le&lt;br /&gt;
     obedece. Por tanto, Benito no es un robot.&lt;br /&gt;
  Usar R(x)    para x es un robot&lt;br /&gt;
       Ob(x,y) para x obedece a y&lt;br /&gt;
       A(x)    para x es amigo del programador jefe&lt;br /&gt;
       b       para Benito&lt;br /&gt;
       a       para Alvaro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Formalizar el siguiente argumento&lt;br /&gt;
     En una pecera nadan una serie de peces. Se observa que:&lt;br /&gt;
     * Hay algún pez x que para cualquier pez y, si el pez x no se come&lt;br /&gt;
       al pez y entonces existe un pez z tal que z es un tiburón o bien&lt;br /&gt;
       z protege al pez y. &lt;br /&gt;
     * No hay ningún pez que se coma a todos los demás.&lt;br /&gt;
     * Ningún pez protege a ningún otro.&lt;br /&gt;
     Por tanto, existe algún tiburón en la pecera.&lt;br /&gt;
  Usar C(x,y) para x se come a y &lt;br /&gt;
       P(x,y) para x protege a y&lt;br /&gt;
       T(x)   para x es un tiburón&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Formalizar el siguiente argumento&lt;br /&gt;
     Supongamos conocidos los siguientes hechos acerca del número de&lt;br /&gt;
     aprobados de dos asignaturas A y B: &lt;br /&gt;
     * Si todos los alumnos aprueban la asignatura A, entonces todos&lt;br /&gt;
       aprueban la asignatura B.&lt;br /&gt;
     * Si algún delegado de la clase aprueba A y B, entonces todos los &lt;br /&gt;
       alumnos aprueban A.&lt;br /&gt;
     * Si nadie aprueba B, entonces ningún delegado aprueba A.&lt;br /&gt;
     * Si Manuel no aprueba B, entonces nadie aprueba B.&lt;br /&gt;
     Por tanto, si Manuel es un delegado y aprueba la asignatura A,&lt;br /&gt;
     entonces todos los alumnos aprueban las asignaturas A y B.&lt;br /&gt;
  Usar A(x,y) para x aprueba la asignatura y&lt;br /&gt;
       D(x)   para x es delegado&lt;br /&gt;
       m      para Manuel&lt;br /&gt;
       a      para la asignatura A&lt;br /&gt;
       b      para la asignatura B&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Formalizar el siguiente argumento&lt;br /&gt;
     En cierto país oriental se ha celebrado la fase final del&lt;br /&gt;
     campeonato mundial de fútbol. Cierto diario deportivo ha publicado&lt;br /&gt;
     las siguientes estadísticas de tan magno acontecimiento: &lt;br /&gt;
     * A todos los porteros que no vistieron camiseta negra les marcó un&lt;br /&gt;
       gol algún delantero europeo.  &lt;br /&gt;
     * Algún portero jugó con botas blancas y sólo le marcaron goles&lt;br /&gt;
       jugadores con botas blancas.  &lt;br /&gt;
     * Ningún portero se marcó un gol a sí mismo. &lt;br /&gt;
     * Ningún jugador con botas blancas vistió camiseta negra. &lt;br /&gt;
     Por tanto, algún delantero europeo jugó con botas blancas.&lt;br /&gt;
  Usar P(x)   para x es portero&lt;br /&gt;
       D(x)   para x es delantero europeo &lt;br /&gt;
       N(x)   para x viste camiseta negra&lt;br /&gt;
       B(x)   para x juega con botas blancas &lt;br /&gt;
       M(x,y) para x marcó un gol a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Formalizar el siguiente argumento&lt;br /&gt;
     Las relaciones de parentesco verifican la siguientes propiedades&lt;br /&gt;
     generales:  &lt;br /&gt;
     * Si x es hermano de y, entonces y es hermano de x. &lt;br /&gt;
     * Todo el mundo es hijo de alguien. &lt;br /&gt;
     * Nadie es hijo del hermano de su padre. &lt;br /&gt;
     * Cualquier padre de una persona es también padre de todos los&lt;br /&gt;
       hermanos de esa persona. &lt;br /&gt;
     * Nadie es hijo ni hermano de sí mismo. &lt;br /&gt;
     Tenemos los siguientes miembros de la familia Peláez: Don Antonio,&lt;br /&gt;
     Don Luis, Antoñito y Manolito y sabemos que Don Antonio y Don Luis&lt;br /&gt;
     son hermanos, Antoñito y Manolito son hermanos, y Antoñito es hijo&lt;br /&gt;
     de Don Antonio. Por tanto, Don Luis no es el padre de Manolito.&lt;br /&gt;
  Usar A       para Don Antonio&lt;br /&gt;
       He(x,y) para x es hermano de y &lt;br /&gt;
       Hi(x,y) para x es hijo de y  &lt;br /&gt;
       L       para Don Luis&lt;br /&gt;
       a       para Antoñito&lt;br /&gt;
       m       para Manolito&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. [Problema del apisonador de Schubert (en inglés, &lt;br /&gt;
  &amp;quot;Schubert’s steamroller&amp;quot;)] Formalizar el siguiente argumento &lt;br /&gt;
     Si uno de los miembros del club afeita a algún otro (incluido a&lt;br /&gt;
     sí mismo), entonces todos los miembros del club lo han afeitado&lt;br /&gt;
     a él (aunque no necesariamente al mismo tiempo). Guido, Lorenzo,&lt;br /&gt;
     Petruccio y Cesare pertenecen al club de barberos. Guido ha&lt;br /&gt;
     afeitado a Cesare. Por tanto, Petruccio ha afeitado a Lorenzo.&lt;br /&gt;
  Usar g      para Guido&lt;br /&gt;
       l      para Lorenzo&lt;br /&gt;
       p      para Petruccio&lt;br /&gt;
       c      para Cesare&lt;br /&gt;
       B(x)   para x es un miembro del club de barberos&lt;br /&gt;
       A(x,y) para x ha afeitado a y&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Formalizar el siguiente argumento&lt;br /&gt;
     Carlos afeita a todos los habitantes de Las Chinas que no se&lt;br /&gt;
     afeitan a sí mismo y sólo a ellos. Carlos es un habitante de las&lt;br /&gt;
     Chinas. Por consiguiente, Carlos no afeita a nadie.&lt;br /&gt;
  Usar A(x,y) para x afeita a y&lt;br /&gt;
       C(x)   para x es un habitante de Las Chinas&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Formalizar el siguiente argumento&lt;br /&gt;
     Quien desprecia a todos los fanáticos desprecia también a todos los&lt;br /&gt;
     políticos. Alguien no desprecia a un determinado político. Por&lt;br /&gt;
     consiguiente, hay un fanático al que no todo el mundo desprecia.&lt;br /&gt;
   Usar D(x,y) para x desprecia a y&lt;br /&gt;
        F(x)   para x es fanático&lt;br /&gt;
        P(x)   para x es político&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Formalizar el siguiente argumento&lt;br /&gt;
     El hombre puro ama todo lo que es puro. Por tanto, el hombre puro&lt;br /&gt;
     se ama a sí mismo.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       H(x)   para x es un hombre&lt;br /&gt;
       P(x)   para x es puro&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Formalizar el siguiente argumento&lt;br /&gt;
     Ningún socio del club está en deuda con el tesorero del club. Si&lt;br /&gt;
     un socio del club no paga su cuota está en deuda con el tesorero&lt;br /&gt;
     del club. Por tanto, si el tesorero del club es socio del club,&lt;br /&gt;
     entonces paga su cuota. &lt;br /&gt;
  Usar P(x) para x es socio del club&lt;br /&gt;
       Q(x) para x paga su cuota&lt;br /&gt;
       R(x) para x está en deuda con el tesorero&lt;br /&gt;
       a    para el tesorero del club&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Formalizar el siguiente argumento&lt;br /&gt;
     1. Los lobos, zorros, pájaros, orugas y caracoles son animales y&lt;br /&gt;
        existen algunos ejemplares de estos animales. &lt;br /&gt;
     2. También hay algunas semillas y las semillas son plantas. &lt;br /&gt;
     3. A todo animal le gusta o bien comer todo tipo de plantas o bien&lt;br /&gt;
        le gusta comerse a todos los animales más pequeños que él mismo&lt;br /&gt;
        que gustan de comer algunas plantas. &lt;br /&gt;
     4. Las orugas y los caracoles son mucho más pequeños que los&lt;br /&gt;
        pájaros, que son mucho más pequeños que los zorros que a su vez&lt;br /&gt;
        son mucho más pequeños que los lobos. &lt;br /&gt;
     5. A los lobos no les gusta comer ni zorros ni semillas, mientras&lt;br /&gt;
        que a los pájaros les gusta comer orugas pero no caracoles. &lt;br /&gt;
     6. Las orugas y los caracoles gustan de comer algunas plantas. &lt;br /&gt;
     7. Luego, existe un animal al que le gusta comerse un animal al que&lt;br /&gt;
        le gusta comer semillas.  &lt;br /&gt;
  Usar A(x)    para x es un animal&lt;br /&gt;
       Ca(x)   para x es un caracol&lt;br /&gt;
       Co(x,y) para x le gusta comerse a y&lt;br /&gt;
       L(x)    para x es un lobo&lt;br /&gt;
       M(x,y)  para x es más pequeño que y&lt;br /&gt;
       Or(x)   para x es una oruga&lt;br /&gt;
       Pa(x)   para x es un pájaro&lt;br /&gt;
       Pl(x)   para x es una planta&lt;br /&gt;
       S(x)    para x es una semilla&lt;br /&gt;
       Z(x)    para x es un zorro&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Formalizar el siguiente argumento &lt;br /&gt;
     Rosa ama a Curro. Paco no simpatiza con Ana. Quien no simpatiza con&lt;br /&gt;
     Ana ama a Rosa. Si una persona ama a otra, la segunda ama a la&lt;br /&gt;
     primera. Hay como máximo una persona que ama a Rosa. Por tanto,&lt;br /&gt;
     Paco es Curro. &lt;br /&gt;
  Usar A(x,y) para x ama a y &lt;br /&gt;
       S(x,y) para x simpatiza con y &lt;br /&gt;
       a      para Ana&lt;br /&gt;
       c      para Curro&lt;br /&gt;
       p      para Paco &lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Formalizar el siguiente argumento &lt;br /&gt;
     Sólo hay un sofista que enseña gratuitamente, y éste es&lt;br /&gt;
     Sócrates. Sócrates argumenta mejor que ningún otro sofista. Platón&lt;br /&gt;
     argumenta mejor que algún sofista que enseña gratuitamente. Si una&lt;br /&gt;
     persona argumenta mejor que otra segunda, entonces la segunda no&lt;br /&gt;
     argumenta mejor que la primera. Por consiguiente, Platón no es un&lt;br /&gt;
     sofista. &lt;br /&gt;
  Usar G(x)   para x enseña gratuitamente&lt;br /&gt;
       M(x,y) para x argumenta mejor que y&lt;br /&gt;
       S(x)   para x es un sofista&lt;br /&gt;
       p      para Platón&lt;br /&gt;
       s      para Sócrates&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los filósofos se han preguntado qué es la filosofía. Los que&lt;br /&gt;
     se preguntan qué es la filosofía se vuelven locos. Nietzsche es&lt;br /&gt;
     filósofo. El maestro de Nietzsche no acabó loco. Por tanto,&lt;br /&gt;
     Nietzsche y su maestro son diferentes personas. &lt;br /&gt;
  Usar F(x) para x es filósofo&lt;br /&gt;
       L(x) para x se vuelve loco&lt;br /&gt;
       P(x) para x se ha preguntado qué es la filosofía.&lt;br /&gt;
       m    para el maestro de Nietzsche&lt;br /&gt;
       n    para Nietzsche&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Formalizar el siguiente argumento &lt;br /&gt;
     Los padres son mayores que los hijos. Juan es el padre de Luis. Por&lt;br /&gt;
     tanto, Juan es mayor que Luis.&lt;br /&gt;
  Usar M(x,y) para x es mayor que y&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Formalizar el siguiente argumento &lt;br /&gt;
     El esposo de la hermana de Toni es Roberto. La hermana de Toni es&lt;br /&gt;
     María. Por tanto, el esposo de María es Roberto. &lt;br /&gt;
  Usar e(x) para el esposo de x&lt;br /&gt;
       h    para la hermana de Toni&lt;br /&gt;
       m    para María&lt;br /&gt;
       r    para Roberto&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Formalizar el siguiente argumento &lt;br /&gt;
     Luis y Jaime tienen el mismo padre. La madre de Rosa es&lt;br /&gt;
     Eva. Eva ama a Carlos. Carlos es el padre de Jaime. Por tanto,&lt;br /&gt;
     la madre de Rosa ama al padre de Luis.&lt;br /&gt;
  Usar A(x,y) para x ama a y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       c      para Carlos&lt;br /&gt;
       e      para Eva&lt;br /&gt;
       j      para Jaime&lt;br /&gt;
       l      para Luis&lt;br /&gt;
       r      para Rosa&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Formalizar el siguiente argumento &lt;br /&gt;
     Si dos personas son hermanos, entonces tienen la misma madre y el&lt;br /&gt;
     mismo padre. Juan es hermano de Luis. Por tanto, la madre del padre&lt;br /&gt;
     de Juan es la madre del padre de Luis.&lt;br /&gt;
  Usar H(x,y) para x es hermano de y&lt;br /&gt;
       m(x)   para la madre de x&lt;br /&gt;
       p(x)   para el padre de x&lt;br /&gt;
       j      para Juan&lt;br /&gt;
       l      para Luis&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Formalizar el siguiente argumento &lt;br /&gt;
     Todos los miembros del claustro son asturianos. El secretario forma&lt;br /&gt;
     parte del claustro. El señor Martínez es el secretario. Por tanto,&lt;br /&gt;
     el señor Martínez es asturiano.&lt;br /&gt;
  Usar C(x) para x es miembro del claustro&lt;br /&gt;
       A(x) para x es asturiano&lt;br /&gt;
       s    para el secretario&lt;br /&gt;
       m    para el señor Martínez&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Formalizar el siguiente argumento &lt;br /&gt;
     Eduardo pudo haber visto al asesino. Antonio fue el primer testigo&lt;br /&gt;
     de la defensa. O Eduardo estaba en clase o Antonio dio falso&lt;br /&gt;
     testimonio. Nadie en clase pudo haber visto al asesino. Luego, el&lt;br /&gt;
     primer testigo de la defensa dio falso testimonio. &lt;br /&gt;
  Usar C(x) para x estaba en clase&lt;br /&gt;
       F(x) para x dio falso testimonio&lt;br /&gt;
       V(x) para x pudo haber visto al asesino&lt;br /&gt;
       a    para Antonio&lt;br /&gt;
       e    para Eduardo&lt;br /&gt;
       p    para el primer testigo de la defensa&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Formalizar el siguiente argumento &lt;br /&gt;
     La luna hoy es redonda. La luna de hace dos semanas tenía forma de&lt;br /&gt;
     cuarto creciente. Luna no hay más que una, es decir, siempre es la&lt;br /&gt;
     misma. Luego existe algo que es a la vez redondo y con forma de&lt;br /&gt;
     cuarto creciente. &lt;br /&gt;
  Usar L(x) para la luna del momento x&lt;br /&gt;
       R(x) para x es redonda&lt;br /&gt;
       C(x) para x tiene forma de cuarto creciente&lt;br /&gt;
       h    para hoy&lt;br /&gt;
       d    para hace dos semanas&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Formalizar el siguiente argumento &lt;br /&gt;
     Juana sólo tiene un marido. Juana está casada con Tomás. Tomás es&lt;br /&gt;
     delgado y Guillermo no. Luego, Juana no está casada con Guillermo. &lt;br /&gt;
  Usar D(x)   para x es delgado&lt;br /&gt;
       C(x,y) para x está casada con y&lt;br /&gt;
       g      para Guillermo&lt;br /&gt;
       j      para Juana&lt;br /&gt;
       t      para Tomás&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Formalizar el siguiente argumento &lt;br /&gt;
     Sultán no es Chitón. Sultán no obtendrá un plátano a menos que&lt;br /&gt;
     pueda resolver cualquier problema. Si el chimpancé Chitón trabaja&lt;br /&gt;
     más que Sultán resolverá problemas que Sultán no puede resolver. &lt;br /&gt;
     Todos los chimpancés distintos de Sultán trabajan más que Sultán. &lt;br /&gt;
     Por consiguiente, Sultán no obtendrá un plátano.&lt;br /&gt;
  Usar Pl(x)  para x obtiene el plátano&lt;br /&gt;
       Pr(x)  para x es un problema&lt;br /&gt;
       R(x,y) para x resuelve y&lt;br /&gt;
       T(x,y) para x trabaja más que y&lt;br /&gt;
       c      para Chitón&lt;br /&gt;
       s      para Sultán&lt;br /&gt;
   ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_5&amp;diff=255</id>
		<title>Relación 5</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_5&amp;diff=255"/>
		<updated>2013-03-19T05:31:44Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt; header {* R5: Eliminación de conectivas *}  theory R5 imports Main  begin  text {*   --------------------------------------------------------------------- ...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R5: Eliminación de conectivas *}&lt;br /&gt;
&lt;br /&gt;
theory R5&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta es relación es demostrar cómo a partir de las&lt;br /&gt;
  conectivas False, ∧ y ⟶ pueden definirse las restantes.&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir ⟷ usando ∧ y ⟶; es decir, sustituir en&lt;br /&gt;
      (A ⟷ B) = indefinida&lt;br /&gt;
  la indefinida por una fórmula que sólo usa las conectivas ∧ y ⟷ y&lt;br /&gt;
  demostrar la equivalencia. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Definir ¬ usando ⟶ y False; es decir, sustituir en&lt;br /&gt;
      (¬A) = indefinida&lt;br /&gt;
  la indefinida por una fórmula que sólo usa las conectivas ⟶ y False &lt;br /&gt;
  y demostrar la equivalencia. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Definir ∨ usando ⟶ y False; es decir, sustituir en&lt;br /&gt;
      (A ∨ B) = indefinida&lt;br /&gt;
  la indefinida por una fórmula que sólo usa las conectivas ⟶ y False &lt;br /&gt;
  y demostrar la equivalencia. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Encontrar una fórmula equivalente a &lt;br /&gt;
     (A ∨ (B ∧ C)) ⟷ A&lt;br /&gt;
  que sólo use las conectivas False, ∧ y ⟶ y demostrar la &lt;br /&gt;
  equivalencia.   &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_5&amp;diff=254</id>
		<title>Rel 5</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_5&amp;diff=254"/>
		<updated>2013-03-19T05:31:30Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R5: Eliminación de conectivas *}&lt;br /&gt;
&lt;br /&gt;
theory R5&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta es relación es demostrar cómo a partir de las&lt;br /&gt;
  conectivas False, ∧ y ⟶ pueden definirse las restantes.&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir ⟷ usando ∧ y ⟶; es decir, sustituir en&lt;br /&gt;
      (A ⟷ B) = indefinida&lt;br /&gt;
  la indefinida por una fórmula que sólo usa las conectivas ∧ y ⟷ y&lt;br /&gt;
  demostrar la equivalencia. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Definir ¬ usando ⟶ y False; es decir, sustituir en&lt;br /&gt;
      (¬A) = indefinida&lt;br /&gt;
  la indefinida por una fórmula que sólo usa las conectivas ⟶ y False &lt;br /&gt;
  y demostrar la equivalencia. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Definir ∨ usando ⟶ y False; es decir, sustituir en&lt;br /&gt;
      (A ∨ B) = indefinida&lt;br /&gt;
  la indefinida por una fórmula que sólo usa las conectivas ⟶ y False &lt;br /&gt;
  y demostrar la equivalencia. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Encontrar una fórmula equivalente a &lt;br /&gt;
     (A ∨ (B ∧ C)) ⟷ A&lt;br /&gt;
  que sólo use las conectivas False, ∧ y ⟶ y demostrar la &lt;br /&gt;
  equivalencia.   &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_5&amp;diff=253</id>
		<title>Rel 5</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_5&amp;diff=253"/>
		<updated>2013-03-19T05:30:46Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Protegió «Rel 5» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* T3R3: Eliminación de conectivas *}&lt;br /&gt;
&lt;br /&gt;
theory T3R3&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta es relación es demostrar cómo a partir de las&lt;br /&gt;
  conectivas False, ∧ y ⟶ pueden definirse las restantes.&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir ⟷ usando ∧ y ⟶; es decir, sustituir en&lt;br /&gt;
      (A ⟷ B) = indefinida&lt;br /&gt;
  la indefinida por una fórmula que sólo usa las conectivas ∧ y ⟷ y&lt;br /&gt;
  demostrar la equivalencia. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Definir ¬ usando ⟶ y False; es decir, sustituir en&lt;br /&gt;
      (¬A) = indefinida&lt;br /&gt;
  la indefinida por una fórmula que sólo usa las conectivas ⟶ y False &lt;br /&gt;
  y demostrar la equivalencia. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Definir ∨ usando ⟶ y False; es decir, sustituir en&lt;br /&gt;
      (A ∨ B) = indefinida&lt;br /&gt;
  la indefinida por una fórmula que sólo usa las conectivas ⟶ y False &lt;br /&gt;
  y demostrar la equivalencia. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Encontrar una fórmula equivalente a &lt;br /&gt;
     (A ∨ (B ∧ C)) ⟷ A&lt;br /&gt;
  que sólo use las conectivas False, ∧ y ⟶ y demostrar la &lt;br /&gt;
  equivalencia.   &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_5&amp;diff=252</id>
		<title>Rel 5</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_5&amp;diff=252"/>
		<updated>2013-03-19T05:30:36Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt; header {* T3R3: Eliminación de conectivas *}  theory T3R3 imports Main  begin  text {*   ------------------------------------------------------------------...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* T3R3: Eliminación de conectivas *}&lt;br /&gt;
&lt;br /&gt;
theory T3R3&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta es relación es demostrar cómo a partir de las&lt;br /&gt;
  conectivas False, ∧ y ⟶ pueden definirse las restantes.&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Definir ⟷ usando ∧ y ⟶; es decir, sustituir en&lt;br /&gt;
      (A ⟷ B) = indefinida&lt;br /&gt;
  la indefinida por una fórmula que sólo usa las conectivas ∧ y ⟷ y&lt;br /&gt;
  demostrar la equivalencia. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Definir ¬ usando ⟶ y False; es decir, sustituir en&lt;br /&gt;
      (¬A) = indefinida&lt;br /&gt;
  la indefinida por una fórmula que sólo usa las conectivas ⟶ y False &lt;br /&gt;
  y demostrar la equivalencia. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Definir ∨ usando ⟶ y False; es decir, sustituir en&lt;br /&gt;
      (A ∨ B) = indefinida&lt;br /&gt;
  la indefinida por una fórmula que sólo usa las conectivas ⟶ y False &lt;br /&gt;
  y demostrar la equivalencia. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Encontrar una fórmula equivalente a &lt;br /&gt;
     (A ∨ (B ∧ C)) ⟷ A&lt;br /&gt;
  que sólo use las conectivas False, ∧ y ⟶ y demostrar la &lt;br /&gt;
  equivalencia.   &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
end &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=251</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=251"/>
		<updated>2013-03-19T05:27:52Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Relaciones de ejercicios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 5&amp;#039;&amp;#039;&amp;#039;: Eliminación de conectivas. ([[Rel_5 |Enunciado]] y [[Relación 5 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 6&amp;#039;&amp;#039;&amp;#039;: Formalización de argumentos en lógica de primer orden. ([[Rel_6 |Enunciado]] y [[Relación 6 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Teorías Isabelle/HOL de los temas de deducción natural ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_4&amp;diff=241</id>
		<title>Rel 4</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_4&amp;diff=241"/>
		<updated>2013-03-18T18:21:37Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Protegió «Rel 4» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R4: Argumentación proposicional *}&lt;br /&gt;
&lt;br /&gt;
theory R4&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación formalizar y demostrar la corrección de&lt;br /&gt;
  los argumentos usando sólo las reglas básicas de deducción natural de&lt;br /&gt;
  la lógica proposicional (sin usar el método auto). &lt;br /&gt;
&lt;br /&gt;
  Las reglas básicas de la deducción natural son las siguientes:&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · notnotI:    P ⟹ ¬¬ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Cuando tanto la temperatura como la presión atmosférica permanecen&lt;br /&gt;
     contantes, no llueve. La temperatura permanece constante. Por lo&lt;br /&gt;
     tanto, en caso de que llueva, la presión atmosférica no permanece&lt;br /&gt;
     constante. &lt;br /&gt;
  Usar T para &amp;quot;La temperatura permanece constante&amp;quot;,&lt;br /&gt;
       P para &amp;quot;La presión atmosférica permanece constante&amp;quot; y&lt;br /&gt;
       L para &amp;quot;Llueve&amp;quot;.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Siempre que un número x es divisible por 10, acaba en 0. El número&lt;br /&gt;
     x no acaba en 0. Por lo tanto, x no es divisible por 10. &lt;br /&gt;
  Usar D para &amp;quot;el número es divisible por 10&amp;quot; y&lt;br /&gt;
       C para &amp;quot;el número acaba en cero&amp;quot;.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     En cierto experimento, cuando hemos empleado un fármaco A, el&lt;br /&gt;
     paciente ha mejorado considerablemente en el caso, y sólo en el&lt;br /&gt;
     caso, en que no se haya empleado también un fármaco B. Además, o se&lt;br /&gt;
     ha empleado el fármaco A o se ha empleado el fármaco B. En&lt;br /&gt;
     consecuencia, podemos afirmar que si no hemos empleado el fármaco&lt;br /&gt;
     B, el paciente ha mejorado considerablemente. &lt;br /&gt;
  Usar A: Hemos empleado el fármaco A.&lt;br /&gt;
       B: Hemos empleado el fármaco B.&lt;br /&gt;
       M: El paciente ha mejorado notablemente.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento&lt;br /&gt;
     Si no está el mañana ni el ayer escrito, entonces no está el mañana&lt;br /&gt;
     escrito. &lt;br /&gt;
  Usar M: El mañana está escrito.&lt;br /&gt;
       A: El ayer está escrito.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Me matan si no trabajo y si trabajo me matan. Me matan siempre me&lt;br /&gt;
     matan. &lt;br /&gt;
  Usar M: Me matan.&lt;br /&gt;
       T: Trabajo.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si te llamé por teléfono, entonces recibiste mi llamada y no es&lt;br /&gt;
     cierto que no te avisé del peligro que corrías. Por consiguiente,&lt;br /&gt;
     como te llamé, es cierto que te avisé del peligro que corrías.&lt;br /&gt;
  Usar T: Te llamé por teléfono.&lt;br /&gt;
       R: Recibiste mi llamada.&lt;br /&gt;
       P: Te avisé del peligro que corrías.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si no hay control de nacimientos, entonces la población crece&lt;br /&gt;
     ilimitadamente; pero si la población crece ilimitadamente,&lt;br /&gt;
     aumentará el índice de pobreza. Por consiguiente, si no hay control&lt;br /&gt;
     de nacimientos, aumentará el índice de pobreza. &lt;br /&gt;
  Usar N: Hay control de nacimientos. &lt;br /&gt;
       P: La población crece ilimitadamente,&lt;br /&gt;
       I: Aumentará el índice de pobreza. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si el general era leal, hubiera obedecido las órdenes, y si era&lt;br /&gt;
     inteligente las hubiera comprendido. O el general desobedeció las&lt;br /&gt;
     órdenes o no las comprendió. Luego, el general era desleal o no era&lt;br /&gt;
     inteligente. &lt;br /&gt;
  Usar L: El general es leal.&lt;br /&gt;
       O: El general obedece las órdenes.&lt;br /&gt;
       I: El general es inteligente.&lt;br /&gt;
       C: El general comprende las órdenes.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si Dios fuera capaz de evitar el mal y quisiera hacerlo, lo&lt;br /&gt;
     haría. Si Dios fuera incapaz de evitar el mal, no sería&lt;br /&gt;
     omnipotente; si no quisiera evitar el mal sería malévolo. Dios no&lt;br /&gt;
     evita el mal. Si Dios existe, es omnipotente y no es&lt;br /&gt;
     malévolo. Luego, Dios no existe. &lt;br /&gt;
  Usar C: Dios es capaz de evitar el mal.&lt;br /&gt;
       Q: Dios quiere evitar el mal.&lt;br /&gt;
       O: Dios es omnipotente.&lt;br /&gt;
       M: Dios es malévolo.&lt;br /&gt;
       P: Dios evita el mal.&lt;br /&gt;
       E: Dios existe.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Nadie más que Pedro, Quintín y Raúl están bajo sospecha y al menos&lt;br /&gt;
     uno es traidor. Pedro nunca trabaja sin llevar al menos un cómplice&lt;br /&gt;
     (que puede ser Quintín o Raúl). Raúl es leal. Por lo tanto,&lt;br /&gt;
     Pedro es traidor.&lt;br /&gt;
  Usar p: Pedro es traidor.&lt;br /&gt;
       q : Quintín es traidor.&lt;br /&gt;
       r : Raúl es traidor. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si la válvula está abierta o la monitorización está preparada,&lt;br /&gt;
     entonces se envía una señal de reconocimiento y un mensaje de&lt;br /&gt;
     funcionamiento al controlador del ordenador. Si se envía un mensaje &lt;br /&gt;
     de funcionamiento al controlador del ordenador o el sistema está en &lt;br /&gt;
     estado normal, entonces se aceptan las órdenes del operador. Por lo&lt;br /&gt;
     tanto, si la válvula está abierta, entonces se aceptan las órdenes&lt;br /&gt;
     del operador. &lt;br /&gt;
  Usar A: La válvula está abierta.&lt;br /&gt;
       P : La monitorización está preparada.&lt;br /&gt;
       R : Envía una señal de reconocimiento.&lt;br /&gt;
       F : Envía un mensaje de funcionamiento.&lt;br /&gt;
       N : El sistema está en estado normal.&lt;br /&gt;
       O : Se aceptan órdenes del operador.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si trabajo gano dinero, pero si no trabajo gozo de la vida. Sin&lt;br /&gt;
     embargo, si trabajo no gozo de la vida, mientras que si no trabajo&lt;br /&gt;
     no gano dinero. Por lo tanto, gozo de la vida si y sólo si no gano&lt;br /&gt;
  dinero. &lt;br /&gt;
  Usar p: Trabajo&lt;br /&gt;
       q: Gano dinero.&lt;br /&gt;
       r: Gozo de la vida.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_4&amp;diff=240</id>
		<title>Relación 4</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_4&amp;diff=240"/>
		<updated>2013-03-18T18:21:02Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt; header {* R4: Argumentación proposicional *}  theory R4 imports Main  begin  text {*   --------------------------------------------------------------------...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R4: Argumentación proposicional *}&lt;br /&gt;
&lt;br /&gt;
theory R4&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación formalizar y demostrar la corrección de&lt;br /&gt;
  los argumentos usando sólo las reglas básicas de deducción natural de&lt;br /&gt;
  la lógica proposicional (sin usar el método auto). &lt;br /&gt;
&lt;br /&gt;
  Las reglas básicas de la deducción natural son las siguientes:&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · notnotI:    P ⟹ ¬¬ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Cuando tanto la temperatura como la presión atmosférica permanecen&lt;br /&gt;
     contantes, no llueve. La temperatura permanece constante. Por lo&lt;br /&gt;
     tanto, en caso de que llueva, la presión atmosférica no permanece&lt;br /&gt;
     constante. &lt;br /&gt;
  Usar T para &amp;quot;La temperatura permanece constante&amp;quot;,&lt;br /&gt;
       P para &amp;quot;La presión atmosférica permanece constante&amp;quot; y&lt;br /&gt;
       L para &amp;quot;Llueve&amp;quot;.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Siempre que un número x es divisible por 10, acaba en 0. El número&lt;br /&gt;
     x no acaba en 0. Por lo tanto, x no es divisible por 10. &lt;br /&gt;
  Usar D para &amp;quot;el número es divisible por 10&amp;quot; y&lt;br /&gt;
       C para &amp;quot;el número acaba en cero&amp;quot;.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     En cierto experimento, cuando hemos empleado un fármaco A, el&lt;br /&gt;
     paciente ha mejorado considerablemente en el caso, y sólo en el&lt;br /&gt;
     caso, en que no se haya empleado también un fármaco B. Además, o se&lt;br /&gt;
     ha empleado el fármaco A o se ha empleado el fármaco B. En&lt;br /&gt;
     consecuencia, podemos afirmar que si no hemos empleado el fármaco&lt;br /&gt;
     B, el paciente ha mejorado considerablemente. &lt;br /&gt;
  Usar A: Hemos empleado el fármaco A.&lt;br /&gt;
       B: Hemos empleado el fármaco B.&lt;br /&gt;
       M: El paciente ha mejorado notablemente.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento&lt;br /&gt;
     Si no está el mañana ni el ayer escrito, entonces no está el mañana&lt;br /&gt;
     escrito. &lt;br /&gt;
  Usar M: El mañana está escrito.&lt;br /&gt;
       A: El ayer está escrito.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Me matan si no trabajo y si trabajo me matan. Me matan siempre me&lt;br /&gt;
     matan. &lt;br /&gt;
  Usar M: Me matan.&lt;br /&gt;
       T: Trabajo.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si te llamé por teléfono, entonces recibiste mi llamada y no es&lt;br /&gt;
     cierto que no te avisé del peligro que corrías. Por consiguiente,&lt;br /&gt;
     como te llamé, es cierto que te avisé del peligro que corrías.&lt;br /&gt;
  Usar T: Te llamé por teléfono.&lt;br /&gt;
       R: Recibiste mi llamada.&lt;br /&gt;
       P: Te avisé del peligro que corrías.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si no hay control de nacimientos, entonces la población crece&lt;br /&gt;
     ilimitadamente; pero si la población crece ilimitadamente,&lt;br /&gt;
     aumentará el índice de pobreza. Por consiguiente, si no hay control&lt;br /&gt;
     de nacimientos, aumentará el índice de pobreza. &lt;br /&gt;
  Usar N: Hay control de nacimientos. &lt;br /&gt;
       P: La población crece ilimitadamente,&lt;br /&gt;
       I: Aumentará el índice de pobreza. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si el general era leal, hubiera obedecido las órdenes, y si era&lt;br /&gt;
     inteligente las hubiera comprendido. O el general desobedeció las&lt;br /&gt;
     órdenes o no las comprendió. Luego, el general era desleal o no era&lt;br /&gt;
     inteligente. &lt;br /&gt;
  Usar L: El general es leal.&lt;br /&gt;
       O: El general obedece las órdenes.&lt;br /&gt;
       I: El general es inteligente.&lt;br /&gt;
       C: El general comprende las órdenes.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si Dios fuera capaz de evitar el mal y quisiera hacerlo, lo&lt;br /&gt;
     haría. Si Dios fuera incapaz de evitar el mal, no sería&lt;br /&gt;
     omnipotente; si no quisiera evitar el mal sería malévolo. Dios no&lt;br /&gt;
     evita el mal. Si Dios existe, es omnipotente y no es&lt;br /&gt;
     malévolo. Luego, Dios no existe. &lt;br /&gt;
  Usar C: Dios es capaz de evitar el mal.&lt;br /&gt;
       Q: Dios quiere evitar el mal.&lt;br /&gt;
       O: Dios es omnipotente.&lt;br /&gt;
       M: Dios es malévolo.&lt;br /&gt;
       P: Dios evita el mal.&lt;br /&gt;
       E: Dios existe.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Nadie más que Pedro, Quintín y Raúl están bajo sospecha y al menos&lt;br /&gt;
     uno es traidor. Pedro nunca trabaja sin llevar al menos un cómplice&lt;br /&gt;
     (que puede ser Quintín o Raúl). Raúl es leal. Por lo tanto,&lt;br /&gt;
     Pedro es traidor.&lt;br /&gt;
  Usar p: Pedro es traidor.&lt;br /&gt;
       q : Quintín es traidor.&lt;br /&gt;
       r : Raúl es traidor. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si la válvula está abierta o la monitorización está preparada,&lt;br /&gt;
     entonces se envía una señal de reconocimiento y un mensaje de&lt;br /&gt;
     funcionamiento al controlador del ordenador. Si se envía un mensaje &lt;br /&gt;
     de funcionamiento al controlador del ordenador o el sistema está en &lt;br /&gt;
     estado normal, entonces se aceptan las órdenes del operador. Por lo&lt;br /&gt;
     tanto, si la válvula está abierta, entonces se aceptan las órdenes&lt;br /&gt;
     del operador. &lt;br /&gt;
  Usar A: La válvula está abierta.&lt;br /&gt;
       P : La monitorización está preparada.&lt;br /&gt;
       R : Envía una señal de reconocimiento.&lt;br /&gt;
       F : Envía un mensaje de funcionamiento.&lt;br /&gt;
       N : El sistema está en estado normal.&lt;br /&gt;
       O : Se aceptan órdenes del operador.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si trabajo gano dinero, pero si no trabajo gozo de la vida. Sin&lt;br /&gt;
     embargo, si trabajo no gozo de la vida, mientras que si no trabajo&lt;br /&gt;
     no gano dinero. Por lo tanto, gozo de la vida si y sólo si no gano&lt;br /&gt;
  dinero. &lt;br /&gt;
  Usar p: Trabajo&lt;br /&gt;
       q: Gano dinero.&lt;br /&gt;
       r: Gozo de la vida.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_4&amp;diff=239</id>
		<title>Rel 4</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_4&amp;diff=239"/>
		<updated>2013-03-18T18:20:29Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt; header {* R4: Argumentación proposicional *}  theory R4 imports Main  begin  text {*   --------------------------------------------------------------------...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R4: Argumentación proposicional *}&lt;br /&gt;
&lt;br /&gt;
theory R4&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación formalizar y demostrar la corrección de&lt;br /&gt;
  los argumentos usando sólo las reglas básicas de deducción natural de&lt;br /&gt;
  la lógica proposicional (sin usar el método auto). &lt;br /&gt;
&lt;br /&gt;
  Las reglas básicas de la deducción natural son las siguientes:&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · notnotI:    P ⟹ ¬¬ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación.&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Cuando tanto la temperatura como la presión atmosférica permanecen&lt;br /&gt;
     contantes, no llueve. La temperatura permanece constante. Por lo&lt;br /&gt;
     tanto, en caso de que llueva, la presión atmosférica no permanece&lt;br /&gt;
     constante. &lt;br /&gt;
  Usar T para &amp;quot;La temperatura permanece constante&amp;quot;,&lt;br /&gt;
       P para &amp;quot;La presión atmosférica permanece constante&amp;quot; y&lt;br /&gt;
       L para &amp;quot;Llueve&amp;quot;.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Siempre que un número x es divisible por 10, acaba en 0. El número&lt;br /&gt;
     x no acaba en 0. Por lo tanto, x no es divisible por 10. &lt;br /&gt;
  Usar D para &amp;quot;el número es divisible por 10&amp;quot; y&lt;br /&gt;
       C para &amp;quot;el número acaba en cero&amp;quot;.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     En cierto experimento, cuando hemos empleado un fármaco A, el&lt;br /&gt;
     paciente ha mejorado considerablemente en el caso, y sólo en el&lt;br /&gt;
     caso, en que no se haya empleado también un fármaco B. Además, o se&lt;br /&gt;
     ha empleado el fármaco A o se ha empleado el fármaco B. En&lt;br /&gt;
     consecuencia, podemos afirmar que si no hemos empleado el fármaco&lt;br /&gt;
     B, el paciente ha mejorado considerablemente. &lt;br /&gt;
  Usar A: Hemos empleado el fármaco A.&lt;br /&gt;
       B: Hemos empleado el fármaco B.&lt;br /&gt;
       M: El paciente ha mejorado notablemente.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento&lt;br /&gt;
     Si no está el mañana ni el ayer escrito, entonces no está el mañana&lt;br /&gt;
     escrito. &lt;br /&gt;
  Usar M: El mañana está escrito.&lt;br /&gt;
       A: El ayer está escrito.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Me matan si no trabajo y si trabajo me matan. Me matan siempre me&lt;br /&gt;
     matan. &lt;br /&gt;
  Usar M: Me matan.&lt;br /&gt;
       T: Trabajo.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si te llamé por teléfono, entonces recibiste mi llamada y no es&lt;br /&gt;
     cierto que no te avisé del peligro que corrías. Por consiguiente,&lt;br /&gt;
     como te llamé, es cierto que te avisé del peligro que corrías.&lt;br /&gt;
  Usar T: Te llamé por teléfono.&lt;br /&gt;
       R: Recibiste mi llamada.&lt;br /&gt;
       P: Te avisé del peligro que corrías.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si no hay control de nacimientos, entonces la población crece&lt;br /&gt;
     ilimitadamente; pero si la población crece ilimitadamente,&lt;br /&gt;
     aumentará el índice de pobreza. Por consiguiente, si no hay control&lt;br /&gt;
     de nacimientos, aumentará el índice de pobreza. &lt;br /&gt;
  Usar N: Hay control de nacimientos. &lt;br /&gt;
       P: La población crece ilimitadamente,&lt;br /&gt;
       I: Aumentará el índice de pobreza. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si el general era leal, hubiera obedecido las órdenes, y si era&lt;br /&gt;
     inteligente las hubiera comprendido. O el general desobedeció las&lt;br /&gt;
     órdenes o no las comprendió. Luego, el general era desleal o no era&lt;br /&gt;
     inteligente. &lt;br /&gt;
  Usar L: El general es leal.&lt;br /&gt;
       O: El general obedece las órdenes.&lt;br /&gt;
       I: El general es inteligente.&lt;br /&gt;
       C: El general comprende las órdenes.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si Dios fuera capaz de evitar el mal y quisiera hacerlo, lo&lt;br /&gt;
     haría. Si Dios fuera incapaz de evitar el mal, no sería&lt;br /&gt;
     omnipotente; si no quisiera evitar el mal sería malévolo. Dios no&lt;br /&gt;
     evita el mal. Si Dios existe, es omnipotente y no es&lt;br /&gt;
     malévolo. Luego, Dios no existe. &lt;br /&gt;
  Usar C: Dios es capaz de evitar el mal.&lt;br /&gt;
       Q: Dios quiere evitar el mal.&lt;br /&gt;
       O: Dios es omnipotente.&lt;br /&gt;
       M: Dios es malévolo.&lt;br /&gt;
       P: Dios evita el mal.&lt;br /&gt;
       E: Dios existe.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Nadie más que Pedro, Quintín y Raúl están bajo sospecha y al menos&lt;br /&gt;
     uno es traidor. Pedro nunca trabaja sin llevar al menos un cómplice&lt;br /&gt;
     (que puede ser Quintín o Raúl). Raúl es leal. Por lo tanto,&lt;br /&gt;
     Pedro es traidor.&lt;br /&gt;
  Usar p: Pedro es traidor.&lt;br /&gt;
       q : Quintín es traidor.&lt;br /&gt;
       r : Raúl es traidor. &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si la válvula está abierta o la monitorización está preparada,&lt;br /&gt;
     entonces se envía una señal de reconocimiento y un mensaje de&lt;br /&gt;
     funcionamiento al controlador del ordenador. Si se envía un mensaje &lt;br /&gt;
     de funcionamiento al controlador del ordenador o el sistema está en &lt;br /&gt;
     estado normal, entonces se aceptan las órdenes del operador. Por lo&lt;br /&gt;
     tanto, si la válvula está abierta, entonces se aceptan las órdenes&lt;br /&gt;
     del operador. &lt;br /&gt;
  Usar A: La válvula está abierta.&lt;br /&gt;
       P : La monitorización está preparada.&lt;br /&gt;
       R : Envía una señal de reconocimiento.&lt;br /&gt;
       F : Envía un mensaje de funcionamiento.&lt;br /&gt;
       N : El sistema está en estado normal.&lt;br /&gt;
       O : Se aceptan órdenes del operador.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Formalizar, y demostrar la corrección, del siguiente&lt;br /&gt;
  argumento &lt;br /&gt;
     Si trabajo gano dinero, pero si no trabajo gozo de la vida. Sin&lt;br /&gt;
     embargo, si trabajo no gozo de la vida, mientras que si no trabajo&lt;br /&gt;
     no gano dinero. Por lo tanto, gozo de la vida si y sólo si no gano&lt;br /&gt;
  dinero. &lt;br /&gt;
  Usar p: Trabajo&lt;br /&gt;
       q: Gano dinero.&lt;br /&gt;
       r: Gozo de la vida.&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=238</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=238"/>
		<updated>2013-03-18T18:19:12Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Relaciones de ejercicios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 4&amp;#039;&amp;#039;&amp;#039;: Argumentación proposicional con Isabelle/HOL. ([[Rel_4 |Enunciado]] y [[Relación 4 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_2&amp;diff=161</id>
		<title>Tema 2</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_2&amp;diff=161"/>
		<updated>2013-03-06T07:31:12Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
header {* Tema 2: Deducción natural proposicional con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory T2&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  En esta sección se presentan los ejemplos del tema de deducción natural&lt;br /&gt;
  proposicional siguiendo la presentación de Huth y Ryan en su libro&lt;br /&gt;
  &amp;quot;Logic in Computer Science&amp;quot; http://goo.gl/qsVpY y, más concretamente,&lt;br /&gt;
  a la forma como se explica en la asignatura de &amp;quot;Lógica matemática y    &lt;br /&gt;
  fundamentos&amp;quot; (LMF) http://goo.gl/uJj8d&lt;br /&gt;
 &lt;br /&gt;
  La página al lado de cada ejemplo indica la página de las transparencias &lt;br /&gt;
  de LMF donde se encuentra la demostración. *}&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la conjunción *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 1 (p. 4). Demostrar que&lt;br /&gt;
     p ∧ q, r ⊢ q ∧ r.&lt;br /&gt;
  *}     &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_1_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;r&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;q&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  show 4: &amp;quot;q ∧ r&amp;quot; using 3 2 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Notas sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assumes&amp;quot; para indicar las hipótesis,&lt;br /&gt;
  · &amp;quot;and&amp;quot; para separar las hipótesis,&lt;br /&gt;
  · &amp;quot;shows&amp;quot; para indicar la conclusión,&lt;br /&gt;
  · &amp;quot;proof&amp;quot; para iniciar la prueba,&lt;br /&gt;
  · &amp;quot;qed&amp;quot; para terminar la pruebas,&lt;br /&gt;
  · &amp;quot;-&amp;quot; (después de &amp;quot;proof&amp;quot;) para no usar el método por defecto,&lt;br /&gt;
  · &amp;quot;have&amp;quot; para establecer un paso,&lt;br /&gt;
  · &amp;quot;using&amp;quot; para usar hechos en un paso,&lt;br /&gt;
  · &amp;quot;by (rule ..)&amp;quot; para indicar la regla con la que se peueba un hecho,&lt;br /&gt;
  · &amp;quot;show&amp;quot; para establecer la conclusión.&lt;br /&gt;
&lt;br /&gt;
  Notas sobre la lógica: Las reglas de la conjunción son&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden dejar implícitas las reglas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_2:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;r&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;q&amp;quot; using 1 .. &lt;br /&gt;
  show 4: &amp;quot;q ∧ r&amp;quot; using 3 2 ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;..&amp;quot; para indicar que se prueba por la regla correspondiente. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden eliminar las etiquetas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_3:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(1) ..&lt;br /&gt;
  thus &amp;quot;q ∧ r&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assms(n)&amp;quot; para indicar la hipótesis n y&lt;br /&gt;
  · &amp;quot;thus&amp;quot; para demostrar la conclusión usando el hecho anterior.&lt;br /&gt;
  Además, no es necesario usar and entre las hipótesis. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede automatizar la demostración como sigue *}&lt;br /&gt;
  &lt;br /&gt;
lemma ejemplo_1_4:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assms&amp;quot; para indicar las hipótesis y&lt;br /&gt;
  · &amp;quot;by auto&amp;quot; para demostrar la conclusión automáticamente. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede automatizar totalmente la demostración como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_5:&lt;br /&gt;
  &amp;quot;⟦p ∧ q; r⟧ ⟹ q ∧ r&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;⟦ ... ⟧&amp;quot; para representar las hipótesis,&lt;br /&gt;
  · &amp;quot;;&amp;quot; para separar las hipótesis y&lt;br /&gt;
  · &amp;quot;⟹&amp;quot; para separar las hipótesis de la conclusión. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede hacer la demostración por razonamiento hacia atrás,&lt;br /&gt;
  como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_6:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
      and &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof (rule conjI)&lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1) by (rule conjunct2)&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;r&amp;quot; using assms(2) by this&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;proof (rule r)&amp;quot; para indicar que se hará la demostración con la&lt;br /&gt;
    regla r,&lt;br /&gt;
  · &amp;quot;next&amp;quot; para indicar el comienzo de la prueba del siguiente&lt;br /&gt;
    subobjetivo,&lt;br /&gt;
  · &amp;quot;this&amp;quot; para indicar el hecho actual. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden dejar implícitas las reglas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_7:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1) ..&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;r&amp;quot; using assms(2) . &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;.&amp;quot; para indicar por el hecho actual. *}&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la doble negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación de la doble negación es&lt;br /&gt;
  · notnotD: ¬¬ P ⟹ P&lt;br /&gt;
&lt;br /&gt;
  Para ajustarnos al tema de LI vamos a introducir la siguiente regla de&lt;br /&gt;
  introducción de la doble negación&lt;br /&gt;
  · notnotI: P ⟹ ¬¬ P&lt;br /&gt;
  aunque, de momento, no detallamos su demostración.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI [intro!]: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 2. (p. 5)&lt;br /&gt;
       p, ¬¬(q ∧ r) ⊢ ¬¬p ∧ r&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_1:&lt;br /&gt;
  assumes 1: &amp;quot;p&amp;quot; and&lt;br /&gt;
          2: &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows      &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬p&amp;quot; using 1 by (rule notnotI)&lt;br /&gt;
  have 4: &amp;quot;q ∧ r&amp;quot; using 2 by (rule notnotD)&lt;br /&gt;
  have 5: &amp;quot;r&amp;quot; using 4 by (rule conjunct2)&lt;br /&gt;
  show 6: &amp;quot;¬¬p ∧ r&amp;quot; using 3 5 by (rule conjI)&lt;br /&gt;
qed        &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_2:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have  &amp;quot;¬¬p&amp;quot; using assms(1) ..&lt;br /&gt;
  have  &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD)&lt;br /&gt;
  hence &amp;quot;r&amp;quot; ..&lt;br /&gt;
  with `¬¬p` show  &amp;quot;¬¬p ∧ r&amp;quot; ..&lt;br /&gt;
qed        &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;hence&amp;quot; para indicar que se tiene por el hecho anterior y&lt;br /&gt;
  · `...` para referenciar un hecho. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_3:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* Se puede demostrar hacia atrás *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_2_4:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof  (rule conjI)&lt;br /&gt;
  show &amp;quot;¬¬p&amp;quot; using assms(1) by (rule notnotI)&lt;br /&gt;
next&lt;br /&gt;
  have &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD) &lt;br /&gt;
  thus &amp;quot;r&amp;quot; by (rule conjunct2)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* Se puede eliminar las reglas en la demostración anterior, como&lt;br /&gt;
  sigue: *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_2_5:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;¬¬p&amp;quot; using assms(1) ..&lt;br /&gt;
next&lt;br /&gt;
  have &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD) &lt;br /&gt;
  thus &amp;quot;r&amp;quot; .. &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de eliminación del condicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación del condicional es la regla del modus ponens&lt;br /&gt;
  · mp: ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 3. (p. 6) Demostrar que&lt;br /&gt;
     ¬p ∧ q, ¬p ∧ q ⟶ r ∨ ¬p ⊢ r ∨ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ∧ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows      &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;r ∨ ¬p&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_2:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;r ∨ ¬p&amp;quot; using assms(2,1) ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_3:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 4 (p. 6) Demostrar que&lt;br /&gt;
     p, p ⟶ q, p ⟶ (q ⟶ r) ⊢ r&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_1:&lt;br /&gt;
  assumes 1: &amp;quot;p&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ⟶ q&amp;quot; and &lt;br /&gt;
          3: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;q ⟶ r&amp;quot; using 3 1 by (rule mp)&lt;br /&gt;
  show 6: &amp;quot;r&amp;quot; using 5 4 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_2:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(2,1) .. &lt;br /&gt;
  have &amp;quot;q ⟶ r&amp;quot; using assms(3,1) ..&lt;br /&gt;
  thus &amp;quot;r&amp;quot; using `q` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_3:&lt;br /&gt;
  &amp;quot;⟦p; p ⟶ q; p ⟶ (q ⟶ r)⟧ ⟹ r&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla derivada del modus tollens *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Para ajustarnos al tema de LI vamos a introducir la regla del modus&lt;br /&gt;
  tollens&lt;br /&gt;
  · mt: ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  aunque, de momento, sin detallar su demostración.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 5 (p. 7). Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p, ¬r ⊢ ¬q&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p&amp;quot; and &lt;br /&gt;
          3: &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q ⟶ r&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
  show &amp;quot;¬q&amp;quot; using 4 3 by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q ⟶ r&amp;quot; using assms(1,2) ..&lt;br /&gt;
  thus &amp;quot;¬q&amp;quot; using assms(3) by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 6. (p. 7) Demostrar &lt;br /&gt;
     ¬p ⟶ q, ¬q ⊢ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ⟶ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬p&amp;quot; using 1 2 by (rule mt)&lt;br /&gt;
  show &amp;quot;p&amp;quot; using 3 by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_2:&lt;br /&gt;
  assumes &amp;quot;¬p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬p&amp;quot; using assms(1,2) by (rule mt)&lt;br /&gt;
  thus &amp;quot;p&amp;quot; by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_3:&lt;br /&gt;
  &amp;quot;⟦¬p ⟶ q; ¬q⟧ ⟹ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 7. (p. 7) Demostrar&lt;br /&gt;
     p ⟶ ¬q, q ⊢ ¬p&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ ¬q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬q&amp;quot; using 2 by (rule notnotI)&lt;br /&gt;
  show &amp;quot;¬p&amp;quot; using 1 3 by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ ¬q&amp;quot;&lt;br /&gt;
          &amp;quot;q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬q&amp;quot; using assms(2) by (rule notnotI)&lt;br /&gt;
  with assms(1) show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;with P show Q&amp;quot; para indicar que con el hecho anterior junto con el&lt;br /&gt;
    hecho P se demuestra Q. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_3:&lt;br /&gt;
  &amp;quot;⟦p ⟶ ¬q; q⟧ ⟹ ¬p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de introducción del condicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de introducción del condicional es&lt;br /&gt;
  · impI: (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 8. (p. 8) Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 2: &amp;quot;¬q&amp;quot;&lt;br /&gt;
    have &amp;quot;¬p&amp;quot; using 1 2 by (rule mt) } &lt;br /&gt;
  thus &amp;quot;¬q ⟶ ¬p&amp;quot; by (rule impI)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;{ ... }&amp;quot; para representar una caja. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
  with assms show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 9. (p. 9) Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ ¬¬q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_1: &lt;br /&gt;
  assumes 1: &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
proof -&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 3: &amp;quot;¬¬p&amp;quot; using 2 by (rule notnotI)&lt;br /&gt;
    have &amp;quot;¬¬q&amp;quot; using 1 3 by (rule mt) } &lt;br /&gt;
  thus &amp;quot;p ⟶ ¬¬q&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_2:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows    &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬¬p&amp;quot; by (rule notnotI)&lt;br /&gt;
  with assms show &amp;quot;¬¬q&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_3:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 10 (p. 9). Demostrar&lt;br /&gt;
     ⊢ p ⟶ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_1:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 1: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 1 by this }&lt;br /&gt;
  thus &amp;quot;p ⟶ p&amp;quot; by (rule impI) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_2:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_3:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 11 (p. 10) Demostrar&lt;br /&gt;
     ⊢ (q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_1:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
    { assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
        have 4: &amp;quot;¬¬p&amp;quot; using 3 by (rule notnotI)&lt;br /&gt;
        have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
        have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
        have &amp;quot;r&amp;quot; using 1 6 by (rule mp) } &lt;br /&gt;
      hence &amp;quot;p ⟶ r&amp;quot; by (rule impI) } &lt;br /&gt;
    hence &amp;quot;(¬q ⟶ ¬p) ⟶ p ⟶ r&amp;quot; by (rule impI) } &lt;br /&gt;
  thus &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ p ⟶ r)&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_2:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
    proof (rule impI)&lt;br /&gt;
      assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
        proof (rule impI)&lt;br /&gt;
          assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
          have 4: &amp;quot;¬¬p&amp;quot; using 3 by (rule notnotI)&lt;br /&gt;
          have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
          have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
          show &amp;quot;r&amp;quot; using 1 6 by (rule mp)&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_3:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
        proof&lt;br /&gt;
          assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
          have 4: &amp;quot;¬¬p&amp;quot; using 3 ..&lt;br /&gt;
          have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
          have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
          show &amp;quot;r&amp;quot; using 1 6 ..&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración sin etiquetas es&amp;quot; &lt;br /&gt;
lemma ejemplo_11_4:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
    show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;p&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬¬p&amp;quot; ..&lt;br /&gt;
      with `¬q ⟶ ¬p` have &amp;quot;¬¬q&amp;quot; by (rule mt)&lt;br /&gt;
      hence &amp;quot;q&amp;quot; by (rule notnotD)&lt;br /&gt;
      with `q ⟶ r` show &amp;quot;r&amp;quot; ..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_5:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la disyunción *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Las reglas de la introducción de la disyunción son&lt;br /&gt;
  · disjI1: P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2: Q ⟹ P ∨ Q&lt;br /&gt;
  La regla de elimación de la disyunción es&lt;br /&gt;
  · disjE:  ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 12 (p. 11). Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_1:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;p ∨ q&amp;quot; using assms by this&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; by (rule disjE) &lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;moreover&amp;quot; para separar los bloques y&lt;br /&gt;
  · &amp;quot;ultimately&amp;quot; para unir los resultados de los bloques. *}&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;La demostración detallada con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_2:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  note `p ∨ q`&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    hence &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    hence &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;note&amp;quot; para copiar un hecho. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_3:&lt;br /&gt;
  assumes 1: &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using 1&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    show &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_4:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
proof &lt;br /&gt;
  { assume  &amp;quot;p&amp;quot;&lt;br /&gt;
    thus &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    thus &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_5:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 13. (p. 12) Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_1:&lt;br /&gt;
  assumes 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 2: &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  thus &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ∨ r&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 4: &amp;quot;q&amp;quot;&lt;br /&gt;
      have 5: &amp;quot;r&amp;quot; using 1 4 by (rule mp)&lt;br /&gt;
      show &amp;quot;p ∨ r&amp;quot; using 5 by (rule disjI2) }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_2:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  thus &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    { assume &amp;quot;p&amp;quot;&lt;br /&gt;
      thus &amp;quot;p ∨ r&amp;quot; .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;q&amp;quot;&lt;br /&gt;
      have &amp;quot;r&amp;quot; using assms `q` ..&lt;br /&gt;
      thus &amp;quot;p ∨ r&amp;quot; .. }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_3:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de copia *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 14 (p. 13). Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_1:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;p&amp;quot;&lt;br /&gt;
  show &amp;quot;q ⟶ p&amp;quot; &lt;br /&gt;
  proof (rule impI)&lt;br /&gt;
    assume &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;p&amp;quot; using 1 by this&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_2:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  thus &amp;quot;q ⟶ p&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_3:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación de lo falso es&lt;br /&gt;
  · FalseE: False ⟹ P&lt;br /&gt;
  La regla de eliminación de la negación es&lt;br /&gt;
  · notE: ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  La regla de introducción de la negación es&lt;br /&gt;
  · notI: (P ⟹ False) ⟹ ¬P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 15 (p. 15). Demostrar&lt;br /&gt;
     ¬p ∨ q ⊢ p ⟶ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
  note 1&lt;br /&gt;
  thus &amp;quot;q&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume 3: &amp;quot;¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;q&amp;quot; using 3 2 by (rule notE) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 4: &amp;quot;q&amp;quot;&lt;br /&gt;
      show &amp;quot;q&amp;quot; using 4 by this}&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_2:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  note `¬p ∨ q`&lt;br /&gt;
  thus &amp;quot;q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;q&amp;quot; using `p` .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;q&amp;quot;&lt;br /&gt;
      thus &amp;quot;q&amp;quot; . }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_3:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 16 (p. 16). Demostrar&lt;br /&gt;
     p ⟶ q, p ⟶ ¬q ⊢ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;¬q&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  show False using 5 4 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(1) `p` ..&lt;br /&gt;
  have &amp;quot;¬q&amp;quot; using assms(2) `p` ..&lt;br /&gt;
  thus False using `q` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas del bicondicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de introducción del bicondicional es&lt;br /&gt;
  · iffI: ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P ⟷ Q&lt;br /&gt;
  Las reglas de eliminación del bicondicional son&lt;br /&gt;
  · iffD1: ⟦Q ⟷ P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2: ⟦P ⟷ Q; Q⟧ ⟹ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 17 (p. 17) Demostrar&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_1:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  { assume 1: &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
    have 2: &amp;quot;p&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
    have 3: &amp;quot;q&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
    show &amp;quot;q ∧ p&amp;quot; using 3 2 by (rule conjI) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 4: &amp;quot;q ∧ p&amp;quot;&lt;br /&gt;
    have 5: &amp;quot;q&amp;quot; using 4 by (rule conjunct1)&lt;br /&gt;
    have 6: &amp;quot;p&amp;quot; using 4 by (rule conjunct2)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 6 5 by (rule conjI) }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_2:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  { assume 1: &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 1 ..&lt;br /&gt;
    have &amp;quot;q&amp;quot; using 1 ..&lt;br /&gt;
    show &amp;quot;q ∧ p&amp;quot; using `q` `p` .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume 2: &amp;quot;q ∧ p&amp;quot;&lt;br /&gt;
    have &amp;quot;q&amp;quot; using 2 ..&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 2 ..&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using `p` `q`  .. }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_3:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 18 (p. 18). Demostrar&lt;br /&gt;
     p ⟷ q, p ∨ q ⊢ p ∧ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟷ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using 2&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 4: &amp;quot;q&amp;quot; using 1 3 by (rule iffD1)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 3 4 by (rule conjI) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 5: &amp;quot;q&amp;quot;&lt;br /&gt;
    have 6: &amp;quot;p&amp;quot; using 1 5 by (rule iffD2)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 6 5 by (rule conjI) }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_2:&lt;br /&gt;
  assumes &amp;quot;p ⟷ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows  &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using assms(2)&lt;br /&gt;
proof&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    with assms(1) have &amp;quot;q&amp;quot; ..&lt;br /&gt;
    with `p` show &amp;quot;p ∧ q&amp;quot; .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    with assms(1) have &amp;quot;p&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;p ∧ q&amp;quot; using `q` .. }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_3:&lt;br /&gt;
  assumes &amp;quot;p ⟷ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas derivadas *}&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla del modus tollens *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 19 (p. 20) Demostrar la regla del modus tollens a partir de&lt;br /&gt;
  las reglas básicas. &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_1:&lt;br /&gt;
  assumes 1: &amp;quot;F ⟶ G&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬F&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 3: &amp;quot;F&amp;quot;&lt;br /&gt;
  have 4: &amp;quot;G&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  show False using 2 4 by (rule notE)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_2:&lt;br /&gt;
  assumes &amp;quot;F ⟶ G&amp;quot;&lt;br /&gt;
          &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬F&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;F&amp;quot;&lt;br /&gt;
  with assms(1) have &amp;quot;G&amp;quot; ..&lt;br /&gt;
  with assms(2) show False ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_3:&lt;br /&gt;
  assumes &amp;quot;F ⟶ G&amp;quot;&lt;br /&gt;
          &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla de la introducción de la doble negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 21 (p. 21) Demostrar la regla de introducción de la doble&lt;br /&gt;
  negación a partir de las reglas básicas.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_1:&lt;br /&gt;
  assumes 1: &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 2: &amp;quot;¬F&amp;quot;&lt;br /&gt;
  show False using 2 1 by (rule notE)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_2:&lt;br /&gt;
  assumes &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;¬F&amp;quot;&lt;br /&gt;
  thus False using assms ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_3:&lt;br /&gt;
  assumes &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla de reducción al absurdo *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de reducción al absurdo en Isabelle se correponde con la&lt;br /&gt;
  regla clásica de contradicción &lt;br /&gt;
  · ccontr: (¬P ⟹ False) ⟹ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Ley del tercio excluso *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La ley del tercio excluso es &lt;br /&gt;
  · excluded_middle: ¬P ∨ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 22 (p. 23). Demostrar la ley del tercio excluso a partir de&lt;br /&gt;
  las reglas básicas.  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_1:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬(F ∨ ¬F)&amp;quot;&lt;br /&gt;
  thus False&lt;br /&gt;
  proof (rule notE)&lt;br /&gt;
    show &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
    proof (rule disjI2)&lt;br /&gt;
      show &amp;quot;¬F&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume 2: &amp;quot;F&amp;quot;&lt;br /&gt;
        hence 3: &amp;quot;F ∨ ¬F&amp;quot; by (rule disjI1)&lt;br /&gt;
        show False using 1 3 by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
    &lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_2:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume &amp;quot;¬(F ∨ ¬F)&amp;quot;&lt;br /&gt;
  thus False&lt;br /&gt;
  proof (rule notE)&lt;br /&gt;
    show &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
    proof (rule disjI2)&lt;br /&gt;
      show &amp;quot;¬F&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume &amp;quot;F&amp;quot;&lt;br /&gt;
        hence &amp;quot;F ∨ ¬F&amp;quot; ..&lt;br /&gt;
        with `¬(F ∨ ¬F)`show False ..&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
    &lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_3:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 23 (p. 24). Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬p ∨ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; by (rule excluded_middle)&lt;br /&gt;
  thus &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; by (rule disjI1) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
      have &amp;quot;q&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; by (rule disjI2) }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;p&amp;quot;&lt;br /&gt;
      with assms have &amp;quot;q&amp;quot; ..&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; .. }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Demostraciones por contradicción *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 24. Demostrar que &lt;br /&gt;
     ¬p, p ∨ q ⊢ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_1:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
using `p ∨ q`&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms(1) show &amp;quot;q&amp;quot; by contradiction &lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  thus &amp;quot;q&amp;quot; by assumption&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_2:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
using `p ∨ q`&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms(1) show &amp;quot;q&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  thus &amp;quot;q&amp;quot; .&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_3:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_3&amp;diff=160</id>
		<title>Relación 3</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_3&amp;diff=160"/>
		<updated>2013-03-06T05:23:20Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R3: Deducción natural proposicional *}&lt;br /&gt;
&lt;br /&gt;
theory R3&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es demostrar cada uno de los ejercicios&lt;br /&gt;
  usando sólo las reglas básicas de deducción natural de la lógica&lt;br /&gt;
  proposicional (sin usar el método auto).&lt;br /&gt;
&lt;br /&gt;
  Las reglas básicas de la deducción natural son las siguientes:&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · notnotI:    P ⟹ ¬¬ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación. *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Implicaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       p ⟶ q, p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;p&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
   show 3: &amp;quot;q&amp;quot; using 1 2 by (rule mp) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Isabel Duarte&amp;quot;&lt;br /&gt;
lemma ejercicio_1b:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1,2) by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
  assumes 1:&amp;quot;p ⟶ q&amp;quot; and&lt;br /&gt;
          2:&amp;quot;q ⟶ r&amp;quot; and&lt;br /&gt;
          3:&amp;quot;p&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  show 5: &amp;quot;r&amp;quot; using 2 4 by (rule mp) &lt;br /&gt;
qed&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p ⟶ q, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro G. Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; and&lt;br /&gt;
          2: &amp;quot;p ⟶ q&amp;quot;       and&lt;br /&gt;
          3: &amp;quot;p&amp;quot;           &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
   have 4: &amp;quot;q ⟶ r&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
   have 5: &amp;quot;q&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
   show 6: &amp;quot;r&amp;quot; using 4 5 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r ⊢ p ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro G. Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  {assume 3:&amp;quot;p&amp;quot; &lt;br /&gt;
    have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
    have 5: &amp;quot;r&amp;quot; using 2 4 by (rule mp)}&lt;br /&gt;
  thus &amp;quot;p ⟶ r&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ q ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Isabel Duarte&amp;quot;&lt;br /&gt;
lemma ejercicio_5a:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  {assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    {assume 4: &amp;quot;p&amp;quot;&lt;br /&gt;
      have  &amp;quot;q ⟶ r&amp;quot; using 1 4 ..&lt;br /&gt;
      hence 5: &amp;quot;r&amp;quot; using 3 ..}&lt;br /&gt;
    hence 6: &amp;quot;p ⟶ r&amp;quot; by (rule impI)}&lt;br /&gt;
  thus &amp;quot;q ⟶ (p ⟶ r)&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ (p ⟶ q) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;José Mª Contreras&amp;quot;&lt;br /&gt;
lemma ejercicio_6a:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
 {assume 2: &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
   {assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 4: &amp;quot;q ⟶ r&amp;quot; using 1 3 ..&lt;br /&gt;
    have 5: &amp;quot;q&amp;quot; using 2 3 ..&lt;br /&gt;
    have &amp;quot;r&amp;quot;  using 4 5 ..}&lt;br /&gt;
   hence &amp;quot;p ⟶ r&amp;quot; by (rule impI)}&lt;br /&gt;
 thus &amp;quot;(p ⟶ q) ⟶ (p ⟶ r)&amp;quot; by (rule impI)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
     p ⊢ q ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;q ⟶ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
 {assume 1: &amp;quot;q&amp;quot;}&lt;br /&gt;
   show &amp;quot;q⟶ p&amp;quot; using assms(1) by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ (q ⟶ r) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(q ⟶ r) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ (r ⟶ s)) ⊢ r ⟶ (q ⟶ (p ⟶ s))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ (r ⟶ s))&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ⟶ (q ⟶ (p ⟶ s))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
  &amp;quot;(p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Conjunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
     p, q ⊢  p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13:&lt;br /&gt;
  assumes 1:&amp;quot;p&amp;quot; and&lt;br /&gt;
          2:&amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p ∧ q&amp;quot; using 1 2 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_14:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
     p ∧ q ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_15:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;q&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
     p ∧ (q ∧ r) ⊢ (p ∧ q) ∧ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_16:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∧ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(p ∧ q)∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 1: &amp;quot;p&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
have 2: &amp;quot;(q ∧ r)&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
have 3: &amp;quot;q&amp;quot; using 2 by (rule conjunct1)&lt;br /&gt;
have 4: &amp;quot;r&amp;quot; using 2 by (rule conjunct2)&lt;br /&gt;
have 5: &amp;quot;(p∧q)&amp;quot; using 1 3 by (rule conjI)&lt;br /&gt;
show 6: &amp;quot;(p∧q) ∧ r&amp;quot; using 5 4 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
     (p ∧ q) ∧ r ⊢ p ∧ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_17:&lt;br /&gt;
  assumes &amp;quot;(p∧ q) ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q∧ r)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 1: &amp;quot;r&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
have 2: &amp;quot;(p∧q)&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
have 3: &amp;quot;p&amp;quot; using 2 by (rule conjunct1)&lt;br /&gt;
have 4: &amp;quot;q&amp;quot; using 2 by (rule conjunct2)&lt;br /&gt;
have 5: &amp;quot;(q∧r)&amp;quot; using 4 1 by (rule conjI)&lt;br /&gt;
show 6: &amp;quot;p∧(q∧r)&amp;quot; using 3 5 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_18:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 1: &amp;quot;q&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
show &amp;quot;p⟶ q&amp;quot; using 1 by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
     (p ⟶ q) ∧ (p ⟶ r) ⊢ p ⟶ q ∧ r   &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q ∧ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
     p ⟶ q ∧ r ⊢ (p ⟶ q) ∧ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     p ∧ q ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;p ∧ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
     p ∧ (q ⟶ r) ⊢ (p ⟶ q) ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Disyunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
     p ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p∨q&amp;quot; using assms by (rule disjI1)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
     q ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes &amp;quot;q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p∨q&amp;quot; using assms by (rule disjI2)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
have &amp;quot;p ∨ q&amp;quot; using assms by this&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; by (rule disjE) &lt;br /&gt;
qed  &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar&lt;br /&gt;
     p ∨ p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29:&lt;br /&gt;
  assumes &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar&lt;br /&gt;
     p ⊢ p ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar&lt;br /&gt;
     p ∨ (q ∨ r) ⊢ (p ∨ q) ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar&lt;br /&gt;
     (p ∨ q) ∨ r ⊢ p ∨ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∨ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar&lt;br /&gt;
     p ∧ (q ∨ r) ⊢ (p ∧ q) ∨ (p ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar&lt;br /&gt;
     (p ∧ q) ∨ (p ∧ r) ⊢ p ∧ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar&lt;br /&gt;
     p ∨ (q ∧ r) ⊢ (p ∨ q) ∧ (p ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar&lt;br /&gt;
     (p ∨ q) ∧ (p ∨ r) ⊢ p ∨ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar&lt;br /&gt;
     (p ⟶ r) ∧ (q ⟶ r) ⊢ p ∨ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 38. Demostrar&lt;br /&gt;
     p ∨ q ⟶ r ⊢ (p ⟶ r) ∧ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_38:&lt;br /&gt;
  assumes &amp;quot;p ∨ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Negaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 39. Demostrar&lt;br /&gt;
     p ⊢ ¬¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
-- &amp;quot;Pedro G. Ros Reina&amp;quot;&lt;br /&gt;
lemma ejercicio_39:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;¬¬p&amp;quot; using assms by (rule notnotI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_40:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 41. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_41:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p∨q, ¬q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_42:&lt;br /&gt;
  assumes &amp;quot;p∨q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p ∨ q, ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_43:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     p ∨ q ⊢ ¬(¬p ∧ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_44:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 45. Demostrar&lt;br /&gt;
     p ∧ q ⊢ ¬(¬p ∨ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_45:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∨ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 46. Demostrar&lt;br /&gt;
     ¬(p ∨ q) ⊢ ¬p ∧ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_46:&lt;br /&gt;
  assumes &amp;quot;¬(p ∨ q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 47. Demostrar&lt;br /&gt;
     ¬p ∧ ¬q ⊢ ¬(p ∨ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_47:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ ¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(p ∨ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 48. Demostrar&lt;br /&gt;
     ¬p ∨ ¬q ⊢ ¬(p ∧ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_48:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 49. Demostrar&lt;br /&gt;
     ⊢ ¬(p ∧ ¬p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_49:&lt;br /&gt;
  &amp;quot;¬(p ∧ ¬p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 50. Demostrar&lt;br /&gt;
     p ∧ ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_50:&lt;br /&gt;
  assumes &amp;quot;p ∧ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 51. Demostrar&lt;br /&gt;
     ¬¬p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_51:&lt;br /&gt;
  assumes &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 52. Demostrar&lt;br /&gt;
     ⊢ p ∨ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_52:&lt;br /&gt;
  &amp;quot;p ∨ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 53. Demostrar&lt;br /&gt;
     ⊢ ((p ⟶ q) ⟶ p) ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_53:&lt;br /&gt;
  &amp;quot;((p ⟶ q) ⟶ p) ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 54. Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_54:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 55. Demostrar&lt;br /&gt;
     ¬(¬p ∧ ¬q) ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_55:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 56. Demostrar&lt;br /&gt;
     ¬(¬p ∨ ¬q) ⊢ p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_56:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∨ ¬q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 57. Demostrar&lt;br /&gt;
     ¬(p ∧ q) ⊢ ¬p ∨ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_57:&lt;br /&gt;
  assumes &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 58. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ q) ∨ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_58:&lt;br /&gt;
  &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_2&amp;diff=159</id>
		<title>Tema 2</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_2&amp;diff=159"/>
		<updated>2013-03-05T20:03:55Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
header {* Tema 2: Deducción natural proposicional con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory T2&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  En esta sección se presentan los ejemplos del tema de deducción natural&lt;br /&gt;
  proposicional siguiendo la presentación de Huth y Ryan en su libro&lt;br /&gt;
  &amp;quot;Logic in Computer Science&amp;quot; http://goo.gl/qsVpY y, más concretamente,&lt;br /&gt;
  a la forma como se explica en la asignatura de &amp;quot;Lógica matemática y    &lt;br /&gt;
  fundamentos&amp;quot; (LMF) http://goo.gl/uJj8d&lt;br /&gt;
 &lt;br /&gt;
  La página al lado de cada ejemplo indica la página de las transparencias &lt;br /&gt;
  de LMF donde se encuentra la demostración. *}&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la conjunción *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 1 (p. 4). Demostrar que&lt;br /&gt;
     p ∧ q, r ⊢ q ∧ r.&lt;br /&gt;
  *}     &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_1_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;r&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;q&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  show 4: &amp;quot;q ∧ r&amp;quot; using 3 2 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Notas sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assumes&amp;quot; para indicar las hipótesis,&lt;br /&gt;
  · &amp;quot;and&amp;quot; para separar las hipótesis,&lt;br /&gt;
  · &amp;quot;shows&amp;quot; para indicar la conclusión,&lt;br /&gt;
  · &amp;quot;proof&amp;quot; para iniciar la prueba,&lt;br /&gt;
  · &amp;quot;qed&amp;quot; para terminar la pruebas,&lt;br /&gt;
  · &amp;quot;-&amp;quot; (después de &amp;quot;proof&amp;quot;) para no usar el método por defecto,&lt;br /&gt;
  · &amp;quot;have&amp;quot; para establecer un paso,&lt;br /&gt;
  · &amp;quot;using&amp;quot; para usar hechos en un paso,&lt;br /&gt;
  · &amp;quot;by (rule ..)&amp;quot; para indicar la regla con la que se peueba un hecho,&lt;br /&gt;
  · &amp;quot;show&amp;quot; para establecer la conclusión.&lt;br /&gt;
&lt;br /&gt;
  Notas sobre la lógica: Las reglas de la conjunción son&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden dejar implícitas las reglas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_2:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;r&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;q&amp;quot; using 1 .. &lt;br /&gt;
  show 4: &amp;quot;q ∧ r&amp;quot; using 3 2 ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;..&amp;quot; para indicar que se prueba por la regla correspondiente. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden eliminar las etiquetas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_3:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(1) ..&lt;br /&gt;
  thus &amp;quot;q ∧ r&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assms(n)&amp;quot; para indicar la hipótesis n y&lt;br /&gt;
  · &amp;quot;thus&amp;quot; para demostrar la conclusión usando el hecho anterior.&lt;br /&gt;
  Además, no es necesario usar and entre las hipótesis. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede automatizar la demostración como sigue *}&lt;br /&gt;
  &lt;br /&gt;
lemma ejemplo_1_4:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assms&amp;quot; para indicar las hipótesis y&lt;br /&gt;
  · &amp;quot;by auto&amp;quot; para demostrar la conclusión automáticamente. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede automatizar totalmente la demostración como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_5:&lt;br /&gt;
  &amp;quot;⟦p ∧ q; r⟧ ⟹ q ∧ r&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;⟦ ... ⟧&amp;quot; para representar las hipótesis,&lt;br /&gt;
  · &amp;quot;;&amp;quot; para separar las hipótesis y&lt;br /&gt;
  · &amp;quot;⟹&amp;quot; para separar las hipótesis de la conclusión. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede hacer la demostración por razonamiento hacia atrás,&lt;br /&gt;
  como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_6:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
      and &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof (rule conjI)&lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1) by (rule conjunct2)&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;r&amp;quot; using assms(2) by this&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;proof (rule r)&amp;quot; para indicar que se hará la demostración con la&lt;br /&gt;
    regla r,&lt;br /&gt;
  · &amp;quot;next&amp;quot; para indicar el comienzo de la prueba del siguiente&lt;br /&gt;
    subobjetivo,&lt;br /&gt;
  · &amp;quot;this&amp;quot; para indicar el hecho actual. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden dejar implícitas las reglas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_7:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1) ..&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;r&amp;quot; using assms(2) . &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;.&amp;quot; para indicar por el hecho actual. *}&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la doble negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación de la doble negación es&lt;br /&gt;
  · notnotD: ¬¬ P ⟹ P&lt;br /&gt;
&lt;br /&gt;
  Para ajustarnos al tema de LI vamos a introducir la siguiente regla de&lt;br /&gt;
  introducción de la doble negación&lt;br /&gt;
  · notnotI: P ⟹ ¬¬ P&lt;br /&gt;
  aunque, de momento, no detallamos su demostración.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI [intro!]: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 2. (p. 5)&lt;br /&gt;
       p, ¬¬(q ∧ r) ⊢ ¬¬p ∧ r&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_1:&lt;br /&gt;
  assumes 1: &amp;quot;p&amp;quot; and&lt;br /&gt;
          2: &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows      &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬p&amp;quot; using 1 by (rule notnotI)&lt;br /&gt;
  have 4: &amp;quot;q ∧ r&amp;quot; using 2 by (rule notnotD)&lt;br /&gt;
  have 5: &amp;quot;r&amp;quot; using 4 by (rule conjunct2)&lt;br /&gt;
  show 6: &amp;quot;¬¬p ∧ r&amp;quot; using 3 5 by (rule conjI)&lt;br /&gt;
qed        &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_2:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have  &amp;quot;¬¬p&amp;quot; using assms(1) ..&lt;br /&gt;
  have  &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD)&lt;br /&gt;
  hence &amp;quot;r&amp;quot; ..&lt;br /&gt;
  with `¬¬p` show  &amp;quot;¬¬p ∧ r&amp;quot; ..&lt;br /&gt;
qed        &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;hence&amp;quot; para indicar que se tiene por el hecho anterior y&lt;br /&gt;
  · `...` para referenciar un hecho. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_3:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* Se puede demostrar hacia atrás *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_2_4:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof  (rule conjI)&lt;br /&gt;
  show &amp;quot;¬¬p&amp;quot; using assms(1) by (rule notnotI)&lt;br /&gt;
next&lt;br /&gt;
  have &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD) &lt;br /&gt;
  thus &amp;quot;r&amp;quot; by (rule conjunct2)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* Se puede eliminar las reglas en la demostración anterior, como&lt;br /&gt;
  sigue: *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_2_5:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;¬¬p&amp;quot; using assms(1) ..&lt;br /&gt;
next&lt;br /&gt;
  have &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD) &lt;br /&gt;
  thus &amp;quot;r&amp;quot; .. &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de eliminación del condicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación del condicional es la regla del modus ponens&lt;br /&gt;
  · mp: ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 3. (p. 6) Demostar que&lt;br /&gt;
     ¬p ∧ q, ¬p ∧ q ⟶ r ∨ ¬p ⊢ r ∨ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ∧ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows      &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;r ∨ ¬p&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_2:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;r ∨ ¬p&amp;quot; using assms(2,1) ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_3:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 4 (p. 6) Demostrar que&lt;br /&gt;
     p, p ⟶ q, p ⟶ (q ⟶ r) ⊢ r&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_1:&lt;br /&gt;
  assumes 1: &amp;quot;p&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ⟶ q&amp;quot; and &lt;br /&gt;
          3: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;q ⟶ r&amp;quot; using 3 1 by (rule mp)&lt;br /&gt;
  show 6: &amp;quot;r&amp;quot; using 5 4 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_2:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(2,1) .. &lt;br /&gt;
  have &amp;quot;q ⟶ r&amp;quot; using assms(3,1) ..&lt;br /&gt;
  thus &amp;quot;r&amp;quot; using `q` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_3:&lt;br /&gt;
  &amp;quot;⟦p; p ⟶ q; p ⟶ (q ⟶ r)⟧ ⟹ r&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla derivada del modus tollens *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Para ajustarnos al tema de LI vamos a introducir la regla del modus&lt;br /&gt;
  tollens&lt;br /&gt;
  · mt: ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  aunque, de momento, sin detallar su demostración.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 5 (p. 7). Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p, ¬r ⊢ ¬q&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p&amp;quot; and &lt;br /&gt;
          3: &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q ⟶ r&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
  show &amp;quot;¬q&amp;quot; using 4 3 by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q ⟶ r&amp;quot; using assms(1,2) ..&lt;br /&gt;
  thus &amp;quot;¬q&amp;quot; using assms(3) by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 6. (p. 7) Demostrar &lt;br /&gt;
     ¬p ⟶ q, ¬q ⊢ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ⟶ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬p&amp;quot; using 1 2 by (rule mt)&lt;br /&gt;
  show &amp;quot;p&amp;quot; using 3 by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_2:&lt;br /&gt;
  assumes &amp;quot;¬p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬p&amp;quot; using assms(1,2) by (rule mt)&lt;br /&gt;
  thus &amp;quot;p&amp;quot; by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_3:&lt;br /&gt;
  &amp;quot;⟦¬p ⟶ q; ¬q⟧ ⟹ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 7. (p. 7) Demostrar&lt;br /&gt;
     p ⟶ ¬q, q ⊢ ¬p&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ ¬q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬q&amp;quot; using 2 by (rule notnotI)&lt;br /&gt;
  show &amp;quot;¬p&amp;quot; using 1 3 by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ ¬q&amp;quot;&lt;br /&gt;
          &amp;quot;q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬q&amp;quot; using assms(2) by (rule notnotI)&lt;br /&gt;
  with assms(1) show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;with P show Q&amp;quot; para indicar que con el hecho anterior junto con el&lt;br /&gt;
    hecho P se demuestra Q. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_3:&lt;br /&gt;
  &amp;quot;⟦p ⟶ ¬q; q⟧ ⟹ ¬p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de introducción del condicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de introducción del condicional es&lt;br /&gt;
  · impI: (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 8. (p. 8) Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 2: &amp;quot;¬q&amp;quot;&lt;br /&gt;
    have &amp;quot;¬p&amp;quot; using 1 2 by (rule mt) } &lt;br /&gt;
  thus &amp;quot;¬q ⟶ ¬p&amp;quot; by (rule impI)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;{ ... }&amp;quot; para representar una caja. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
  with assms show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 9. (p. 9) Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ ¬¬q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_1: &lt;br /&gt;
  assumes 1: &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
proof -&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 3: &amp;quot;¬¬p&amp;quot; using 2 by (rule notnotI)&lt;br /&gt;
    have &amp;quot;¬¬q&amp;quot; using 1 3 by (rule mt) } &lt;br /&gt;
  thus &amp;quot;p ⟶ ¬¬q&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_2:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows    &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬¬p&amp;quot; by (rule notnotI)&lt;br /&gt;
  with assms show &amp;quot;¬¬q&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_3:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 10 (p. 9). Demostrar&lt;br /&gt;
     ⊢ p ⟶ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_1:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 1: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 1 by this }&lt;br /&gt;
  thus &amp;quot;p ⟶ p&amp;quot; by (rule impI) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_2:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_3:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 11 (p. 10) Demostrar&lt;br /&gt;
     ⊢ (q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_1:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
    { assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
        have 4: &amp;quot;¬¬p&amp;quot; using 3 by (rule notnotI)&lt;br /&gt;
        have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
        have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
        have &amp;quot;r&amp;quot; using 1 6 by (rule mp) } &lt;br /&gt;
      hence &amp;quot;p ⟶ r&amp;quot; by (rule impI) } &lt;br /&gt;
    hence &amp;quot;(¬q ⟶ ¬p) ⟶ p ⟶ r&amp;quot; by (rule impI) } &lt;br /&gt;
  thus &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ p ⟶ r)&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_2:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
    proof (rule impI)&lt;br /&gt;
      assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
        proof (rule impI)&lt;br /&gt;
          assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
          have 4: &amp;quot;¬¬p&amp;quot; using 3 by (rule notnotI)&lt;br /&gt;
          have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
          have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
          show &amp;quot;r&amp;quot; using 1 6 by (rule mp)&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_3:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
        proof&lt;br /&gt;
          assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
          have 4: &amp;quot;¬¬p&amp;quot; using 3 ..&lt;br /&gt;
          have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
          have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
          show &amp;quot;r&amp;quot; using 1 6 ..&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_4:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la disyunción *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Las reglas de la introducción de la disyunción son&lt;br /&gt;
  · disjI1: P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2: Q ⟹ P ∨ Q&lt;br /&gt;
  La regla de elimación de la disyunción es&lt;br /&gt;
  · disjE:  ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 12 (p. 11). Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_1:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;p ∨ q&amp;quot; using assms by this&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; by (rule disjE) &lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;moreover&amp;quot; para separar los bloques y&lt;br /&gt;
  · &amp;quot;ultimately&amp;quot; para unir los resultados de los bloques. *}&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;La demostración detallada con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_2:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  note `p ∨ q`&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    hence &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    hence &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;note&amp;quot; para copiar un hecho. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_3:&lt;br /&gt;
  assumes 1: &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using 1&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    show &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_4:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
proof &lt;br /&gt;
  { assume  &amp;quot;p&amp;quot;&lt;br /&gt;
    thus &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    thus &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_5:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 13. (p. 12) Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_1:&lt;br /&gt;
  assumes 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 2: &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  thus &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ∨ r&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 4: &amp;quot;q&amp;quot;&lt;br /&gt;
      have 5: &amp;quot;r&amp;quot; using 1 4 by (rule mp)&lt;br /&gt;
      show &amp;quot;p ∨ r&amp;quot; using 5 by (rule disjI2) }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_2:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  thus &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    { assume &amp;quot;p&amp;quot;&lt;br /&gt;
      thus &amp;quot;p ∨ r&amp;quot; .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;q&amp;quot;&lt;br /&gt;
      have &amp;quot;r&amp;quot; using assms `q` ..&lt;br /&gt;
      thus &amp;quot;p ∨ r&amp;quot; .. }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_3:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de copia *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 14 (p. 13). Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_1:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;p&amp;quot;&lt;br /&gt;
  show &amp;quot;q ⟶ p&amp;quot; &lt;br /&gt;
  proof (rule impI)&lt;br /&gt;
    assume &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;p&amp;quot; using 1 by this&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_2:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  thus &amp;quot;q ⟶ p&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_3:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación de lo falso es&lt;br /&gt;
  · FalseE: False ⟹ P&lt;br /&gt;
  La regla de eliminación de la negación es&lt;br /&gt;
  · notE: ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  La regla de introducción de la negación es&lt;br /&gt;
  · notI: (P ⟹ False) ⟹ ¬P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 15 (p. 15). Demostrar&lt;br /&gt;
     ¬p ∨ q ⊢ p ⟶ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
  note 1&lt;br /&gt;
  thus &amp;quot;q&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume 3: &amp;quot;¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;q&amp;quot; using 3 2 by (rule notE) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 4: &amp;quot;q&amp;quot;&lt;br /&gt;
      show &amp;quot;q&amp;quot; using 4 by this}&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_2:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  note `¬p ∨ q`&lt;br /&gt;
  thus &amp;quot;q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;q&amp;quot; using `p` .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;q&amp;quot;&lt;br /&gt;
      thus &amp;quot;q&amp;quot; . }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_3:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 16 (p. 16). Demostrar&lt;br /&gt;
     p ⟶ q, p ⟶ ¬q ⊢ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;¬q&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  show False using 5 4 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(1) `p` ..&lt;br /&gt;
  have &amp;quot;¬q&amp;quot; using assms(2) `p` ..&lt;br /&gt;
  thus False using `q` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas del bicondicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de introducción del bicondicional es&lt;br /&gt;
  · iffI: ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P ⟷ Q&lt;br /&gt;
  Las reglas de eliminación del bicondicional son&lt;br /&gt;
  · iffD1: ⟦Q ⟷ P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2: ⟦P ⟷ Q; Q⟧ ⟹ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 17 (p. 17) Demostrar&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_1:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  { assume 1: &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
    have 2: &amp;quot;p&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
    have 3: &amp;quot;q&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
    show &amp;quot;q ∧ p&amp;quot; using 3 2 by (rule conjI) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 4: &amp;quot;q ∧ p&amp;quot;&lt;br /&gt;
    have 5: &amp;quot;q&amp;quot; using 4 by (rule conjunct1)&lt;br /&gt;
    have 6: &amp;quot;p&amp;quot; using 4 by (rule conjunct2)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 6 5 by (rule conjI) }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_2:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  { assume 1: &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 1 ..&lt;br /&gt;
    have &amp;quot;q&amp;quot; using 1 ..&lt;br /&gt;
    show &amp;quot;q ∧ p&amp;quot; using `q` `p` .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume 2: &amp;quot;q ∧ p&amp;quot;&lt;br /&gt;
    have &amp;quot;q&amp;quot; using 2 ..&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 2 ..&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using `p` `q`  .. }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_3:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 18 (p. 18). Demostrar&lt;br /&gt;
     p ⟷ q, p ∨ q ⊢ p ∧ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟷ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using 2&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 4: &amp;quot;q&amp;quot; using 1 3 by (rule iffD1)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 3 4 by (rule conjI) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 5: &amp;quot;q&amp;quot;&lt;br /&gt;
    have 6: &amp;quot;p&amp;quot; using 1 5 by (rule iffD2)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 6 5 by (rule conjI) }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_2:&lt;br /&gt;
  assumes &amp;quot;p ⟷ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows  &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using assms(2)&lt;br /&gt;
proof&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    with assms(1) have &amp;quot;q&amp;quot; ..&lt;br /&gt;
    with `p` show &amp;quot;p ∧ q&amp;quot; .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    with assms(1) have &amp;quot;p&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;p ∧ q&amp;quot; using `q` .. }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_3:&lt;br /&gt;
  assumes &amp;quot;p ⟷ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas derivadas *}&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla del modus tollens *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 19 (p. 20) Demostrar la regla del modus tollens a partir de&lt;br /&gt;
  las reglas básicas. &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_1:&lt;br /&gt;
  assumes 1: &amp;quot;F ⟶ G&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬F&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 3: &amp;quot;F&amp;quot;&lt;br /&gt;
  have 4: &amp;quot;G&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  show False using 2 4 by (rule notE)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_2:&lt;br /&gt;
  assumes &amp;quot;F ⟶ G&amp;quot;&lt;br /&gt;
          &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬F&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;F&amp;quot;&lt;br /&gt;
  with assms(1) have &amp;quot;G&amp;quot; ..&lt;br /&gt;
  with assms(2) show False ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_3:&lt;br /&gt;
  assumes &amp;quot;F ⟶ G&amp;quot;&lt;br /&gt;
          &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla de la introducción de la doble negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 21 (p. 21) Demostrar la regla de introducción de la doble&lt;br /&gt;
  negación a partir de las reglas básicas.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_1:&lt;br /&gt;
  assumes 1: &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 2: &amp;quot;¬F&amp;quot;&lt;br /&gt;
  show False using 2 1 by (rule notE)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_2:&lt;br /&gt;
  assumes &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;¬F&amp;quot;&lt;br /&gt;
  thus False using assms ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_3:&lt;br /&gt;
  assumes &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla de reducción al absurdo *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de reducción al absurdo en Isabelle se correponde con la&lt;br /&gt;
  regla clásica de contradicción &lt;br /&gt;
  · ccontr: (¬P ⟹ False) ⟹ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Ley del tercio excluso *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La ley del tercio excluso es &lt;br /&gt;
  · excluded_middle: ¬P ∨ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 22 (p. 23). Demostrar la ley del tercio excluso a partir de&lt;br /&gt;
  las reglas básicas.  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_1:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬(F ∨ ¬F)&amp;quot;&lt;br /&gt;
  thus False&lt;br /&gt;
  proof (rule notE)&lt;br /&gt;
    show &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
    proof (rule disjI2)&lt;br /&gt;
      show &amp;quot;¬F&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume 2: &amp;quot;F&amp;quot;&lt;br /&gt;
        hence 3: &amp;quot;F ∨ ¬F&amp;quot; by (rule disjI1)&lt;br /&gt;
        show False using 1 3 by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
    &lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_2:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume &amp;quot;¬(F ∨ ¬F)&amp;quot;&lt;br /&gt;
  thus False&lt;br /&gt;
  proof (rule notE)&lt;br /&gt;
    show &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
    proof (rule disjI2)&lt;br /&gt;
      show &amp;quot;¬F&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume &amp;quot;F&amp;quot;&lt;br /&gt;
        hence &amp;quot;F ∨ ¬F&amp;quot; ..&lt;br /&gt;
        with `¬(F ∨ ¬F)`show False ..&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
    &lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_3:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 23 (p. 24). Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬p ∨ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; by (rule excluded_middle)&lt;br /&gt;
  thus &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; by (rule disjI1) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
      have &amp;quot;q&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; by (rule disjI2) }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;p&amp;quot;&lt;br /&gt;
      with assms have &amp;quot;q&amp;quot; ..&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; .. }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Demostraciones por contradicción *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 24. Demostrar que &lt;br /&gt;
     ¬p, p ∨ q ⊢ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_1:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
using `p ∨ q`&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms(1) show &amp;quot;q&amp;quot; by contradiction &lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  thus &amp;quot;q&amp;quot; by assumption&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_2:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
using `p ∨ q`&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms(1) show &amp;quot;q&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  thus &amp;quot;q&amp;quot; .&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_3:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_2&amp;diff=158</id>
		<title>Tema 2</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_2&amp;diff=158"/>
		<updated>2013-03-05T20:03:16Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1c:&lt;br /&gt;
  assumes &amp;quot;H(s)&amp;quot; and &lt;br /&gt;
          &amp;quot;∀x. H(x) ⟶ M(x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;M(s)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;H(s) ⟶ M(s)&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
  thus &amp;quot;M(s)&amp;quot; using assms(1) by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
header {* Tema 2: Deducción natural proposicional con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory T2&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  En esta sección se presentan los ejemplos del tema de deducción natural&lt;br /&gt;
  proposicional siguiendo la presentación de Huth y Ryan en su libro&lt;br /&gt;
  &amp;quot;Logic in Computer Science&amp;quot; http://goo.gl/qsVpY y, más concretamente,&lt;br /&gt;
  a la forma como se explica en la asignatura de &amp;quot;Lógica matemática y    &lt;br /&gt;
  fundamentos&amp;quot; (LMF) http://goo.gl/uJj8d&lt;br /&gt;
 &lt;br /&gt;
  La página al lado de cada ejemplo indica la página de las transparencias &lt;br /&gt;
  de LMF donde se encuentra la demostración. *}&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la conjunción *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 1 (p. 4). Demostrar que&lt;br /&gt;
     p ∧ q, r ⊢ q ∧ r.&lt;br /&gt;
  *}     &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_1_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;r&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;q&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  show 4: &amp;quot;q ∧ r&amp;quot; using 3 2 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Notas sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assumes&amp;quot; para indicar las hipótesis,&lt;br /&gt;
  · &amp;quot;and&amp;quot; para separar las hipótesis,&lt;br /&gt;
  · &amp;quot;shows&amp;quot; para indicar la conclusión,&lt;br /&gt;
  · &amp;quot;proof&amp;quot; para iniciar la prueba,&lt;br /&gt;
  · &amp;quot;qed&amp;quot; para terminar la pruebas,&lt;br /&gt;
  · &amp;quot;-&amp;quot; (después de &amp;quot;proof&amp;quot;) para no usar el método por defecto,&lt;br /&gt;
  · &amp;quot;have&amp;quot; para establecer un paso,&lt;br /&gt;
  · &amp;quot;using&amp;quot; para usar hechos en un paso,&lt;br /&gt;
  · &amp;quot;by (rule ..)&amp;quot; para indicar la regla con la que se peueba un hecho,&lt;br /&gt;
  · &amp;quot;show&amp;quot; para establecer la conclusión.&lt;br /&gt;
&lt;br /&gt;
  Notas sobre la lógica: Las reglas de la conjunción son&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden dejar implícitas las reglas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_2:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;r&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;q&amp;quot; using 1 .. &lt;br /&gt;
  show 4: &amp;quot;q ∧ r&amp;quot; using 3 2 ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;..&amp;quot; para indicar que se prueba por la regla correspondiente. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden eliminar las etiquetas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_3:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(1) ..&lt;br /&gt;
  thus &amp;quot;q ∧ r&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assms(n)&amp;quot; para indicar la hipótesis n y&lt;br /&gt;
  · &amp;quot;thus&amp;quot; para demostrar la conclusión usando el hecho anterior.&lt;br /&gt;
  Además, no es necesario usar and entre las hipótesis. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede automatizar la demostración como sigue *}&lt;br /&gt;
  &lt;br /&gt;
lemma ejemplo_1_4:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assms&amp;quot; para indicar las hipótesis y&lt;br /&gt;
  · &amp;quot;by auto&amp;quot; para demostrar la conclusión automáticamente. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede automatizar totalmente la demostración como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_5:&lt;br /&gt;
  &amp;quot;⟦p ∧ q; r⟧ ⟹ q ∧ r&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;⟦ ... ⟧&amp;quot; para representar las hipótesis,&lt;br /&gt;
  · &amp;quot;;&amp;quot; para separar las hipótesis y&lt;br /&gt;
  · &amp;quot;⟹&amp;quot; para separar las hipótesis de la conclusión. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede hacer la demostración por razonamiento hacia atrás,&lt;br /&gt;
  como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_6:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
      and &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof (rule conjI)&lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1) by (rule conjunct2)&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;r&amp;quot; using assms(2) by this&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;proof (rule r)&amp;quot; para indicar que se hará la demostración con la&lt;br /&gt;
    regla r,&lt;br /&gt;
  · &amp;quot;next&amp;quot; para indicar el comienzo de la prueba del siguiente&lt;br /&gt;
    subobjetivo,&lt;br /&gt;
  · &amp;quot;this&amp;quot; para indicar el hecho actual. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden dejar implícitas las reglas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_7:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1) ..&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;r&amp;quot; using assms(2) . &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;.&amp;quot; para indicar por el hecho actual. *}&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la doble negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación de la doble negación es&lt;br /&gt;
  · notnotD: ¬¬ P ⟹ P&lt;br /&gt;
&lt;br /&gt;
  Para ajustarnos al tema de LI vamos a introducir la siguiente regla de&lt;br /&gt;
  introducción de la doble negación&lt;br /&gt;
  · notnotI: P ⟹ ¬¬ P&lt;br /&gt;
  aunque, de momento, no detallamos su demostración.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI [intro!]: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 2. (p. 5)&lt;br /&gt;
       p, ¬¬(q ∧ r) ⊢ ¬¬p ∧ r&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_1:&lt;br /&gt;
  assumes 1: &amp;quot;p&amp;quot; and&lt;br /&gt;
          2: &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows      &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬p&amp;quot; using 1 by (rule notnotI)&lt;br /&gt;
  have 4: &amp;quot;q ∧ r&amp;quot; using 2 by (rule notnotD)&lt;br /&gt;
  have 5: &amp;quot;r&amp;quot; using 4 by (rule conjunct2)&lt;br /&gt;
  show 6: &amp;quot;¬¬p ∧ r&amp;quot; using 3 5 by (rule conjI)&lt;br /&gt;
qed        &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_2:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have  &amp;quot;¬¬p&amp;quot; using assms(1) ..&lt;br /&gt;
  have  &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD)&lt;br /&gt;
  hence &amp;quot;r&amp;quot; ..&lt;br /&gt;
  with `¬¬p` show  &amp;quot;¬¬p ∧ r&amp;quot; ..&lt;br /&gt;
qed        &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;hence&amp;quot; para indicar que se tiene por el hecho anterior y&lt;br /&gt;
  · `...` para referenciar un hecho. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_3:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* Se puede demostrar hacia atrás *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_2_4:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof  (rule conjI)&lt;br /&gt;
  show &amp;quot;¬¬p&amp;quot; using assms(1) by (rule notnotI)&lt;br /&gt;
next&lt;br /&gt;
  have &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD) &lt;br /&gt;
  thus &amp;quot;r&amp;quot; by (rule conjunct2)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* Se puede eliminar las reglas en la demostración anterior, como&lt;br /&gt;
  sigue: *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_2_5:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;¬¬p&amp;quot; using assms(1) ..&lt;br /&gt;
next&lt;br /&gt;
  have &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD) &lt;br /&gt;
  thus &amp;quot;r&amp;quot; .. &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de eliminación del condicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación del condicional es la regla del modus ponens&lt;br /&gt;
  · mp: ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 3. (p. 6) Demostar que&lt;br /&gt;
     ¬p ∧ q, ¬p ∧ q ⟶ r ∨ ¬p ⊢ r ∨ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ∧ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows      &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;r ∨ ¬p&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_2:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;r ∨ ¬p&amp;quot; using assms(2,1) ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_3:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 4 (p. 6) Demostrar que&lt;br /&gt;
     p, p ⟶ q, p ⟶ (q ⟶ r) ⊢ r&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_1:&lt;br /&gt;
  assumes 1: &amp;quot;p&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ⟶ q&amp;quot; and &lt;br /&gt;
          3: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;q ⟶ r&amp;quot; using 3 1 by (rule mp)&lt;br /&gt;
  show 6: &amp;quot;r&amp;quot; using 5 4 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_2:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(2,1) .. &lt;br /&gt;
  have &amp;quot;q ⟶ r&amp;quot; using assms(3,1) ..&lt;br /&gt;
  thus &amp;quot;r&amp;quot; using `q` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_3:&lt;br /&gt;
  &amp;quot;⟦p; p ⟶ q; p ⟶ (q ⟶ r)⟧ ⟹ r&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla derivada del modus tollens *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Para ajustarnos al tema de LI vamos a introducir la regla del modus&lt;br /&gt;
  tollens&lt;br /&gt;
  · mt: ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  aunque, de momento, sin detallar su demostración.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 5 (p. 7). Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p, ¬r ⊢ ¬q&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p&amp;quot; and &lt;br /&gt;
          3: &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q ⟶ r&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
  show &amp;quot;¬q&amp;quot; using 4 3 by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q ⟶ r&amp;quot; using assms(1,2) ..&lt;br /&gt;
  thus &amp;quot;¬q&amp;quot; using assms(3) by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 6. (p. 7) Demostrar &lt;br /&gt;
     ¬p ⟶ q, ¬q ⊢ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ⟶ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬p&amp;quot; using 1 2 by (rule mt)&lt;br /&gt;
  show &amp;quot;p&amp;quot; using 3 by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_2:&lt;br /&gt;
  assumes &amp;quot;¬p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬p&amp;quot; using assms(1,2) by (rule mt)&lt;br /&gt;
  thus &amp;quot;p&amp;quot; by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_3:&lt;br /&gt;
  &amp;quot;⟦¬p ⟶ q; ¬q⟧ ⟹ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 7. (p. 7) Demostrar&lt;br /&gt;
     p ⟶ ¬q, q ⊢ ¬p&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ ¬q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬q&amp;quot; using 2 by (rule notnotI)&lt;br /&gt;
  show &amp;quot;¬p&amp;quot; using 1 3 by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ ¬q&amp;quot;&lt;br /&gt;
          &amp;quot;q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬q&amp;quot; using assms(2) by (rule notnotI)&lt;br /&gt;
  with assms(1) show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;with P show Q&amp;quot; para indicar que con el hecho anterior junto con el&lt;br /&gt;
    hecho P se demuestra Q. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_3:&lt;br /&gt;
  &amp;quot;⟦p ⟶ ¬q; q⟧ ⟹ ¬p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de introducción del condicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de introducción del condicional es&lt;br /&gt;
  · impI: (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 8. (p. 8) Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 2: &amp;quot;¬q&amp;quot;&lt;br /&gt;
    have &amp;quot;¬p&amp;quot; using 1 2 by (rule mt) } &lt;br /&gt;
  thus &amp;quot;¬q ⟶ ¬p&amp;quot; by (rule impI)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;{ ... }&amp;quot; para representar una caja. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
  with assms show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 9. (p. 9) Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ ¬¬q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_1: &lt;br /&gt;
  assumes 1: &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
proof -&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 3: &amp;quot;¬¬p&amp;quot; using 2 by (rule notnotI)&lt;br /&gt;
    have &amp;quot;¬¬q&amp;quot; using 1 3 by (rule mt) } &lt;br /&gt;
  thus &amp;quot;p ⟶ ¬¬q&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_2:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows    &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬¬p&amp;quot; by (rule notnotI)&lt;br /&gt;
  with assms show &amp;quot;¬¬q&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_3:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 10 (p. 9). Demostrar&lt;br /&gt;
     ⊢ p ⟶ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_1:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 1: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 1 by this }&lt;br /&gt;
  thus &amp;quot;p ⟶ p&amp;quot; by (rule impI) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_2:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_3:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 11 (p. 10) Demostrar&lt;br /&gt;
     ⊢ (q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_1:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
    { assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
        have 4: &amp;quot;¬¬p&amp;quot; using 3 by (rule notnotI)&lt;br /&gt;
        have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
        have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
        have &amp;quot;r&amp;quot; using 1 6 by (rule mp) } &lt;br /&gt;
      hence &amp;quot;p ⟶ r&amp;quot; by (rule impI) } &lt;br /&gt;
    hence &amp;quot;(¬q ⟶ ¬p) ⟶ p ⟶ r&amp;quot; by (rule impI) } &lt;br /&gt;
  thus &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ p ⟶ r)&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_2:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
    proof (rule impI)&lt;br /&gt;
      assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
        proof (rule impI)&lt;br /&gt;
          assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
          have 4: &amp;quot;¬¬p&amp;quot; using 3 by (rule notnotI)&lt;br /&gt;
          have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
          have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
          show &amp;quot;r&amp;quot; using 1 6 by (rule mp)&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_3:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
        proof&lt;br /&gt;
          assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
          have 4: &amp;quot;¬¬p&amp;quot; using 3 ..&lt;br /&gt;
          have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
          have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
          show &amp;quot;r&amp;quot; using 1 6 ..&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_4:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la disyunción *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Las reglas de la introducción de la disyunción son&lt;br /&gt;
  · disjI1: P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2: Q ⟹ P ∨ Q&lt;br /&gt;
  La regla de elimación de la disyunción es&lt;br /&gt;
  · disjE:  ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 12 (p. 11). Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_1:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;p ∨ q&amp;quot; using assms by this&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; by (rule disjE) &lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;moreover&amp;quot; para separar los bloques y&lt;br /&gt;
  · &amp;quot;ultimately&amp;quot; para unir los resultados de los bloques. *}&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;La demostración detallada con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_2:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  note `p ∨ q`&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    hence &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    hence &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;note&amp;quot; para copiar un hecho. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_3:&lt;br /&gt;
  assumes 1: &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using 1&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    show &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_4:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
proof &lt;br /&gt;
  { assume  &amp;quot;p&amp;quot;&lt;br /&gt;
    thus &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    thus &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_5:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 13. (p. 12) Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_1:&lt;br /&gt;
  assumes 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 2: &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  thus &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ∨ r&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 4: &amp;quot;q&amp;quot;&lt;br /&gt;
      have 5: &amp;quot;r&amp;quot; using 1 4 by (rule mp)&lt;br /&gt;
      show &amp;quot;p ∨ r&amp;quot; using 5 by (rule disjI2) }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_2:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  thus &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    { assume &amp;quot;p&amp;quot;&lt;br /&gt;
      thus &amp;quot;p ∨ r&amp;quot; .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;q&amp;quot;&lt;br /&gt;
      have &amp;quot;r&amp;quot; using assms `q` ..&lt;br /&gt;
      thus &amp;quot;p ∨ r&amp;quot; .. }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_3:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de copia *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 14 (p. 13). Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_1:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;p&amp;quot;&lt;br /&gt;
  show &amp;quot;q ⟶ p&amp;quot; &lt;br /&gt;
  proof (rule impI)&lt;br /&gt;
    assume &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;p&amp;quot; using 1 by this&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_2:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  thus &amp;quot;q ⟶ p&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_3:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación de lo falso es&lt;br /&gt;
  · FalseE: False ⟹ P&lt;br /&gt;
  La regla de eliminación de la negación es&lt;br /&gt;
  · notE: ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  La regla de introducción de la negación es&lt;br /&gt;
  · notI: (P ⟹ False) ⟹ ¬P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 15 (p. 15). Demostrar&lt;br /&gt;
     ¬p ∨ q ⊢ p ⟶ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
  note 1&lt;br /&gt;
  thus &amp;quot;q&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume 3: &amp;quot;¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;q&amp;quot; using 3 2 by (rule notE) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 4: &amp;quot;q&amp;quot;&lt;br /&gt;
      show &amp;quot;q&amp;quot; using 4 by this}&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_2:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  note `¬p ∨ q`&lt;br /&gt;
  thus &amp;quot;q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;q&amp;quot; using `p` .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;q&amp;quot;&lt;br /&gt;
      thus &amp;quot;q&amp;quot; . }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_3:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 16 (p. 16). Demostrar&lt;br /&gt;
     p ⟶ q, p ⟶ ¬q ⊢ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;¬q&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  show False using 5 4 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(1) `p` ..&lt;br /&gt;
  have &amp;quot;¬q&amp;quot; using assms(2) `p` ..&lt;br /&gt;
  thus False using `q` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas del bicondicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de introducción del bicondicional es&lt;br /&gt;
  · iffI: ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P ⟷ Q&lt;br /&gt;
  Las reglas de eliminación del bicondicional son&lt;br /&gt;
  · iffD1: ⟦Q ⟷ P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2: ⟦P ⟷ Q; Q⟧ ⟹ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 17 (p. 17) Demostrar&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_1:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  { assume 1: &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
    have 2: &amp;quot;p&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
    have 3: &amp;quot;q&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
    show &amp;quot;q ∧ p&amp;quot; using 3 2 by (rule conjI) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 4: &amp;quot;q ∧ p&amp;quot;&lt;br /&gt;
    have 5: &amp;quot;q&amp;quot; using 4 by (rule conjunct1)&lt;br /&gt;
    have 6: &amp;quot;p&amp;quot; using 4 by (rule conjunct2)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 6 5 by (rule conjI) }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_2:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  { assume 1: &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 1 ..&lt;br /&gt;
    have &amp;quot;q&amp;quot; using 1 ..&lt;br /&gt;
    show &amp;quot;q ∧ p&amp;quot; using `q` `p` .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume 2: &amp;quot;q ∧ p&amp;quot;&lt;br /&gt;
    have &amp;quot;q&amp;quot; using 2 ..&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 2 ..&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using `p` `q`  .. }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_3:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 18 (p. 18). Demostrar&lt;br /&gt;
     p ⟷ q, p ∨ q ⊢ p ∧ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟷ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using 2&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 4: &amp;quot;q&amp;quot; using 1 3 by (rule iffD1)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 3 4 by (rule conjI) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 5: &amp;quot;q&amp;quot;&lt;br /&gt;
    have 6: &amp;quot;p&amp;quot; using 1 5 by (rule iffD2)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 6 5 by (rule conjI) }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_2:&lt;br /&gt;
  assumes &amp;quot;p ⟷ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows  &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using assms(2)&lt;br /&gt;
proof&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    with assms(1) have &amp;quot;q&amp;quot; ..&lt;br /&gt;
    with `p` show &amp;quot;p ∧ q&amp;quot; .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    with assms(1) have &amp;quot;p&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;p ∧ q&amp;quot; using `q` .. }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_3:&lt;br /&gt;
  assumes &amp;quot;p ⟷ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas derivadas *}&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla del modus tollens *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 19 (p. 20) Demostrar la regla del modus tollens a partir de&lt;br /&gt;
  las reglas básicas. &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_1:&lt;br /&gt;
  assumes 1: &amp;quot;F ⟶ G&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬F&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 3: &amp;quot;F&amp;quot;&lt;br /&gt;
  have 4: &amp;quot;G&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  show False using 2 4 by (rule notE)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_2:&lt;br /&gt;
  assumes &amp;quot;F ⟶ G&amp;quot;&lt;br /&gt;
          &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬F&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;F&amp;quot;&lt;br /&gt;
  with assms(1) have &amp;quot;G&amp;quot; ..&lt;br /&gt;
  with assms(2) show False ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_3:&lt;br /&gt;
  assumes &amp;quot;F ⟶ G&amp;quot;&lt;br /&gt;
          &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla de la introducción de la doble negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 21 (p. 21) Demostrar la regla de introducción de la doble&lt;br /&gt;
  negación a partir de las reglas básicas.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_1:&lt;br /&gt;
  assumes 1: &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 2: &amp;quot;¬F&amp;quot;&lt;br /&gt;
  show False using 2 1 by (rule notE)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_2:&lt;br /&gt;
  assumes &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;¬F&amp;quot;&lt;br /&gt;
  thus False using assms ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_3:&lt;br /&gt;
  assumes &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla de reducción al absurdo *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de reducción al absurdo en Isabelle se correponde con la&lt;br /&gt;
  regla clásica de contradicción &lt;br /&gt;
  · ccontr: (¬P ⟹ False) ⟹ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Ley del tercio excluso *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La ley del tercio excluso es &lt;br /&gt;
  · excluded_middle: ¬P ∨ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 22 (p. 23). Demostrar la ley del tercio excluso a partir de&lt;br /&gt;
  las reglas básicas.  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_1:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬(F ∨ ¬F)&amp;quot;&lt;br /&gt;
  thus False&lt;br /&gt;
  proof (rule notE)&lt;br /&gt;
    show &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
    proof (rule disjI2)&lt;br /&gt;
      show &amp;quot;¬F&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume 2: &amp;quot;F&amp;quot;&lt;br /&gt;
        hence 3: &amp;quot;F ∨ ¬F&amp;quot; by (rule disjI1)&lt;br /&gt;
        show False using 1 3 by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
    &lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_2:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume &amp;quot;¬(F ∨ ¬F)&amp;quot;&lt;br /&gt;
  thus False&lt;br /&gt;
  proof (rule notE)&lt;br /&gt;
    show &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
    proof (rule disjI2)&lt;br /&gt;
      show &amp;quot;¬F&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume &amp;quot;F&amp;quot;&lt;br /&gt;
        hence &amp;quot;F ∨ ¬F&amp;quot; ..&lt;br /&gt;
        with `¬(F ∨ ¬F)`show False ..&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
    &lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_3:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 23 (p. 24). Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬p ∨ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; by (rule excluded_middle)&lt;br /&gt;
  thus &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; by (rule disjI1) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
      have &amp;quot;q&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; by (rule disjI2) }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;p&amp;quot;&lt;br /&gt;
      with assms have &amp;quot;q&amp;quot; ..&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; .. }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Demostraciones por contradicción *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 24. Demostrar que &lt;br /&gt;
     ¬p, p ∨ q ⊢ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_1:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
using `p ∨ q`&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms(1) show &amp;quot;q&amp;quot; by contradiction &lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  thus &amp;quot;q&amp;quot; by assumption&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_2:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
using `p ∨ q`&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms(1) show &amp;quot;q&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  thus &amp;quot;q&amp;quot; .&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_3:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_3&amp;diff=148</id>
		<title>Relación 3</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_3&amp;diff=148"/>
		<updated>2013-03-05T12:32:44Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R3: Deducción natural proposicional *}&lt;br /&gt;
&lt;br /&gt;
theory R3&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es demostrar cada uno de los ejercicios&lt;br /&gt;
  usando sólo las reglas básicas de deducción natural de la lógica&lt;br /&gt;
  proposicional (sin usar el método auto).&lt;br /&gt;
&lt;br /&gt;
  Las reglas básicas de la deducción natural son las siguientes:&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · notnotI:    P ⟹ ¬¬ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación. *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Implicaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       p ⟶ q, p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_1a:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;p&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
   show 3: &amp;quot;q&amp;quot; using 1 2 by (rule mp) &lt;br /&gt;
qed&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;Pedro G. Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_2a:&lt;br /&gt;
  assumes 1:&amp;quot;p ⟶ q&amp;quot; and&lt;br /&gt;
          2:&amp;quot;q ⟶ r&amp;quot; and&lt;br /&gt;
          3:&amp;quot;p&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  show 5: &amp;quot;r&amp;quot; using 2 4 by (rule mp) &lt;br /&gt;
qed&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p ⟶ q, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro G. Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_3a:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; and&lt;br /&gt;
          2: &amp;quot;p ⟶ q&amp;quot;       and&lt;br /&gt;
          3: &amp;quot;p&amp;quot;           &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
   have 4: &amp;quot;q ⟶ r&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
   have 5: &amp;quot;q&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
   show 6: &amp;quot;r&amp;quot; using 4 5 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r ⊢ p ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;Pedro G. Ros&amp;quot;&lt;br /&gt;
lemma ejercicio_4a:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  {assume 3:&amp;quot;p&amp;quot; &lt;br /&gt;
    have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
    have 5: &amp;quot;r&amp;quot; using 2 4 by (rule mp)}&lt;br /&gt;
  thus &amp;quot;p⟶ r&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ q ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ (p ⟶ q) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
     p ⊢ q ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;q ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ (q ⟶ r) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(q ⟶ r) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ (r ⟶ s)) ⊢ r ⟶ (q ⟶ (p ⟶ s))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ (r ⟶ s))&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ⟶ (q ⟶ (p ⟶ s))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
  &amp;quot;(p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Conjunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
     p, q ⊢  p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
     p ∧ q ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
     p ∧ (q ∧ r) ⊢ (p ∧ q) ∧ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∧ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∧ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
     (p ∧ q) ∧ r ⊢ p ∧ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
     (p ⟶ q) ∧ (p ⟶ r) ⊢ p ⟶ q ∧ r   &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q ∧ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
     p ⟶ q ∧ r ⊢ (p ⟶ q) ∧ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     p ∧ q ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;p ∧ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
     p ∧ (q ⟶ r) ⊢ (p ⟶ q) ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Disyunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
     p ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
     q ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes &amp;quot;q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar&lt;br /&gt;
     p ∨ p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29:&lt;br /&gt;
  assumes &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar&lt;br /&gt;
     p ⊢ p ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar&lt;br /&gt;
     p ∨ (q ∨ r) ⊢ (p ∨ q) ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar&lt;br /&gt;
     (p ∨ q) ∨ r ⊢ p ∨ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∨ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar&lt;br /&gt;
     p ∧ (q ∨ r) ⊢ (p ∧ q) ∨ (p ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar&lt;br /&gt;
     (p ∧ q) ∨ (p ∧ r) ⊢ p ∧ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar&lt;br /&gt;
     p ∨ (q ∧ r) ⊢ (p ∨ q) ∧ (p ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar&lt;br /&gt;
     (p ∨ q) ∧ (p ∨ r) ⊢ p ∨ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar&lt;br /&gt;
     (p ⟶ r) ∧ (q ⟶ r) ⊢ p ∨ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 38. Demostrar&lt;br /&gt;
     p ∨ q ⟶ r ⊢ (p ⟶ r) ∧ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_38:&lt;br /&gt;
  assumes &amp;quot;p ∨ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Negaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 39. Demostrar&lt;br /&gt;
     p ⊢ ¬¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_39:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_40:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 41. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_41:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p∨q, ¬q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_42:&lt;br /&gt;
  assumes &amp;quot;p∨q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p ∨ q, ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_43:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     p ∨ q ⊢ ¬(¬p ∧ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_44:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 45. Demostrar&lt;br /&gt;
     p ∧ q ⊢ ¬(¬p ∨ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_45:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∨ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 46. Demostrar&lt;br /&gt;
     ¬(p ∨ q) ⊢ ¬p ∧ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_46:&lt;br /&gt;
  assumes &amp;quot;¬(p ∨ q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 47. Demostrar&lt;br /&gt;
     ¬p ∧ ¬q ⊢ ¬(p ∨ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_47:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ ¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(p ∨ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 48. Demostrar&lt;br /&gt;
     ¬p ∨ ¬q ⊢ ¬(p ∧ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_48:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 49. Demostrar&lt;br /&gt;
     ⊢ ¬(p ∧ ¬p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_49:&lt;br /&gt;
  &amp;quot;¬(p ∧ ¬p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 50. Demostrar&lt;br /&gt;
     p ∧ ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_50:&lt;br /&gt;
  assumes &amp;quot;p ∧ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 51. Demostrar&lt;br /&gt;
     ¬¬p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_51:&lt;br /&gt;
  assumes &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 52. Demostrar&lt;br /&gt;
     ⊢ p ∨ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_52:&lt;br /&gt;
  &amp;quot;p ∨ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 53. Demostrar&lt;br /&gt;
     ⊢ ((p ⟶ q) ⟶ p) ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_53:&lt;br /&gt;
  &amp;quot;((p ⟶ q) ⟶ p) ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 54. Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_54:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 55. Demostrar&lt;br /&gt;
     ¬(¬p ∧ ¬q) ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_55:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 56. Demostrar&lt;br /&gt;
     ¬(¬p ∨ ¬q) ⊢ p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_56:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∨ ¬q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 57. Demostrar&lt;br /&gt;
     ¬(p ∧ q) ⊢ ¬p ∨ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_57:&lt;br /&gt;
  assumes &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 58. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ q) ∨ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_58:&lt;br /&gt;
  &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_3&amp;diff=147</id>
		<title>Relación 3</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_3&amp;diff=147"/>
		<updated>2013-03-05T09:58:47Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Deshecha la edición 146 de Jalonso (disc.)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R3: Deducción natural proposicional *}&lt;br /&gt;
&lt;br /&gt;
theory R3&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es demostrar cada uno de los ejercicios&lt;br /&gt;
  usando sólo las reglas básicas de deducción natural de la lógica&lt;br /&gt;
  proposicional (sin usar el método auto).&lt;br /&gt;
&lt;br /&gt;
  Las reglas básicas de la deducción natural son las siguientes:&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · notnotI:    P ⟹ ¬¬ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación. *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Implicaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       p ⟶ q, p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
text {* Pedro G. Ros *}&lt;br /&gt;
lemma ejercicio_1:&lt;br /&gt;
  assumes 1: &amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;p&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof -&lt;br /&gt;
   show 3: &amp;quot;q&amp;quot; using 1 2 by (rule mp) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
lemma ejercicio_2:&lt;br /&gt;
  assumes 1:&amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot; and&lt;br /&gt;
          2:&amp;quot;q \&amp;lt;longrightarrow&amp;gt; r&amp;quot; and&lt;br /&gt;
          3:&amp;quot;p&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  show 5: &amp;quot;r&amp;quot; using 2 4 by (rule mp) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p ⟶ q, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_3:&lt;br /&gt;
  assumes 1: &amp;quot;p \&amp;lt;longrightarrow&amp;gt; (q \&amp;lt;longrightarrow&amp;gt; r)&amp;quot; and&lt;br /&gt;
          2: &amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot;       and&lt;br /&gt;
          3: &amp;quot;p&amp;quot;           &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
   have 4: &amp;quot;q \&amp;lt;longrightarrow&amp;gt; r&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
   have 5: &amp;quot;q&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
   show 6: &amp;quot;r&amp;quot; using 4 5 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r ⊢ p ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_4:&lt;br /&gt;
  assumes 1: &amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;q \&amp;lt;longrightarrow&amp;gt; r&amp;quot; &lt;br /&gt;
  shows &amp;quot;p \&amp;lt;longrightarrow&amp;gt; r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
 {assume 3:&amp;quot;p&amp;quot; &lt;br /&gt;
   have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
   have 5: &amp;quot;r&amp;quot; using 2 4 by (rule mp)}&lt;br /&gt;
thus &amp;quot;p\&amp;lt;longrightarrow&amp;gt; r&amp;quot; by (rule impI)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ q ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ (p ⟶ q) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
     p ⊢ q ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;q ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ (q ⟶ r) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(q ⟶ r) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ (r ⟶ s)) ⊢ r ⟶ (q ⟶ (p ⟶ s))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ (r ⟶ s))&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ⟶ (q ⟶ (p ⟶ s))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
  &amp;quot;(p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Conjunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
     p, q ⊢  p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
text {* Pedro G. Ros }&lt;br /&gt;
lemma ejercicio_13:&lt;br /&gt;
  assumes 1:&amp;quot;p&amp;quot; and&lt;br /&gt;
          2:&amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot; using 1 2 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_14:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
     p ∧ q ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;q&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
     p ∧ (q ∧ r) ⊢ (p ∧ q) ∧ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_16:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;and&amp;gt; (q \&amp;lt;and&amp;gt; r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(p \&amp;lt;and&amp;gt; q)\&amp;lt;and&amp;gt; r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 1: &amp;quot;p&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
have 2: &amp;quot;(q \&amp;lt;and&amp;gt; r)&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
have 3: &amp;quot;q&amp;quot; using 2 by (rule conjunct1)&lt;br /&gt;
have 4: &amp;quot;r&amp;quot; using 2 by (rule conjunct2)&lt;br /&gt;
have 5: &amp;quot;(p\&amp;lt;and&amp;gt;q)&amp;quot; using 1 3 by (rule conjI)&lt;br /&gt;
show 6: &amp;quot;(p\&amp;lt;and&amp;gt;q) \&amp;lt;and&amp;gt; r&amp;quot; using 5 4 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
     (p ∧ q) ∧ r ⊢ p ∧ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_17:&lt;br /&gt;
  assumes &amp;quot;(p\&amp;lt;and&amp;gt; q) \&amp;lt;and&amp;gt; r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p \&amp;lt;and&amp;gt; (q\&amp;lt;and&amp;gt; r)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 1: &amp;quot;r&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
have 2: &amp;quot;(p\&amp;lt;and&amp;gt;q)&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
have 3: &amp;quot;p&amp;quot; using 2 by (rule conjunct1)&lt;br /&gt;
have 4: &amp;quot;q&amp;quot; using 2 by (rule conjunct2)&lt;br /&gt;
have 5: &amp;quot;(q\&amp;lt;and&amp;gt;r)&amp;quot; using 4 1 by (rule conjI)&lt;br /&gt;
show 6: &amp;quot;p\&amp;lt;and&amp;gt;(q\&amp;lt;and&amp;gt;r)&amp;quot; using 3 5 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 1: &amp;quot;q&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
show &amp;quot;p\&amp;lt;longrightarrow&amp;gt; q&amp;quot; using 1 by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
     (p ⟶ q) ∧ (p ⟶ r) ⊢ p ⟶ q ∧ r   &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q ∧ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
     p ⟶ q ∧ r ⊢ (p ⟶ q) ∧ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     p ∧ q ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;p ∧ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
     p ∧ (q ⟶ r) ⊢ (p ⟶ q) ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Disyunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
     p ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
text {* Pedro G. Ros }&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p \&amp;lt;or&amp;gt; q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p\&amp;lt;or&amp;gt;q&amp;quot; using assms by (rule disjI1)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
     q ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes &amp;quot;q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p \&amp;lt;or&amp;gt; q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p\&amp;lt;or&amp;gt;q&amp;quot; using assms by (rule disjI2)&lt;br /&gt;
qed&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;or&amp;gt; q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q \&amp;lt;or&amp;gt; p&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
have &amp;quot;p \&amp;lt;or&amp;gt; q&amp;quot; using assms by this&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;q \&amp;lt;or&amp;gt; p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    have &amp;quot;q \&amp;lt;or&amp;gt; p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  ultimately show &amp;quot;q \&amp;lt;or&amp;gt; p&amp;quot; by (rule disjE) &lt;br /&gt;
qed  &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar&lt;br /&gt;
     p ∨ p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29:&lt;br /&gt;
  assumes &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar&lt;br /&gt;
     p ⊢ p ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar&lt;br /&gt;
     p ∨ (q ∨ r) ⊢ (p ∨ q) ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar&lt;br /&gt;
     (p ∨ q) ∨ r ⊢ p ∨ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∨ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar&lt;br /&gt;
     p ∧ (q ∨ r) ⊢ (p ∧ q) ∨ (p ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar&lt;br /&gt;
     (p ∧ q) ∨ (p ∧ r) ⊢ p ∧ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar&lt;br /&gt;
     p ∨ (q ∧ r) ⊢ (p ∨ q) ∧ (p ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar&lt;br /&gt;
     (p ∨ q) ∧ (p ∨ r) ⊢ p ∨ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar&lt;br /&gt;
     (p ⟶ r) ∧ (q ⟶ r) ⊢ p ∨ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 38. Demostrar&lt;br /&gt;
     p ∨ q ⟶ r ⊢ (p ⟶ r) ∧ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_38:&lt;br /&gt;
  assumes &amp;quot;p ∨ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Negaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 39. Demostrar&lt;br /&gt;
     p ⊢ ¬¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
lemma ejercicio_39:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;not&amp;gt;\&amp;lt;not&amp;gt;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;\&amp;lt;not&amp;gt;\&amp;lt;not&amp;gt;p&amp;quot; using assms by (rule notnotI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_40:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 41. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_41:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p∨q, ¬q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_42:&lt;br /&gt;
  assumes &amp;quot;p∨q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p ∨ q, ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_43:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     p ∨ q ⊢ ¬(¬p ∧ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_44:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 45. Demostrar&lt;br /&gt;
     p ∧ q ⊢ ¬(¬p ∨ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_45:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∨ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 46. Demostrar&lt;br /&gt;
     ¬(p ∨ q) ⊢ ¬p ∧ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_46:&lt;br /&gt;
  assumes &amp;quot;¬(p ∨ q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 47. Demostrar&lt;br /&gt;
     ¬p ∧ ¬q ⊢ ¬(p ∨ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_47:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ ¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(p ∨ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 48. Demostrar&lt;br /&gt;
     ¬p ∨ ¬q ⊢ ¬(p ∧ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_48:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 49. Demostrar&lt;br /&gt;
     ⊢ ¬(p ∧ ¬p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_49:&lt;br /&gt;
  &amp;quot;¬(p ∧ ¬p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 50. Demostrar&lt;br /&gt;
     p ∧ ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_50:&lt;br /&gt;
  assumes &amp;quot;p ∧ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 51. Demostrar&lt;br /&gt;
     ¬¬p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_51:&lt;br /&gt;
  assumes &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 52. Demostrar&lt;br /&gt;
     ⊢ p ∨ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_52:&lt;br /&gt;
  &amp;quot;p ∨ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 53. Demostrar&lt;br /&gt;
     ⊢ ((p ⟶ q) ⟶ p) ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_53:&lt;br /&gt;
  &amp;quot;((p ⟶ q) ⟶ p) ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 54. Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_54:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 55. Demostrar&lt;br /&gt;
     ¬(¬p ∧ ¬q) ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_55:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 56. Demostrar&lt;br /&gt;
     ¬(¬p ∨ ¬q) ⊢ p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_56:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∨ ¬q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 57. Demostrar&lt;br /&gt;
     ¬(p ∧ q) ⊢ ¬p ∨ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_57:&lt;br /&gt;
  assumes &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 58. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ q) ∨ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_58:&lt;br /&gt;
  &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_3&amp;diff=146</id>
		<title>Relación 3</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_3&amp;diff=146"/>
		<updated>2013-03-05T09:57:59Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R3: Deducción natural proposicional *}&lt;br /&gt;
&lt;br /&gt;
theory R3&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es demostrar cada uno de los ejercicios&lt;br /&gt;
  usando sólo las reglas básicas de deducción natural de la lógica&lt;br /&gt;
  proposicional (sin usar el método auto).&lt;br /&gt;
&lt;br /&gt;
  Las reglas básicas de la deducción natural son las siguientes:&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · notnotI:    P ⟹ ¬¬ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación. *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Implicaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       p ⟶ q, p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
text {* Pedro G. Ros *}&lt;br /&gt;
lemma ejercicio_1:&lt;br /&gt;
  assumes 1: &amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;p&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof -&lt;br /&gt;
   show 3: &amp;quot;q&amp;quot; using 1 2 by (rule mp) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R3: Deducción natural proposicional *}&lt;br /&gt;
&lt;br /&gt;
theory R3&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es demostrar cada uno de los ejercicios&lt;br /&gt;
  usando sólo las reglas básicas de deducción natural de la lógica&lt;br /&gt;
  proposicional (sin usar el método auto).&lt;br /&gt;
&lt;br /&gt;
  Las reglas básicas de la deducción natural son las siguientes:&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · notnotI:    P ⟹ ¬¬ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación. *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Implicaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       p ⟶ q, p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
text {* Pedro G. Ros *}&lt;br /&gt;
lemma ejercicio_1:&lt;br /&gt;
  assumes 1: &amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;p&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
&lt;br /&gt;
proof -&lt;br /&gt;
   show 3: &amp;quot;q&amp;quot; using 1 2 by (rule mp) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
lemma ejercicio_2:&lt;br /&gt;
  assumes 1:&amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot; and&lt;br /&gt;
          2:&amp;quot;q \&amp;lt;longrightarrow&amp;gt; r&amp;quot; and&lt;br /&gt;
          3:&amp;quot;p&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  show 5: &amp;quot;r&amp;quot; using 2 4 by (rule mp) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p ⟶ q, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_3:&lt;br /&gt;
  assumes 1: &amp;quot;p \&amp;lt;longrightarrow&amp;gt; (q \&amp;lt;longrightarrow&amp;gt; r)&amp;quot; and&lt;br /&gt;
          2: &amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot;       and&lt;br /&gt;
          3: &amp;quot;p&amp;quot;           &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
   have 4: &amp;quot;q \&amp;lt;longrightarrow&amp;gt; r&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
   have 5: &amp;quot;q&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
   show 6: &amp;quot;r&amp;quot; using 4 5 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r ⊢ p ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_4:&lt;br /&gt;
  assumes 1: &amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;q \&amp;lt;longrightarrow&amp;gt; r&amp;quot; &lt;br /&gt;
  shows &amp;quot;p \&amp;lt;longrightarrow&amp;gt; r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
 {assume 3:&amp;quot;p&amp;quot; &lt;br /&gt;
   have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
   have 5: &amp;quot;r&amp;quot; using 2 4 by (rule mp)}&lt;br /&gt;
thus &amp;quot;p\&amp;lt;longrightarrow&amp;gt; r&amp;quot; by (rule impI)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ q ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ (p ⟶ q) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
     p ⊢ q ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;q ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ (q ⟶ r) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(q ⟶ r) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ (r ⟶ s)) ⊢ r ⟶ (q ⟶ (p ⟶ s))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ (r ⟶ s))&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ⟶ (q ⟶ (p ⟶ s))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
  &amp;quot;(p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Conjunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
     p, q ⊢  p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
text {* Pedro G. Ros }&lt;br /&gt;
lemma ejercicio_13:&lt;br /&gt;
  assumes 1:&amp;quot;p&amp;quot; and&lt;br /&gt;
          2:&amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot; using 1 2 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_14:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
     p ∧ q ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;q&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
     p ∧ (q ∧ r) ⊢ (p ∧ q) ∧ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_16:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;and&amp;gt; (q \&amp;lt;and&amp;gt; r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(p \&amp;lt;and&amp;gt; q)\&amp;lt;and&amp;gt; r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 1: &amp;quot;p&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
have 2: &amp;quot;(q \&amp;lt;and&amp;gt; r)&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
have 3: &amp;quot;q&amp;quot; using 2 by (rule conjunct1)&lt;br /&gt;
have 4: &amp;quot;r&amp;quot; using 2 by (rule conjunct2)&lt;br /&gt;
have 5: &amp;quot;(p\&amp;lt;and&amp;gt;q)&amp;quot; using 1 3 by (rule conjI)&lt;br /&gt;
show 6: &amp;quot;(p\&amp;lt;and&amp;gt;q) \&amp;lt;and&amp;gt; r&amp;quot; using 5 4 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
     (p ∧ q) ∧ r ⊢ p ∧ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_17:&lt;br /&gt;
  assumes &amp;quot;(p\&amp;lt;and&amp;gt; q) \&amp;lt;and&amp;gt; r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p \&amp;lt;and&amp;gt; (q\&amp;lt;and&amp;gt; r)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 1: &amp;quot;r&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
have 2: &amp;quot;(p\&amp;lt;and&amp;gt;q)&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
have 3: &amp;quot;p&amp;quot; using 2 by (rule conjunct1)&lt;br /&gt;
have 4: &amp;quot;q&amp;quot; using 2 by (rule conjunct2)&lt;br /&gt;
have 5: &amp;quot;(q\&amp;lt;and&amp;gt;r)&amp;quot; using 4 1 by (rule conjI)&lt;br /&gt;
show 6: &amp;quot;p\&amp;lt;and&amp;gt;(q\&amp;lt;and&amp;gt;r)&amp;quot; using 3 5 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 1: &amp;quot;q&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
show &amp;quot;p\&amp;lt;longrightarrow&amp;gt; q&amp;quot; using 1 by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
     (p ⟶ q) ∧ (p ⟶ r) ⊢ p ⟶ q ∧ r   &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q ∧ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
     p ⟶ q ∧ r ⊢ (p ⟶ q) ∧ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     p ∧ q ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;p ∧ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
     p ∧ (q ⟶ r) ⊢ (p ⟶ q) ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Disyunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
     p ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
text {* Pedro G. Ros }&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p \&amp;lt;or&amp;gt; q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p\&amp;lt;or&amp;gt;q&amp;quot; using assms by (rule disjI1)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
     q ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes &amp;quot;q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p \&amp;lt;or&amp;gt; q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p\&amp;lt;or&amp;gt;q&amp;quot; using assms by (rule disjI2)&lt;br /&gt;
qed&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;or&amp;gt; q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q \&amp;lt;or&amp;gt; p&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
have &amp;quot;p \&amp;lt;or&amp;gt; q&amp;quot; using assms by this&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;q \&amp;lt;or&amp;gt; p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    have &amp;quot;q \&amp;lt;or&amp;gt; p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  ultimately show &amp;quot;q \&amp;lt;or&amp;gt; p&amp;quot; by (rule disjE) &lt;br /&gt;
qed  &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar&lt;br /&gt;
     p ∨ p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29:&lt;br /&gt;
  assumes &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar&lt;br /&gt;
     p ⊢ p ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar&lt;br /&gt;
     p ∨ (q ∨ r) ⊢ (p ∨ q) ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar&lt;br /&gt;
     (p ∨ q) ∨ r ⊢ p ∨ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∨ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar&lt;br /&gt;
     p ∧ (q ∨ r) ⊢ (p ∧ q) ∨ (p ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar&lt;br /&gt;
     (p ∧ q) ∨ (p ∧ r) ⊢ p ∧ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar&lt;br /&gt;
     p ∨ (q ∧ r) ⊢ (p ∨ q) ∧ (p ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar&lt;br /&gt;
     (p ∨ q) ∧ (p ∨ r) ⊢ p ∨ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar&lt;br /&gt;
     (p ⟶ r) ∧ (q ⟶ r) ⊢ p ∨ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 38. Demostrar&lt;br /&gt;
     p ∨ q ⟶ r ⊢ (p ⟶ r) ∧ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_38:&lt;br /&gt;
  assumes &amp;quot;p ∨ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Negaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 39. Demostrar&lt;br /&gt;
     p ⊢ ¬¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
lemma ejercicio_39:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;not&amp;gt;\&amp;lt;not&amp;gt;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;\&amp;lt;not&amp;gt;\&amp;lt;not&amp;gt;p&amp;quot; using assms by (rule notnotI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_40:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 41. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_41:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p∨q, ¬q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_42:&lt;br /&gt;
  assumes &amp;quot;p∨q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p ∨ q, ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_43:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     p ∨ q ⊢ ¬(¬p ∧ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_44:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 45. Demostrar&lt;br /&gt;
     p ∧ q ⊢ ¬(¬p ∨ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_45:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∨ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 46. Demostrar&lt;br /&gt;
     ¬(p ∨ q) ⊢ ¬p ∧ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_46:&lt;br /&gt;
  assumes &amp;quot;¬(p ∨ q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 47. Demostrar&lt;br /&gt;
     ¬p ∧ ¬q ⊢ ¬(p ∨ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_47:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ ¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(p ∨ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 48. Demostrar&lt;br /&gt;
     ¬p ∨ ¬q ⊢ ¬(p ∧ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_48:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 49. Demostrar&lt;br /&gt;
     ⊢ ¬(p ∧ ¬p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_49:&lt;br /&gt;
  &amp;quot;¬(p ∧ ¬p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 50. Demostrar&lt;br /&gt;
     p ∧ ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_50:&lt;br /&gt;
  assumes &amp;quot;p ∧ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 51. Demostrar&lt;br /&gt;
     ¬¬p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_51:&lt;br /&gt;
  assumes &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 52. Demostrar&lt;br /&gt;
     ⊢ p ∨ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_52:&lt;br /&gt;
  &amp;quot;p ∨ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 53. Demostrar&lt;br /&gt;
     ⊢ ((p ⟶ q) ⟶ p) ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_53:&lt;br /&gt;
  &amp;quot;((p ⟶ q) ⟶ p) ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 54. Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_54:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 55. Demostrar&lt;br /&gt;
     ¬(¬p ∧ ¬q) ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_55:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 56. Demostrar&lt;br /&gt;
     ¬(¬p ∨ ¬q) ⊢ p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_56:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∨ ¬q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 57. Demostrar&lt;br /&gt;
     ¬(p ∧ q) ⊢ ¬p ∨ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_57:&lt;br /&gt;
  assumes &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 58. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ q) ∨ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_58:&lt;br /&gt;
  &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
lemma ejercicio_2:&lt;br /&gt;
  assumes 1:&amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot; and&lt;br /&gt;
          2:&amp;quot;q \&amp;lt;longrightarrow&amp;gt; r&amp;quot; and&lt;br /&gt;
          3:&amp;quot;p&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  show 5: &amp;quot;r&amp;quot; using 2 4 by (rule mp) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p ⟶ q, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_3:&lt;br /&gt;
  assumes 1: &amp;quot;p \&amp;lt;longrightarrow&amp;gt; (q \&amp;lt;longrightarrow&amp;gt; r)&amp;quot; and&lt;br /&gt;
          2: &amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot;       and&lt;br /&gt;
          3: &amp;quot;p&amp;quot;           &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
   have 4: &amp;quot;q \&amp;lt;longrightarrow&amp;gt; r&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
   have 5: &amp;quot;q&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
   show 6: &amp;quot;r&amp;quot; using 4 5 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r ⊢ p ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_4:&lt;br /&gt;
  assumes 1: &amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;q \&amp;lt;longrightarrow&amp;gt; r&amp;quot; &lt;br /&gt;
  shows &amp;quot;p \&amp;lt;longrightarrow&amp;gt; r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
 {assume 3:&amp;quot;p&amp;quot; &lt;br /&gt;
   have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
   have 5: &amp;quot;r&amp;quot; using 2 4 by (rule mp)}&lt;br /&gt;
thus &amp;quot;p\&amp;lt;longrightarrow&amp;gt; r&amp;quot; by (rule impI)&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ q ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ (p ⟶ q) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
     p ⊢ q ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;q ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ (q ⟶ r) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(q ⟶ r) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ (r ⟶ s)) ⊢ r ⟶ (q ⟶ (p ⟶ s))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ (r ⟶ s))&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ⟶ (q ⟶ (p ⟶ s))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
  &amp;quot;(p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Conjunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
     p, q ⊢  p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
text {* Pedro G. Ros }&lt;br /&gt;
lemma ejercicio_13:&lt;br /&gt;
  assumes 1:&amp;quot;p&amp;quot; and&lt;br /&gt;
          2:&amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot; using 1 2 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_14:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
     p ∧ q ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_15:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;q&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
     p ∧ (q ∧ r) ⊢ (p ∧ q) ∧ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_16:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;and&amp;gt; (q \&amp;lt;and&amp;gt; r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(p \&amp;lt;and&amp;gt; q)\&amp;lt;and&amp;gt; r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 1: &amp;quot;p&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
have 2: &amp;quot;(q \&amp;lt;and&amp;gt; r)&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
have 3: &amp;quot;q&amp;quot; using 2 by (rule conjunct1)&lt;br /&gt;
have 4: &amp;quot;r&amp;quot; using 2 by (rule conjunct2)&lt;br /&gt;
have 5: &amp;quot;(p\&amp;lt;and&amp;gt;q)&amp;quot; using 1 3 by (rule conjI)&lt;br /&gt;
show 6: &amp;quot;(p\&amp;lt;and&amp;gt;q) \&amp;lt;and&amp;gt; r&amp;quot; using 5 4 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
     (p ∧ q) ∧ r ⊢ p ∧ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_17:&lt;br /&gt;
  assumes &amp;quot;(p\&amp;lt;and&amp;gt; q) \&amp;lt;and&amp;gt; r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p \&amp;lt;and&amp;gt; (q\&amp;lt;and&amp;gt; r)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 1: &amp;quot;r&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
have 2: &amp;quot;(p\&amp;lt;and&amp;gt;q)&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
have 3: &amp;quot;p&amp;quot; using 2 by (rule conjunct1)&lt;br /&gt;
have 4: &amp;quot;q&amp;quot; using 2 by (rule conjunct2)&lt;br /&gt;
have 5: &amp;quot;(q\&amp;lt;and&amp;gt;r)&amp;quot; using 4 1 by (rule conjI)&lt;br /&gt;
show 6: &amp;quot;p\&amp;lt;and&amp;gt;(q\&amp;lt;and&amp;gt;r)&amp;quot; using 3 5 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;and&amp;gt; q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p \&amp;lt;longrightarrow&amp;gt; q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
have 1: &amp;quot;q&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
show &amp;quot;p\&amp;lt;longrightarrow&amp;gt; q&amp;quot; using 1 by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
     (p ⟶ q) ∧ (p ⟶ r) ⊢ p ⟶ q ∧ r   &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q ∧ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
     p ⟶ q ∧ r ⊢ (p ⟶ q) ∧ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     p ∧ q ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;p ∧ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
     p ∧ (q ⟶ r) ⊢ (p ⟶ q) ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Disyunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
     p ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
text {* Pedro G. Ros }&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p \&amp;lt;or&amp;gt; q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p\&amp;lt;or&amp;gt;q&amp;quot; using assms by (rule disjI1)&lt;br /&gt;
qed&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
     q ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes &amp;quot;q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p \&amp;lt;or&amp;gt; q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p\&amp;lt;or&amp;gt;q&amp;quot; using assms by (rule disjI2)&lt;br /&gt;
qed&lt;br /&gt;
 &lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
 &lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes &amp;quot;p \&amp;lt;or&amp;gt; q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q \&amp;lt;or&amp;gt; p&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
have &amp;quot;p \&amp;lt;or&amp;gt; q&amp;quot; using assms by this&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;q \&amp;lt;or&amp;gt; p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    have &amp;quot;q \&amp;lt;or&amp;gt; p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  ultimately show &amp;quot;q \&amp;lt;or&amp;gt; p&amp;quot; by (rule disjE) &lt;br /&gt;
qed  &lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar&lt;br /&gt;
     p ∨ p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29:&lt;br /&gt;
  assumes &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar&lt;br /&gt;
     p ⊢ p ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar&lt;br /&gt;
     p ∨ (q ∨ r) ⊢ (p ∨ q) ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar&lt;br /&gt;
     (p ∨ q) ∨ r ⊢ p ∨ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∨ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar&lt;br /&gt;
     p ∧ (q ∨ r) ⊢ (p ∧ q) ∨ (p ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar&lt;br /&gt;
     (p ∧ q) ∨ (p ∧ r) ⊢ p ∧ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar&lt;br /&gt;
     p ∨ (q ∧ r) ⊢ (p ∨ q) ∧ (p ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar&lt;br /&gt;
     (p ∨ q) ∧ (p ∨ r) ⊢ p ∨ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar&lt;br /&gt;
     (p ⟶ r) ∧ (q ⟶ r) ⊢ p ∨ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 38. Demostrar&lt;br /&gt;
     p ∨ q ⟶ r ⊢ (p ⟶ r) ∧ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_38:&lt;br /&gt;
  assumes &amp;quot;p ∨ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Negaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 39. Demostrar&lt;br /&gt;
     p ⊢ ¬¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
lemma ejercicio_39:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;\&amp;lt;not&amp;gt;\&amp;lt;not&amp;gt;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;\&amp;lt;not&amp;gt;\&amp;lt;not&amp;gt;p&amp;quot; using assms by (rule notnotI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_40:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 41. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_41:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p∨q, ¬q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_42:&lt;br /&gt;
  assumes &amp;quot;p∨q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p ∨ q, ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_43:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     p ∨ q ⊢ ¬(¬p ∧ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_44:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 45. Demostrar&lt;br /&gt;
     p ∧ q ⊢ ¬(¬p ∨ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_45:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∨ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 46. Demostrar&lt;br /&gt;
     ¬(p ∨ q) ⊢ ¬p ∧ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_46:&lt;br /&gt;
  assumes &amp;quot;¬(p ∨ q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 47. Demostrar&lt;br /&gt;
     ¬p ∧ ¬q ⊢ ¬(p ∨ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_47:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ ¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(p ∨ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 48. Demostrar&lt;br /&gt;
     ¬p ∨ ¬q ⊢ ¬(p ∧ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_48:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 49. Demostrar&lt;br /&gt;
     ⊢ ¬(p ∧ ¬p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_49:&lt;br /&gt;
  &amp;quot;¬(p ∧ ¬p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 50. Demostrar&lt;br /&gt;
     p ∧ ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_50:&lt;br /&gt;
  assumes &amp;quot;p ∧ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 51. Demostrar&lt;br /&gt;
     ¬¬p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_51:&lt;br /&gt;
  assumes &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 52. Demostrar&lt;br /&gt;
     ⊢ p ∨ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_52:&lt;br /&gt;
  &amp;quot;p ∨ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 53. Demostrar&lt;br /&gt;
     ⊢ ((p ⟶ q) ⟶ p) ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_53:&lt;br /&gt;
  &amp;quot;((p ⟶ q) ⟶ p) ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 54. Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_54:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 55. Demostrar&lt;br /&gt;
     ¬(¬p ∧ ¬q) ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_55:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 56. Demostrar&lt;br /&gt;
     ¬(¬p ∨ ¬q) ⊢ p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_56:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∨ ¬q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 57. Demostrar&lt;br /&gt;
     ¬(p ∧ q) ⊢ ¬p ∨ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_57:&lt;br /&gt;
  assumes &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 58. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ q) ∨ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_58:&lt;br /&gt;
  &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_2&amp;diff=136</id>
		<title>Tema 2</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_2&amp;diff=136"/>
		<updated>2013-03-04T18:26:56Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* Tema 2: Deducción natural proposicional con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory T2&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  En esta sección se presentan los ejemplos del tema de deducción natural&lt;br /&gt;
  proposicional siguiendo la presentación de Huth y Ryan en su libro&lt;br /&gt;
  &amp;quot;Logic in Computer Science&amp;quot; http://goo.gl/qsVpY y, más concretamente,&lt;br /&gt;
  a la forma como se explica en la asignatura de &amp;quot;Lógica matemática y    &lt;br /&gt;
  fundamentos&amp;quot; (LMF) http://goo.gl/uJj8d&lt;br /&gt;
 &lt;br /&gt;
  La página al lado de cada ejemplo indica la página de las transparencias &lt;br /&gt;
  de LMF donde se encuentra la demostración. *}&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la conjunción *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 1 (p. 4). Demostrar que&lt;br /&gt;
     p ∧ q, r ⊢ q ∧ r.&lt;br /&gt;
  *}     &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_1_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;r&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;q&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  show 4: &amp;quot;q ∧ r&amp;quot; using 3 2 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Notas sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assumes&amp;quot; para indicar las hipótesis,&lt;br /&gt;
  · &amp;quot;and&amp;quot; para separar las hipótesis,&lt;br /&gt;
  · &amp;quot;shows&amp;quot; para indicar la conclusión,&lt;br /&gt;
  · &amp;quot;proof&amp;quot; para iniciar la prueba,&lt;br /&gt;
  · &amp;quot;qed&amp;quot; para terminar la pruebas,&lt;br /&gt;
  · &amp;quot;-&amp;quot; (después de &amp;quot;proof&amp;quot;) para no usar el método por defecto,&lt;br /&gt;
  · &amp;quot;have&amp;quot; para establecer un paso,&lt;br /&gt;
  · &amp;quot;using&amp;quot; para usar hechos en un paso,&lt;br /&gt;
  · &amp;quot;by (rule ..)&amp;quot; para indicar la regla con la que se peueba un hecho,&lt;br /&gt;
  · &amp;quot;show&amp;quot; para establecer la conclusión.&lt;br /&gt;
&lt;br /&gt;
  Notas sobre la lógica: Las reglas de la conjunción son&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden dejar implícitas las reglas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_2:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;r&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;q&amp;quot; using 1 .. &lt;br /&gt;
  show 4: &amp;quot;q ∧ r&amp;quot; using 3 2 ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;..&amp;quot; para indicar que se prueba por la regla correspondiente. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden eliminar las etiquetas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_3:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(1) ..&lt;br /&gt;
  thus &amp;quot;q ∧ r&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assms(n)&amp;quot; para indicar la hipótesis n y&lt;br /&gt;
  · &amp;quot;thus&amp;quot; para demostrar la conclusión usando el hecho anterior.&lt;br /&gt;
  Además, no es necesario usar and entre las hipótesis. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede automatizar la demostración como sigue *}&lt;br /&gt;
  &lt;br /&gt;
lemma ejemplo_1_4:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assms&amp;quot; para indicar las hipótesis y&lt;br /&gt;
  · &amp;quot;by auto&amp;quot; para demostrar la conclusión automáticamente. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede automatizar totalmente la demostración como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_5:&lt;br /&gt;
  &amp;quot;⟦p ∧ q; r⟧ ⟹ q ∧ r&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;⟦ ... ⟧&amp;quot; para representar las hipótesis,&lt;br /&gt;
  · &amp;quot;;&amp;quot; para separar las hipótesis y&lt;br /&gt;
  · &amp;quot;⟹&amp;quot; para separar las hipótesis de la conclusión. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede hacer la demostración por razonamiento hacia atrás,&lt;br /&gt;
  como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_6:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
      and &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof (rule conjI)&lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1) by (rule conjunct2)&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;r&amp;quot; using assms(2) by this&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;proof (rule r)&amp;quot; para indicar que se hará la demostración con la&lt;br /&gt;
    regla r,&lt;br /&gt;
  · &amp;quot;next&amp;quot; para indicar el comienzo de la prueba del siguiente&lt;br /&gt;
    subobjetivo,&lt;br /&gt;
  · &amp;quot;this&amp;quot; para indicar el hecho actual. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden dejar implícitas las reglas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_7:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1) ..&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;r&amp;quot; using assms(2) . &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;.&amp;quot; para indicar por el hecho actual. *}&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la doble negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación de la doble negación es&lt;br /&gt;
  · notnotD: ¬¬ P ⟹ P&lt;br /&gt;
&lt;br /&gt;
  Para ajustarnos al tema de LI vamos a introducir la siguiente regla de&lt;br /&gt;
  introducción de la doble negación&lt;br /&gt;
  · notnotI: P ⟹ ¬¬ P&lt;br /&gt;
  aunque, de momento, no detallamos su demostración.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI [intro!]: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 2. (p. 5)&lt;br /&gt;
       p, ¬¬(q ∧ r) ⊢ ¬¬p ∧ r&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_1:&lt;br /&gt;
  assumes 1: &amp;quot;p&amp;quot; and&lt;br /&gt;
          2: &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows      &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬p&amp;quot; using 1 by (rule notnotI)&lt;br /&gt;
  have 4: &amp;quot;q ∧ r&amp;quot; using 2 by (rule notnotD)&lt;br /&gt;
  have 5: &amp;quot;r&amp;quot; using 4 by (rule conjunct2)&lt;br /&gt;
  show 6: &amp;quot;¬¬p ∧ r&amp;quot; using 3 5 by (rule conjI)&lt;br /&gt;
qed        &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_2:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have  &amp;quot;¬¬p&amp;quot; using assms(1) ..&lt;br /&gt;
  have  &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD)&lt;br /&gt;
  hence &amp;quot;r&amp;quot; ..&lt;br /&gt;
  with `¬¬p` show  &amp;quot;¬¬p ∧ r&amp;quot; ..&lt;br /&gt;
qed        &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;hence&amp;quot; para indicar que se tiene por el hecho anterior y&lt;br /&gt;
  · `...` para referenciar un hecho. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_3:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* Se puede demostrar hacia atrás *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_2_4:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof  (rule conjI)&lt;br /&gt;
  show &amp;quot;¬¬p&amp;quot; using assms(1) by (rule notnotI)&lt;br /&gt;
next&lt;br /&gt;
  have &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD) &lt;br /&gt;
  thus &amp;quot;r&amp;quot; by (rule conjunct2)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* Se puede eliminar las reglas en la demostración anterior, como&lt;br /&gt;
  sigue: *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_2_5:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;¬¬p&amp;quot; using assms(1) ..&lt;br /&gt;
next&lt;br /&gt;
  have &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD) &lt;br /&gt;
  thus &amp;quot;r&amp;quot; .. &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de eliminación del condicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación del condicional es la regla del modus ponens&lt;br /&gt;
  · mp: ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 3. (p. 6) Demostar que&lt;br /&gt;
     ¬p ∧ q, ¬p ∧ q ⟶ r ∨ ¬p ⊢ r ∨ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ∧ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows      &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;r ∨ ¬p&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_2:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;r ∨ ¬p&amp;quot; using assms(2,1) ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_3:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 4 (p. 6) Demostrar que&lt;br /&gt;
     p, p ⟶ q, p ⟶ (q ⟶ r) ⊢ r&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_1:&lt;br /&gt;
  assumes 1: &amp;quot;p&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ⟶ q&amp;quot; and &lt;br /&gt;
          3: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;q ⟶ r&amp;quot; using 3 1 by (rule mp)&lt;br /&gt;
  show 6: &amp;quot;r&amp;quot; using 5 4 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_2:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(2,1) .. &lt;br /&gt;
  have &amp;quot;q ⟶ r&amp;quot; using assms(3,1) ..&lt;br /&gt;
  thus &amp;quot;r&amp;quot; using `q` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_3:&lt;br /&gt;
  &amp;quot;⟦p; p ⟶ q; p ⟶ (q ⟶ r)⟧ ⟹ r&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla derivada del modus tollens *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Para ajustarnos al tema de LI vamos a introducir la regla del modus&lt;br /&gt;
  tollens&lt;br /&gt;
  · mt: ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  aunque, de momento, sin detallar su demostración.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 5 (p. 7). Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p, ¬r ⊢ ¬q&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p&amp;quot; and &lt;br /&gt;
          3: &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q ⟶ r&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
  show &amp;quot;¬q&amp;quot; using 4 3 by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q ⟶ r&amp;quot; using assms(1,2) ..&lt;br /&gt;
  thus &amp;quot;¬q&amp;quot; using assms(3) by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 6. (p. 7) Demostrar &lt;br /&gt;
     ¬p ⟶ q, ¬q ⊢ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ⟶ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬p&amp;quot; using 1 2 by (rule mt)&lt;br /&gt;
  show &amp;quot;p&amp;quot; using 3 by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_2:&lt;br /&gt;
  assumes &amp;quot;¬p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬p&amp;quot; using assms(1,2) by (rule mt)&lt;br /&gt;
  thus &amp;quot;p&amp;quot; by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_3:&lt;br /&gt;
  &amp;quot;⟦¬p ⟶ q; ¬q⟧ ⟹ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 7. (p. 7) Demostrar&lt;br /&gt;
     p ⟶ ¬q, q ⊢ ¬p&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ ¬q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬q&amp;quot; using 2 by (rule notnotI)&lt;br /&gt;
  show &amp;quot;¬p&amp;quot; using 1 3 by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ ¬q&amp;quot;&lt;br /&gt;
          &amp;quot;q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬q&amp;quot; using assms(2) by (rule notnotI)&lt;br /&gt;
  with assms(1) show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;with P show Q&amp;quot; para indicar que con el hecho anterior junto con el&lt;br /&gt;
    hecho P se demuestra Q. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_3:&lt;br /&gt;
  &amp;quot;⟦p ⟶ ¬q; q⟧ ⟹ ¬p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de introducción del condicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de introducción del condicional es&lt;br /&gt;
  · impI: (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 8. (p. 8) Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 2: &amp;quot;¬q&amp;quot;&lt;br /&gt;
    have &amp;quot;¬p&amp;quot; using 1 2 by (rule mt) } &lt;br /&gt;
  thus &amp;quot;¬q ⟶ ¬p&amp;quot; by (rule impI)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;{ ... }&amp;quot; para representar una caja. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
  with assms show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 9. (p. 9) Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ ¬¬q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_1: &lt;br /&gt;
  assumes 1: &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
proof -&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 3: &amp;quot;¬¬p&amp;quot; using 2 by (rule notnotI)&lt;br /&gt;
    have &amp;quot;¬¬q&amp;quot; using 1 3 by (rule mt) } &lt;br /&gt;
  thus &amp;quot;p ⟶ ¬¬q&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_2:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows    &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬¬p&amp;quot; by (rule notnotI)&lt;br /&gt;
  with assms show &amp;quot;¬¬q&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_3:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 10 (p. 9). Demostrar&lt;br /&gt;
     ⊢ p ⟶ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_1:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 1: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 1 by this }&lt;br /&gt;
  thus &amp;quot;p ⟶ p&amp;quot; by (rule impI) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_2:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_3:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 11 (p. 10) Demostrar&lt;br /&gt;
     ⊢ (q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_1:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
    { assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
        have 4: &amp;quot;¬¬p&amp;quot; using 3 by (rule notnotI)&lt;br /&gt;
        have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
        have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
        have &amp;quot;r&amp;quot; using 1 6 by (rule mp) } &lt;br /&gt;
      hence &amp;quot;p ⟶ r&amp;quot; by (rule impI) } &lt;br /&gt;
    hence &amp;quot;(¬q ⟶ ¬p) ⟶ p ⟶ r&amp;quot; by (rule impI) } &lt;br /&gt;
  thus &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ p ⟶ r)&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_2:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
    proof (rule impI)&lt;br /&gt;
      assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
        proof (rule impI)&lt;br /&gt;
          assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
          have 4: &amp;quot;¬¬p&amp;quot; using 3 by (rule notnotI)&lt;br /&gt;
          have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
          have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
          show &amp;quot;r&amp;quot; using 1 6 by (rule mp)&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_3:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
        proof&lt;br /&gt;
          assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
          have 4: &amp;quot;¬¬p&amp;quot; using 3 ..&lt;br /&gt;
          have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
          have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
          show &amp;quot;r&amp;quot; using 1 6 ..&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_4:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la disyunción *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Las reglas de la introducción de la disyunción son&lt;br /&gt;
  · disjI1: P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2: Q ⟹ P ∨ Q&lt;br /&gt;
  La regla de elimación de la disyunción es&lt;br /&gt;
  · disjE:  ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 12 (p. 11). Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_1:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;p ∨ q&amp;quot; using assms by this&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; by (rule disjE) &lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;moreover&amp;quot; para separar los bloques y&lt;br /&gt;
  · &amp;quot;ultimately&amp;quot; para unir los resultados de los bloques. *}&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;La demostración detallada con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_2:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  note `p ∨ q`&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    hence &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    hence &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;note&amp;quot; para copiar un hecho. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_3:&lt;br /&gt;
  assumes 1: &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using 1&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    show &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_4:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
proof &lt;br /&gt;
  { assume  &amp;quot;p&amp;quot;&lt;br /&gt;
    thus &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    thus &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_5:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 13. (p. 12) Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_1:&lt;br /&gt;
  assumes 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 2: &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  thus &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ∨ r&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 4: &amp;quot;q&amp;quot;&lt;br /&gt;
      have 5: &amp;quot;r&amp;quot; using 1 4 by (rule mp)&lt;br /&gt;
      show &amp;quot;p ∨ r&amp;quot; using 5 by (rule disjI2) }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_2:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  thus &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    { assume &amp;quot;p&amp;quot;&lt;br /&gt;
      thus &amp;quot;p ∨ r&amp;quot; .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;q&amp;quot;&lt;br /&gt;
      have &amp;quot;r&amp;quot; using assms `q` ..&lt;br /&gt;
      thus &amp;quot;p ∨ r&amp;quot; .. }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_3:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de copia *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 14 (p. 13). Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_1:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;p&amp;quot;&lt;br /&gt;
  show &amp;quot;q ⟶ p&amp;quot; &lt;br /&gt;
  proof (rule impI)&lt;br /&gt;
    assume &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;p&amp;quot; using 1 by this&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_2:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  thus &amp;quot;q ⟶ p&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_3:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación de lo falso es&lt;br /&gt;
  · FalseE: False ⟹ P&lt;br /&gt;
  La regla de eliminación de la negación es&lt;br /&gt;
  · notE: ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  La regla de introducción de la negación es&lt;br /&gt;
  · notI: (P ⟹ False) ⟹ ¬P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 15 (p. 15). Demostrar&lt;br /&gt;
     ¬p ∨ q ⊢ p ⟶ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
  note 1&lt;br /&gt;
  thus &amp;quot;q&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume 3: &amp;quot;¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;q&amp;quot; using 3 2 by (rule notE) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 4: &amp;quot;q&amp;quot;&lt;br /&gt;
      show &amp;quot;q&amp;quot; using 4 by this}&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_2:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  note `¬p ∨ q`&lt;br /&gt;
  thus &amp;quot;q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;q&amp;quot; using `p` .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;q&amp;quot;&lt;br /&gt;
      thus &amp;quot;q&amp;quot; . }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_3:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 16 (p. 16). Demostrar&lt;br /&gt;
     p ⟶ q, p ⟶ ¬q ⊢ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;¬q&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  show False using 5 4 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(1) `p` ..&lt;br /&gt;
  have &amp;quot;¬q&amp;quot; using assms(2) `p` ..&lt;br /&gt;
  thus False using `q` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas del bicondicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de introducción del bicondicional es&lt;br /&gt;
  · iffI: ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P ⟷ Q&lt;br /&gt;
  Las reglas de eliminación del bicondicional son&lt;br /&gt;
  · iffD1: ⟦Q ⟷ P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2: ⟦P ⟷ Q; Q⟧ ⟹ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 17 (p. 17) Demostrar&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_1:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  { assume 1: &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
    have 2: &amp;quot;p&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
    have 3: &amp;quot;q&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
    show &amp;quot;q ∧ p&amp;quot; using 3 2 by (rule conjI) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 4: &amp;quot;q ∧ p&amp;quot;&lt;br /&gt;
    have 5: &amp;quot;q&amp;quot; using 4 by (rule conjunct1)&lt;br /&gt;
    have 6: &amp;quot;p&amp;quot; using 4 by (rule conjunct2)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 6 5 by (rule conjI) }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_2:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  { assume 1: &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 1 ..&lt;br /&gt;
    have &amp;quot;q&amp;quot; using 1 ..&lt;br /&gt;
    show &amp;quot;q ∧ p&amp;quot; using `q` `p` .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume 2: &amp;quot;q ∧ p&amp;quot;&lt;br /&gt;
    have &amp;quot;q&amp;quot; using 2 ..&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 2 ..&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using `p` `q`  .. }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_3:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 18 (p. 18). Demostrar&lt;br /&gt;
     p ⟷ q, p ∨ q ⊢ p ∧ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟷ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using 2&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 4: &amp;quot;q&amp;quot; using 1 3 by (rule iffD1)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 3 4 by (rule conjI) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 5: &amp;quot;q&amp;quot;&lt;br /&gt;
    have 6: &amp;quot;p&amp;quot; using 1 5 by (rule iffD2)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 6 5 by (rule conjI) }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_2:&lt;br /&gt;
  assumes &amp;quot;p ⟷ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows  &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using assms(2)&lt;br /&gt;
proof&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    with assms(1) have &amp;quot;q&amp;quot; ..&lt;br /&gt;
    with `p` show &amp;quot;p ∧ q&amp;quot; .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    with assms(1) have &amp;quot;p&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;p ∧ q&amp;quot; using `q` .. }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_3:&lt;br /&gt;
  assumes &amp;quot;p ⟷ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas derivadas *}&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla del modus tollens *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 19 (p. 20) Demostrar la regla del modus tollens a partir de&lt;br /&gt;
  las reglas básicas. &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_1:&lt;br /&gt;
  assumes 1: &amp;quot;F ⟶ G&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬F&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 3: &amp;quot;F&amp;quot;&lt;br /&gt;
  have 4: &amp;quot;G&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  show False using 2 4 by (rule notE)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_2:&lt;br /&gt;
  assumes &amp;quot;F ⟶ G&amp;quot;&lt;br /&gt;
          &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬F&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;F&amp;quot;&lt;br /&gt;
  with assms(1) have &amp;quot;G&amp;quot; ..&lt;br /&gt;
  with assms(2) show False ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_3:&lt;br /&gt;
  assumes &amp;quot;F ⟶ G&amp;quot;&lt;br /&gt;
          &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla de la introducción de la doble negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 21 (p. 21) Demostrar la regla de introducción de la doble&lt;br /&gt;
  negación a partir de las reglas básicas.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_1:&lt;br /&gt;
  assumes 1: &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 2: &amp;quot;¬F&amp;quot;&lt;br /&gt;
  show False using 2 1 by (rule notE)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_2:&lt;br /&gt;
  assumes &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;¬F&amp;quot;&lt;br /&gt;
  thus False using assms ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_3:&lt;br /&gt;
  assumes &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla de reducción al absurdo *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de reducción al absurdo en Isabelle se correponde con la&lt;br /&gt;
  regla clásica de contradicción &lt;br /&gt;
  · ccontr: (¬P ⟹ False) ⟹ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Ley del tercio excluso *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La ley del tercio excluso es &lt;br /&gt;
  · excluded_middle: ¬P ∨ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 22 (p. 23). Demostrar la ley del tercio excluso a partir de&lt;br /&gt;
  las reglas básicas.  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_1:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬(F ∨ ¬F)&amp;quot;&lt;br /&gt;
  thus False&lt;br /&gt;
  proof (rule notE)&lt;br /&gt;
    show &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
    proof (rule disjI2)&lt;br /&gt;
      show &amp;quot;¬F&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume 2: &amp;quot;F&amp;quot;&lt;br /&gt;
        hence 3: &amp;quot;F ∨ ¬F&amp;quot; by (rule disjI1)&lt;br /&gt;
        show False using 1 3 by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
    &lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_2:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume &amp;quot;¬(F ∨ ¬F)&amp;quot;&lt;br /&gt;
  thus False&lt;br /&gt;
  proof (rule notE)&lt;br /&gt;
    show &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
    proof (rule disjI2)&lt;br /&gt;
      show &amp;quot;¬F&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume &amp;quot;F&amp;quot;&lt;br /&gt;
        hence &amp;quot;F ∨ ¬F&amp;quot; ..&lt;br /&gt;
        with `¬(F ∨ ¬F)`show False ..&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
    &lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_3:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 23 (p. 24). Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬p ∨ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; by (rule excluded_middle)&lt;br /&gt;
  thus &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; by (rule disjI1) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
      have &amp;quot;q&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; by (rule disjI2) }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;p&amp;quot;&lt;br /&gt;
      with assms have &amp;quot;q&amp;quot; ..&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; .. }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Demostraciones por contradicción *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 24. Demostrar que &lt;br /&gt;
     ¬p, p ∨ q ⊢ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_1:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
using `p ∨ q`&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms(1) show &amp;quot;q&amp;quot; by contradiction &lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  thus &amp;quot;q&amp;quot; by assumption&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_2:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
using `p ∨ q`&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms(1) show &amp;quot;q&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  thus &amp;quot;q&amp;quot; .&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_3:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_2&amp;diff=135</id>
		<title>Tema 2</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_2&amp;diff=135"/>
		<updated>2013-03-04T18:24:38Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Protegió «Tema 2» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* Tema 2: Deducción natural proposicional con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory T2&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  En esta sección se presentan los ejemplos del tema de deducción natural&lt;br /&gt;
  proposicional siguiendo la presentación de Huth y Ryan en su libro&lt;br /&gt;
  &amp;quot;Logic in Computer Science&amp;quot; http://goo.gl/qsVpY y, más concretamente,&lt;br /&gt;
  a la forma como se explica en la asignatura de &amp;quot;Lógica informática&amp;quot; (LI) &lt;br /&gt;
  http://goo.gl/AwDiv&lt;br /&gt;
 &lt;br /&gt;
  La página al lado de cada ejemplo indica la página de las transparencias &lt;br /&gt;
  de LI donde se encuentra la demostración. *}&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la conjunción *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 1 (p. 4). Demostrar que&lt;br /&gt;
     p ∧ q, r ⊢ q ∧ r.&lt;br /&gt;
  *}     &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_1_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;r&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;q&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  show 4: &amp;quot;q ∧ r&amp;quot; using 3 2 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Notas sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assumes&amp;quot; para indicar las hipótesis,&lt;br /&gt;
  · &amp;quot;and&amp;quot; para separar las hipótesis,&lt;br /&gt;
  · &amp;quot;shows&amp;quot; para indicar la conclusión,&lt;br /&gt;
  · &amp;quot;proof&amp;quot; para iniciar la prueba,&lt;br /&gt;
  · &amp;quot;qed&amp;quot; para terminar la pruebas,&lt;br /&gt;
  · &amp;quot;-&amp;quot; (después de &amp;quot;proof&amp;quot;) para no usar el método por defecto,&lt;br /&gt;
  · &amp;quot;have&amp;quot; para establecer un paso,&lt;br /&gt;
  · &amp;quot;using&amp;quot; para usar hechos en un paso,&lt;br /&gt;
  · &amp;quot;by (rule ..)&amp;quot; para indicar la regla con la que se peueba un hecho,&lt;br /&gt;
  · &amp;quot;show&amp;quot; para establecer la conclusión.&lt;br /&gt;
&lt;br /&gt;
  Notas sobre la lógica: Las reglas de la conjunción son&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden dejar implícitas las reglas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_2:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;r&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;q&amp;quot; using 1 .. &lt;br /&gt;
  show 4: &amp;quot;q ∧ r&amp;quot; using 3 2 ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;..&amp;quot; para indicar que se prueba por la regla correspondiente. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden eliminar las etiquetas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_3:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(1) ..&lt;br /&gt;
  thus &amp;quot;q ∧ r&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assms(n)&amp;quot; para indicar la hipótesis n y&lt;br /&gt;
  · &amp;quot;thus&amp;quot; para demostrar la conclusión usando el hecho anterior.&lt;br /&gt;
  Además, no es necesario usar and entre las hipótesis. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede automatizar la demostración como sigue *}&lt;br /&gt;
  &lt;br /&gt;
lemma ejemplo_1_4:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assms&amp;quot; para indicar las hipótesis y&lt;br /&gt;
  · &amp;quot;by auto&amp;quot; para demostrar la conclusión automáticamente. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede automatizar totalmente la demostración como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_5:&lt;br /&gt;
  &amp;quot;⟦p ∧ q; r⟧ ⟹ q ∧ r&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;⟦ ... ⟧&amp;quot; para representar las hipótesis,&lt;br /&gt;
  · &amp;quot;;&amp;quot; para separar las hipótesis y&lt;br /&gt;
  · &amp;quot;⟹&amp;quot; para separar las hipótesis de la conclusión. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede hacer la demostración por razonamiento hacia atrás,&lt;br /&gt;
  como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_6:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
      and &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof (rule conjI)&lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1) by (rule conjunct2)&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;r&amp;quot; using assms(2) by this&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;proof (rule r)&amp;quot; para indicar que se hará la demostración con la&lt;br /&gt;
    regla r,&lt;br /&gt;
  · &amp;quot;next&amp;quot; para indicar el comienzo de la prueba del siguiente&lt;br /&gt;
    subobjetivo,&lt;br /&gt;
  · &amp;quot;this&amp;quot; para indicar el hecho actual. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden dejar implícitas las reglas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_7:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1) ..&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;r&amp;quot; using assms(2) . &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;.&amp;quot; para indicar por el hecho actual. *}&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la doble negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación de la doble negación es&lt;br /&gt;
  · notnotD: ¬¬ P ⟹ P&lt;br /&gt;
&lt;br /&gt;
  Para ajustarnos al tema de LI vamos a introducir la siguiente regla de&lt;br /&gt;
  introducción de la doble negación&lt;br /&gt;
  · notnotI: P ⟹ ¬¬ P&lt;br /&gt;
  aunque, de momento, no detallamos su demostración.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI [intro!]: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 2. (p. 5)&lt;br /&gt;
       p, ¬¬(q ∧ r) ⊢ ¬¬p ∧ r&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_1:&lt;br /&gt;
  assumes 1: &amp;quot;p&amp;quot; and&lt;br /&gt;
          2: &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows      &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬p&amp;quot; using 1 by (rule notnotI)&lt;br /&gt;
  have 4: &amp;quot;q ∧ r&amp;quot; using 2 by (rule notnotD)&lt;br /&gt;
  have 5: &amp;quot;r&amp;quot; using 4 by (rule conjunct2)&lt;br /&gt;
  show 6: &amp;quot;¬¬p ∧ r&amp;quot; using 3 5 by (rule conjI)&lt;br /&gt;
qed        &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_2:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have  &amp;quot;¬¬p&amp;quot; using assms(1) ..&lt;br /&gt;
  have  &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD)&lt;br /&gt;
  hence &amp;quot;r&amp;quot; ..&lt;br /&gt;
  with `¬¬p` show  &amp;quot;¬¬p ∧ r&amp;quot; ..&lt;br /&gt;
qed        &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;hence&amp;quot; para indicar que se tiene por el hecho anterior y&lt;br /&gt;
  · `...` para referenciar un hecho. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_3:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* Se puede demostrar hacia atrás *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_2_4:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof  (rule conjI)&lt;br /&gt;
  show &amp;quot;¬¬p&amp;quot; using assms(1) by (rule notnotI)&lt;br /&gt;
next&lt;br /&gt;
  have &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD) &lt;br /&gt;
  thus &amp;quot;r&amp;quot; by (rule conjunct2)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* Se puede eliminar las reglas en la demostración anterior, como&lt;br /&gt;
  sigue: *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_2_5:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;¬¬p&amp;quot; using assms(1) ..&lt;br /&gt;
next&lt;br /&gt;
  have &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD) &lt;br /&gt;
  thus &amp;quot;r&amp;quot; .. &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de eliminación del condicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación del condicional es la regla del modus ponens&lt;br /&gt;
  · mp: ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 3. (p. 6) Demostar que&lt;br /&gt;
     ¬p ∧ q, ¬p ∧ q ⟶ r ∨ ¬p ⊢ r ∨ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ∧ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows      &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;r ∨ ¬p&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_2:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;r ∨ ¬p&amp;quot; using assms(2,1) ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_3:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 4 (p. 6) Demostrar que&lt;br /&gt;
     p, p ⟶ q, p ⟶ (q ⟶ r) ⊢ r&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_1:&lt;br /&gt;
  assumes 1: &amp;quot;p&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ⟶ q&amp;quot; and &lt;br /&gt;
          3: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;q ⟶ r&amp;quot; using 3 1 by (rule mp)&lt;br /&gt;
  show 6: &amp;quot;r&amp;quot; using 5 4 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_2:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(2,1) .. &lt;br /&gt;
  have &amp;quot;q ⟶ r&amp;quot; using assms(3,1) ..&lt;br /&gt;
  thus &amp;quot;r&amp;quot; using `q` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_3:&lt;br /&gt;
  &amp;quot;⟦p; p ⟶ q; p ⟶ (q ⟶ r)⟧ ⟹ r&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla derivada del modus tollens *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Para ajustarnos al tema de LI vamos a introducir la regla del modus&lt;br /&gt;
  tollens&lt;br /&gt;
  · mt: ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  aunque, de momento, sin detallar su demostración.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 5 (p. 7). Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p, ¬r ⊢ ¬q&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p&amp;quot; and &lt;br /&gt;
          3: &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q ⟶ r&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
  show &amp;quot;¬q&amp;quot; using 4 3 by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q ⟶ r&amp;quot; using assms(1,2) ..&lt;br /&gt;
  thus &amp;quot;¬q&amp;quot; using assms(3) by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 6. (p. 7) Demostrar &lt;br /&gt;
     ¬p ⟶ q, ¬q ⊢ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ⟶ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬p&amp;quot; using 1 2 by (rule mt)&lt;br /&gt;
  show &amp;quot;p&amp;quot; using 3 by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_2:&lt;br /&gt;
  assumes &amp;quot;¬p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬p&amp;quot; using assms(1,2) by (rule mt)&lt;br /&gt;
  thus &amp;quot;p&amp;quot; by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_3:&lt;br /&gt;
  &amp;quot;⟦¬p ⟶ q; ¬q⟧ ⟹ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 7. (p. 7) Demostrar&lt;br /&gt;
     p ⟶ ¬q, q ⊢ ¬p&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ ¬q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬q&amp;quot; using 2 by (rule notnotI)&lt;br /&gt;
  show &amp;quot;¬p&amp;quot; using 1 3 by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ ¬q&amp;quot;&lt;br /&gt;
          &amp;quot;q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬q&amp;quot; using assms(2) by (rule notnotI)&lt;br /&gt;
  with assms(1) show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;with P show Q&amp;quot; para indicar que con el hecho anterior junto con el&lt;br /&gt;
    hecho P se demuestra Q. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_3:&lt;br /&gt;
  &amp;quot;⟦p ⟶ ¬q; q⟧ ⟹ ¬p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de introducción del condicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de introducción del condicional es&lt;br /&gt;
  · impI: (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 8. (p. 8) Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 2: &amp;quot;¬q&amp;quot;&lt;br /&gt;
    have &amp;quot;¬p&amp;quot; using 1 2 by (rule mt) } &lt;br /&gt;
  thus &amp;quot;¬q ⟶ ¬p&amp;quot; by (rule impI)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;{ ... }&amp;quot; para representar una caja. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
  with assms show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 9. (p. 9) Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ ¬¬q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_1: &lt;br /&gt;
  assumes 1: &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
proof -&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 3: &amp;quot;¬¬p&amp;quot; using 2 by (rule notnotI)&lt;br /&gt;
    have &amp;quot;¬¬q&amp;quot; using 1 3 by (rule mt) } &lt;br /&gt;
  thus &amp;quot;p ⟶ ¬¬q&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_2:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows    &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬¬p&amp;quot; by (rule notnotI)&lt;br /&gt;
  with assms show &amp;quot;¬¬q&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_3:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 10 (p. 9). Demostrar&lt;br /&gt;
     ⊢ p ⟶ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_1:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 1: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 1 by this }&lt;br /&gt;
  thus &amp;quot;p ⟶ p&amp;quot; by (rule impI) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_2:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_3:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 11 (p. 10) Demostrar&lt;br /&gt;
     ⊢ (q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_1:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
    { assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
        have 4: &amp;quot;¬¬p&amp;quot; using 3 by (rule notnotI)&lt;br /&gt;
        have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
        have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
        have &amp;quot;r&amp;quot; using 1 6 by (rule mp) } &lt;br /&gt;
      hence &amp;quot;p ⟶ r&amp;quot; by (rule impI) } &lt;br /&gt;
    hence &amp;quot;(¬q ⟶ ¬p) ⟶ p ⟶ r&amp;quot; by (rule impI) } &lt;br /&gt;
  thus &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ p ⟶ r)&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_2:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
    proof (rule impI)&lt;br /&gt;
      assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
        proof (rule impI)&lt;br /&gt;
          assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
          have 4: &amp;quot;¬¬p&amp;quot; using 3 by (rule notnotI)&lt;br /&gt;
          have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
          have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
          show &amp;quot;r&amp;quot; using 1 6 by (rule mp)&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_3:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
        proof&lt;br /&gt;
          assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
          have 4: &amp;quot;¬¬p&amp;quot; using 3 ..&lt;br /&gt;
          have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
          have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
          show &amp;quot;r&amp;quot; using 1 6 ..&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_4:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la disyunción *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Las reglas de la introducción de la disyunción son&lt;br /&gt;
  · disjI1: P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2: Q ⟹ P ∨ Q&lt;br /&gt;
  La regla de elimación de la disyunción es&lt;br /&gt;
  · disjE:  ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 12 (p. 11). Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_1:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;p ∨ q&amp;quot; using assms by this&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; by (rule disjE) &lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;moreover&amp;quot; para separar los bloques y&lt;br /&gt;
  · &amp;quot;ultimately&amp;quot; para unir los resultados de los bloques. *}&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;La demostración detallada con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_2:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  note `p ∨ q`&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    hence &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    hence &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;note&amp;quot; para copiar un hecho. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_3:&lt;br /&gt;
  assumes 1: &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using 1&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    show &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_4:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
proof &lt;br /&gt;
  { assume  &amp;quot;p&amp;quot;&lt;br /&gt;
    thus &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    thus &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_5:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 13. (p. 12) Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_1:&lt;br /&gt;
  assumes 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 2: &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  thus &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ∨ r&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 4: &amp;quot;q&amp;quot;&lt;br /&gt;
      have 5: &amp;quot;r&amp;quot; using 1 4 by (rule mp)&lt;br /&gt;
      show &amp;quot;p ∨ r&amp;quot; using 5 by (rule disjI2) }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_2:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  thus &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    { assume &amp;quot;p&amp;quot;&lt;br /&gt;
      thus &amp;quot;p ∨ r&amp;quot; .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;q&amp;quot;&lt;br /&gt;
      have &amp;quot;r&amp;quot; using assms `q` ..&lt;br /&gt;
      thus &amp;quot;p ∨ r&amp;quot; .. }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_3:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de copia *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 14 (p. 13). Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_1:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;p&amp;quot;&lt;br /&gt;
  show &amp;quot;q ⟶ p&amp;quot; &lt;br /&gt;
  proof (rule impI)&lt;br /&gt;
    assume &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;p&amp;quot; using 1 by this&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_2:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  thus &amp;quot;q ⟶ p&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_3:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación de lo falso es&lt;br /&gt;
  · FalseE: False ⟹ P&lt;br /&gt;
  La regla de eliminación de la negación es&lt;br /&gt;
  · notE: ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  La regla de introducción de la negación es&lt;br /&gt;
  · notI: (P ⟹ False) ⟹ ¬P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 15 (p. 15). Demostrar&lt;br /&gt;
     ¬p ∨ q ⊢ p ⟶ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
  note 1&lt;br /&gt;
  thus &amp;quot;q&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume 3: &amp;quot;¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;q&amp;quot; using 3 2 by (rule notE) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 4: &amp;quot;q&amp;quot;&lt;br /&gt;
      show &amp;quot;q&amp;quot; using 4 by this}&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_2:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  note `¬p ∨ q`&lt;br /&gt;
  thus &amp;quot;q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;q&amp;quot; using `p` .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;q&amp;quot;&lt;br /&gt;
      thus &amp;quot;q&amp;quot; . }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_3:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 16 (p. 16). Demostrar&lt;br /&gt;
     p ⟶ q, p ⟶ ¬q ⊢ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;¬q&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  show False using 5 4 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(1) `p` ..&lt;br /&gt;
  have &amp;quot;¬q&amp;quot; using assms(2) `p` ..&lt;br /&gt;
  thus False using `q` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas del bicondicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de introducción del bicondicional es&lt;br /&gt;
  · iffI: ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P ⟷ Q&lt;br /&gt;
  Las reglas de eliminación del bicondicional son&lt;br /&gt;
  · iffD1: ⟦Q ⟷ P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2: ⟦P ⟷ Q; Q⟧ ⟹ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 17 (p. 17) Demostrar&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_1:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  { assume 1: &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
    have 2: &amp;quot;p&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
    have 3: &amp;quot;q&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
    show &amp;quot;q ∧ p&amp;quot; using 3 2 by (rule conjI) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 4: &amp;quot;q ∧ p&amp;quot;&lt;br /&gt;
    have 5: &amp;quot;q&amp;quot; using 4 by (rule conjunct1)&lt;br /&gt;
    have 6: &amp;quot;p&amp;quot; using 4 by (rule conjunct2)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 6 5 by (rule conjI) }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_2:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  { assume 1: &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 1 ..&lt;br /&gt;
    have &amp;quot;q&amp;quot; using 1 ..&lt;br /&gt;
    show &amp;quot;q ∧ p&amp;quot; using `q` `p` .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume 2: &amp;quot;q ∧ p&amp;quot;&lt;br /&gt;
    have &amp;quot;q&amp;quot; using 2 ..&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 2 ..&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using `p` `q`  .. }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_3:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 18 (p. 18). Demostrar&lt;br /&gt;
     p ⟷ q, p ∨ q ⊢ p ∧ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟷ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using 2&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 4: &amp;quot;q&amp;quot; using 1 3 by (rule iffD1)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 3 4 by (rule conjI) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 5: &amp;quot;q&amp;quot;&lt;br /&gt;
    have 6: &amp;quot;p&amp;quot; using 1 5 by (rule iffD2)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 6 5 by (rule conjI) }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_2:&lt;br /&gt;
  assumes &amp;quot;p ⟷ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows  &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using assms(2)&lt;br /&gt;
proof&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    with assms(1) have &amp;quot;q&amp;quot; ..&lt;br /&gt;
    with `p` show &amp;quot;p ∧ q&amp;quot; .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    with assms(1) have &amp;quot;p&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;p ∧ q&amp;quot; using `q` .. }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_3:&lt;br /&gt;
  assumes &amp;quot;p ⟷ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas derivadas *}&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla del modus tollens *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 19 (p. 20) Demostrar la regla del modus tollens a partir de&lt;br /&gt;
  las reglas básicas. &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_1:&lt;br /&gt;
  assumes 1: &amp;quot;F ⟶ G&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬F&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 3: &amp;quot;F&amp;quot;&lt;br /&gt;
  have 4: &amp;quot;G&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  show False using 2 4 by (rule notE)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_2:&lt;br /&gt;
  assumes &amp;quot;F ⟶ G&amp;quot;&lt;br /&gt;
          &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬F&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;F&amp;quot;&lt;br /&gt;
  with assms(1) have &amp;quot;G&amp;quot; ..&lt;br /&gt;
  with assms(2) show False ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_3:&lt;br /&gt;
  assumes &amp;quot;F ⟶ G&amp;quot;&lt;br /&gt;
          &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla de la introducción de la doble negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 21 (p. 21) Demostrar la regla de introducción de la doble&lt;br /&gt;
  negación a partir de las reglas básicas.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_1:&lt;br /&gt;
  assumes 1: &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 2: &amp;quot;¬F&amp;quot;&lt;br /&gt;
  show False using 2 1 by (rule notE)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_2:&lt;br /&gt;
  assumes &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;¬F&amp;quot;&lt;br /&gt;
  thus False using assms ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_3:&lt;br /&gt;
  assumes &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla de reducción al absurdo *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de reducción al absurdo en Isabelle se correponde con la&lt;br /&gt;
  regla clásica de contradicción &lt;br /&gt;
  · ccontr: (¬P ⟹ False) ⟹ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Ley del tercio excluso *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La ley del tercio excluso es &lt;br /&gt;
  · excluded_middle: ¬P ∨ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 22 (p. 23). Demostrar la ley del tercio excluso a partir de&lt;br /&gt;
  las reglas básicas.  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_1:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬(F ∨ ¬F)&amp;quot;&lt;br /&gt;
  thus False&lt;br /&gt;
  proof (rule notE)&lt;br /&gt;
    show &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
    proof (rule disjI2)&lt;br /&gt;
      show &amp;quot;¬F&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume 2: &amp;quot;F&amp;quot;&lt;br /&gt;
        hence 3: &amp;quot;F ∨ ¬F&amp;quot; by (rule disjI1)&lt;br /&gt;
        show False using 1 3 by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
    &lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_2:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume &amp;quot;¬(F ∨ ¬F)&amp;quot;&lt;br /&gt;
  thus False&lt;br /&gt;
  proof (rule notE)&lt;br /&gt;
    show &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
    proof (rule disjI2)&lt;br /&gt;
      show &amp;quot;¬F&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume &amp;quot;F&amp;quot;&lt;br /&gt;
        hence &amp;quot;F ∨ ¬F&amp;quot; ..&lt;br /&gt;
        with `¬(F ∨ ¬F)`show False ..&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
    &lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_3:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 23 (p. 24). Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬p ∨ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; by (rule excluded_middle)&lt;br /&gt;
  thus &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; by (rule disjI1) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
      have &amp;quot;q&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; by (rule disjI2) }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;p&amp;quot;&lt;br /&gt;
      with assms have &amp;quot;q&amp;quot; ..&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; .. }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Demostraciones por contradicción *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 24. Demostrar que &lt;br /&gt;
     ¬p, p ∨ q ⊢ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_1:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
using `p ∨ q`&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms(1) show &amp;quot;q&amp;quot; by contradiction &lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  thus &amp;quot;q&amp;quot; by assumption&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_2:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
using `p ∨ q`&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms(1) show &amp;quot;q&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  thus &amp;quot;q&amp;quot; .&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_3:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_3&amp;diff=134</id>
		<title>Relación 3</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_3&amp;diff=134"/>
		<updated>2013-03-04T18:24:13Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt; header {* R3: Deducción natural proposicional *}  theory R3 imports Main  begin  text {*   ----------------------------------------------------------------...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R3: Deducción natural proposicional *}&lt;br /&gt;
&lt;br /&gt;
theory R3&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es demostrar cada uno de los ejercicios&lt;br /&gt;
  usando sólo las reglas básicas de deducción natural de la lógica&lt;br /&gt;
  proposicional (sin usar el método auto).&lt;br /&gt;
&lt;br /&gt;
  Las reglas básicas de la deducción natural son las siguientes:&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · notnotI:    P ⟹ ¬¬ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación. *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Implicaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       p ⟶ q, p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p ⟶ q, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r ⊢ p ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_4:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ q ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ (p ⟶ q) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
     p ⊢ q ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;q ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ (q ⟶ r) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(q ⟶ r) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ (r ⟶ s)) ⊢ r ⟶ (q ⟶ (p ⟶ s))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ (r ⟶ s))&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ⟶ (q ⟶ (p ⟶ s))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
  &amp;quot;(p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Conjunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
     p, q ⊢  p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
     p ∧ q ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
     p ∧ (q ∧ r) ⊢ (p ∧ q) ∧ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∧ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∧ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
     (p ∧ q) ∧ r ⊢ p ∧ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
     (p ⟶ q) ∧ (p ⟶ r) ⊢ p ⟶ q ∧ r   &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q ∧ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
     p ⟶ q ∧ r ⊢ (p ⟶ q) ∧ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     p ∧ q ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;p ∧ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
     p ∧ (q ⟶ r) ⊢ (p ⟶ q) ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Disyunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
     p ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
     q ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes &amp;quot;q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar&lt;br /&gt;
     p ∨ p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29:&lt;br /&gt;
  assumes &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar&lt;br /&gt;
     p ⊢ p ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar&lt;br /&gt;
     p ∨ (q ∨ r) ⊢ (p ∨ q) ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar&lt;br /&gt;
     (p ∨ q) ∨ r ⊢ p ∨ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∨ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar&lt;br /&gt;
     p ∧ (q ∨ r) ⊢ (p ∧ q) ∨ (p ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar&lt;br /&gt;
     (p ∧ q) ∨ (p ∧ r) ⊢ p ∧ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar&lt;br /&gt;
     p ∨ (q ∧ r) ⊢ (p ∨ q) ∧ (p ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar&lt;br /&gt;
     (p ∨ q) ∧ (p ∨ r) ⊢ p ∨ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar&lt;br /&gt;
     (p ⟶ r) ∧ (q ⟶ r) ⊢ p ∨ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 38. Demostrar&lt;br /&gt;
     p ∨ q ⟶ r ⊢ (p ⟶ r) ∧ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_38:&lt;br /&gt;
  assumes &amp;quot;p ∨ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Negaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 39. Demostrar&lt;br /&gt;
     p ⊢ ¬¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_39:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_40:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 41. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_41:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p∨q, ¬q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_42:&lt;br /&gt;
  assumes &amp;quot;p∨q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p ∨ q, ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_43:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     p ∨ q ⊢ ¬(¬p ∧ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_44:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 45. Demostrar&lt;br /&gt;
     p ∧ q ⊢ ¬(¬p ∨ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_45:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∨ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 46. Demostrar&lt;br /&gt;
     ¬(p ∨ q) ⊢ ¬p ∧ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_46:&lt;br /&gt;
  assumes &amp;quot;¬(p ∨ q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 47. Demostrar&lt;br /&gt;
     ¬p ∧ ¬q ⊢ ¬(p ∨ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_47:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ ¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(p ∨ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 48. Demostrar&lt;br /&gt;
     ¬p ∨ ¬q ⊢ ¬(p ∧ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_48:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 49. Demostrar&lt;br /&gt;
     ⊢ ¬(p ∧ ¬p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_49:&lt;br /&gt;
  &amp;quot;¬(p ∧ ¬p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 50. Demostrar&lt;br /&gt;
     p ∧ ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_50:&lt;br /&gt;
  assumes &amp;quot;p ∧ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 51. Demostrar&lt;br /&gt;
     ¬¬p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_51:&lt;br /&gt;
  assumes &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 52. Demostrar&lt;br /&gt;
     ⊢ p ∨ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_52:&lt;br /&gt;
  &amp;quot;p ∨ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 53. Demostrar&lt;br /&gt;
     ⊢ ((p ⟶ q) ⟶ p) ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_53:&lt;br /&gt;
  &amp;quot;((p ⟶ q) ⟶ p) ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 54. Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_54:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 55. Demostrar&lt;br /&gt;
     ¬(¬p ∧ ¬q) ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_55:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 56. Demostrar&lt;br /&gt;
     ¬(¬p ∨ ¬q) ⊢ p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_56:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∨ ¬q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 57. Demostrar&lt;br /&gt;
     ¬(p ∧ q) ⊢ ¬p ∨ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_57:&lt;br /&gt;
  assumes &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 58. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ q) ∨ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_58:&lt;br /&gt;
  &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_3&amp;diff=133</id>
		<title>Rel 3</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_3&amp;diff=133"/>
		<updated>2013-03-04T18:23:55Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Protegió «Rel 3» ([edit=sysop] (indefinido) [move=sysop] (indefinido))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R3: Deducción natural proposicional *}&lt;br /&gt;
&lt;br /&gt;
theory R3&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es demostrar cada uno de los ejercicios&lt;br /&gt;
  usando sólo las reglas básicas de deducción natural de la lógica&lt;br /&gt;
  proposicional (sin usar el método auto).&lt;br /&gt;
&lt;br /&gt;
  Las reglas básicas de la deducción natural son las siguientes:&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · notnotI:    P ⟹ ¬¬ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación. *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Implicaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       p ⟶ q, p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p ⟶ q, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r ⊢ p ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_4:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ q ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ (p ⟶ q) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
     p ⊢ q ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;q ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ (q ⟶ r) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(q ⟶ r) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ (r ⟶ s)) ⊢ r ⟶ (q ⟶ (p ⟶ s))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ (r ⟶ s))&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ⟶ (q ⟶ (p ⟶ s))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
  &amp;quot;(p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Conjunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
     p, q ⊢  p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
     p ∧ q ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
     p ∧ (q ∧ r) ⊢ (p ∧ q) ∧ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∧ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∧ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
     (p ∧ q) ∧ r ⊢ p ∧ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
     (p ⟶ q) ∧ (p ⟶ r) ⊢ p ⟶ q ∧ r   &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q ∧ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
     p ⟶ q ∧ r ⊢ (p ⟶ q) ∧ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     p ∧ q ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;p ∧ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
     p ∧ (q ⟶ r) ⊢ (p ⟶ q) ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Disyunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
     p ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
     q ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes &amp;quot;q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar&lt;br /&gt;
     p ∨ p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29:&lt;br /&gt;
  assumes &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar&lt;br /&gt;
     p ⊢ p ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar&lt;br /&gt;
     p ∨ (q ∨ r) ⊢ (p ∨ q) ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar&lt;br /&gt;
     (p ∨ q) ∨ r ⊢ p ∨ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∨ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar&lt;br /&gt;
     p ∧ (q ∨ r) ⊢ (p ∧ q) ∨ (p ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar&lt;br /&gt;
     (p ∧ q) ∨ (p ∧ r) ⊢ p ∧ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar&lt;br /&gt;
     p ∨ (q ∧ r) ⊢ (p ∨ q) ∧ (p ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar&lt;br /&gt;
     (p ∨ q) ∧ (p ∨ r) ⊢ p ∨ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar&lt;br /&gt;
     (p ⟶ r) ∧ (q ⟶ r) ⊢ p ∨ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 38. Demostrar&lt;br /&gt;
     p ∨ q ⟶ r ⊢ (p ⟶ r) ∧ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_38:&lt;br /&gt;
  assumes &amp;quot;p ∨ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Negaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 39. Demostrar&lt;br /&gt;
     p ⊢ ¬¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_39:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_40:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 41. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_41:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p∨q, ¬q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_42:&lt;br /&gt;
  assumes &amp;quot;p∨q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p ∨ q, ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_43:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     p ∨ q ⊢ ¬(¬p ∧ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_44:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 45. Demostrar&lt;br /&gt;
     p ∧ q ⊢ ¬(¬p ∨ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_45:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∨ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 46. Demostrar&lt;br /&gt;
     ¬(p ∨ q) ⊢ ¬p ∧ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_46:&lt;br /&gt;
  assumes &amp;quot;¬(p ∨ q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 47. Demostrar&lt;br /&gt;
     ¬p ∧ ¬q ⊢ ¬(p ∨ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_47:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ ¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(p ∨ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 48. Demostrar&lt;br /&gt;
     ¬p ∨ ¬q ⊢ ¬(p ∧ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_48:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 49. Demostrar&lt;br /&gt;
     ⊢ ¬(p ∧ ¬p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_49:&lt;br /&gt;
  &amp;quot;¬(p ∧ ¬p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 50. Demostrar&lt;br /&gt;
     p ∧ ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_50:&lt;br /&gt;
  assumes &amp;quot;p ∧ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 51. Demostrar&lt;br /&gt;
     ¬¬p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_51:&lt;br /&gt;
  assumes &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 52. Demostrar&lt;br /&gt;
     ⊢ p ∨ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_52:&lt;br /&gt;
  &amp;quot;p ∨ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 53. Demostrar&lt;br /&gt;
     ⊢ ((p ⟶ q) ⟶ p) ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_53:&lt;br /&gt;
  &amp;quot;((p ⟶ q) ⟶ p) ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 54. Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_54:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 55. Demostrar&lt;br /&gt;
     ¬(¬p ∧ ¬q) ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_55:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 56. Demostrar&lt;br /&gt;
     ¬(¬p ∨ ¬q) ⊢ p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_56:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∨ ¬q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 57. Demostrar&lt;br /&gt;
     ¬(p ∧ q) ⊢ ¬p ∨ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_57:&lt;br /&gt;
  assumes &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 58. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ q) ∨ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_58:&lt;br /&gt;
  &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_3&amp;diff=132</id>
		<title>Rel 3</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Rel_3&amp;diff=132"/>
		<updated>2013-03-04T18:23:24Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt; header {* R3: Deducción natural proposicional *}  theory R3 imports Main  begin  text {*   ----------------------------------------------------------------...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* R3: Deducción natural proposicional *}&lt;br /&gt;
&lt;br /&gt;
theory R3&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
  El objetivo de esta relación es demostrar cada uno de los ejercicios&lt;br /&gt;
  usando sólo las reglas básicas de deducción natural de la lógica&lt;br /&gt;
  proposicional (sin usar el método auto).&lt;br /&gt;
&lt;br /&gt;
  Las reglas básicas de la deducción natural son las siguientes:&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · notnotI:    P ⟹ ¬¬ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
  --------------------------------------------------------------------- &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas notnotI y mt que demostramos a continuación. *}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section {* Implicaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 1. Demostrar&lt;br /&gt;
       p ⟶ q, p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_1:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 2. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 3. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p ⟶ q, p ⊢ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 4. Demostrar&lt;br /&gt;
     p ⟶ q, q ⟶ r ⊢ p ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_4:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 5. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ q ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 6. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ (p ⟶ q) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 7. Demostrar&lt;br /&gt;
     p ⊢ q ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;q ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 8. Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 9. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ (q ⟶ r) ⟶ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_9:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(q ⟶ r) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 10. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ (r ⟶ s)) ⊢ r ⟶ (q ⟶ (p ⟶ s))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ (r ⟶ s))&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ⟶ (q ⟶ (p ⟶ s))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 11. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11:&lt;br /&gt;
  &amp;quot;(p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 12. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Conjunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 13. Demostrar&lt;br /&gt;
     p, q ⊢  p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 14. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot;  &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 15. Demostrar&lt;br /&gt;
     p ∧ q ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 16. Demostrar&lt;br /&gt;
     p ∧ (q ∧ r) ⊢ (p ∧ q) ∧ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_16:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∧ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∧ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 17. Demostrar&lt;br /&gt;
     (p ∧ q) ∧ r ⊢ p ∧ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 18. Demostrar&lt;br /&gt;
     p ∧ q ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 19. Demostrar&lt;br /&gt;
     (p ⟶ q) ∧ (p ⟶ r) ⊢ p ⟶ q ∧ r   &lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q ∧ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 20. Demostrar&lt;br /&gt;
     p ⟶ q ∧ r ⊢ (p ⟶ q) ∧ (p ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q ∧ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ∧ (p ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 21. Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r) ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 22. Demostrar&lt;br /&gt;
     p ∧ q ⟶ r ⊢ p ⟶ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;p ∧ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 23. Demostrar&lt;br /&gt;
     (p ⟶ q) ⟶ r ⊢ p ∧ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ q) ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 24. Demostrar&lt;br /&gt;
     p ∧ (q ⟶ r) ⊢ (p ⟶ q) ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ q) ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Disyunciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
     p ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
     q ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes &amp;quot;q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar&lt;br /&gt;
     p ∨ p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29:&lt;br /&gt;
  assumes &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar&lt;br /&gt;
     p ⊢ p ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar&lt;br /&gt;
     p ∨ (q ∨ r) ⊢ (p ∨ q) ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∨ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar&lt;br /&gt;
     (p ∨ q) ∨ r ⊢ p ∨ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∨ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar&lt;br /&gt;
     p ∧ (q ∨ r) ⊢ (p ∧ q) ∨ (p ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar&lt;br /&gt;
     (p ∧ q) ∨ (p ∧ r) ⊢ p ∧ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar&lt;br /&gt;
     p ∨ (q ∧ r) ⊢ (p ∨ q) ∧ (p ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar&lt;br /&gt;
     (p ∨ q) ∧ (p ∨ r) ⊢ p ∨ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar&lt;br /&gt;
     (p ⟶ r) ∧ (q ⟶ r) ⊢ p ∨ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ r&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 38. Demostrar&lt;br /&gt;
     p ∨ q ⟶ r ⊢ (p ⟶ r) ∧ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_38:&lt;br /&gt;
  assumes &amp;quot;p ∨ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
section {* Negaciones *}&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 39. Demostrar&lt;br /&gt;
     p ⊢ ¬¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_39:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_40:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 41. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_41:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p∨q, ¬q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_42:&lt;br /&gt;
  assumes &amp;quot;p∨q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p ∨ q, ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_43:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     p ∨ q ⊢ ¬(¬p ∧ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_44:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 45. Demostrar&lt;br /&gt;
     p ∧ q ⊢ ¬(¬p ∨ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_45:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∨ ¬q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 46. Demostrar&lt;br /&gt;
     ¬(p ∨ q) ⊢ ¬p ∧ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_46:&lt;br /&gt;
  assumes &amp;quot;¬(p ∨ q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 47. Demostrar&lt;br /&gt;
     ¬p ∧ ¬q ⊢ ¬(p ∨ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_47:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ ¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(p ∨ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 48. Demostrar&lt;br /&gt;
     ¬p ∨ ¬q ⊢ ¬(p ∧ q)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_48:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 49. Demostrar&lt;br /&gt;
     ⊢ ¬(p ∧ ¬p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_49:&lt;br /&gt;
  &amp;quot;¬(p ∧ ¬p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 50. Demostrar&lt;br /&gt;
     p ∧ ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_50:&lt;br /&gt;
  assumes &amp;quot;p ∧ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 51. Demostrar&lt;br /&gt;
     ¬¬p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_51:&lt;br /&gt;
  assumes &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 52. Demostrar&lt;br /&gt;
     ⊢ p ∨ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_52:&lt;br /&gt;
  &amp;quot;p ∨ ¬p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 53. Demostrar&lt;br /&gt;
     ⊢ ((p ⟶ q) ⟶ p) ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_53:&lt;br /&gt;
  &amp;quot;((p ⟶ q) ⟶ p) ⟶ p&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 54. Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_54:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 55. Demostrar&lt;br /&gt;
     ¬(¬p ∧ ¬q) ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_55:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 56. Demostrar&lt;br /&gt;
     ¬(¬p ∨ ¬q) ⊢ p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_56:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∨ ¬q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 57. Demostrar&lt;br /&gt;
     ¬(p ∧ q) ⊢ ¬p ∨ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_57:&lt;br /&gt;
  assumes &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
text {* --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 58. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ q) ∨ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------ *}&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_58:&lt;br /&gt;
  &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=131</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=131"/>
		<updated>2013-03-04T18:22:06Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Relaciones de ejercicios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Rel_3 |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_2&amp;diff=130</id>
		<title>Tema 2</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Tema_2&amp;diff=130"/>
		<updated>2013-03-04T17:29:50Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt; header {* Tema 2: Deducción natural proposicional con Isabelle/HOL *}  theory T2 imports Main  begin  text {*   En esta sección se presentan los ejemplos ...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* Tema 2: Deducción natural proposicional con Isabelle/HOL *}&lt;br /&gt;
&lt;br /&gt;
theory T2&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  En esta sección se presentan los ejemplos del tema de deducción natural&lt;br /&gt;
  proposicional siguiendo la presentación de Huth y Ryan en su libro&lt;br /&gt;
  &amp;quot;Logic in Computer Science&amp;quot; http://goo.gl/qsVpY y, más concretamente,&lt;br /&gt;
  a la forma como se explica en la asignatura de &amp;quot;Lógica informática&amp;quot; (LI) &lt;br /&gt;
  http://goo.gl/AwDiv&lt;br /&gt;
 &lt;br /&gt;
  La página al lado de cada ejemplo indica la página de las transparencias &lt;br /&gt;
  de LI donde se encuentra la demostración. *}&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la conjunción *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 1 (p. 4). Demostrar que&lt;br /&gt;
     p ∧ q, r ⊢ q ∧ r.&lt;br /&gt;
  *}     &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_1_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ q&amp;quot; and&lt;br /&gt;
          2: &amp;quot;r&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;q&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  show 4: &amp;quot;q ∧ r&amp;quot; using 3 2 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Notas sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assumes&amp;quot; para indicar las hipótesis,&lt;br /&gt;
  · &amp;quot;and&amp;quot; para separar las hipótesis,&lt;br /&gt;
  · &amp;quot;shows&amp;quot; para indicar la conclusión,&lt;br /&gt;
  · &amp;quot;proof&amp;quot; para iniciar la prueba,&lt;br /&gt;
  · &amp;quot;qed&amp;quot; para terminar la pruebas,&lt;br /&gt;
  · &amp;quot;-&amp;quot; (después de &amp;quot;proof&amp;quot;) para no usar el método por defecto,&lt;br /&gt;
  · &amp;quot;have&amp;quot; para establecer un paso,&lt;br /&gt;
  · &amp;quot;using&amp;quot; para usar hechos en un paso,&lt;br /&gt;
  · &amp;quot;by (rule ..)&amp;quot; para indicar la regla con la que se peueba un hecho,&lt;br /&gt;
  · &amp;quot;show&amp;quot; para establecer la conclusión.&lt;br /&gt;
&lt;br /&gt;
  Notas sobre la lógica: Las reglas de la conjunción son&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden dejar implícitas las reglas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_2:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;r&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;q&amp;quot; using 1 .. &lt;br /&gt;
  show 4: &amp;quot;q ∧ r&amp;quot; using 3 2 ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;..&amp;quot; para indicar que se prueba por la regla correspondiente. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden eliminar las etiquetas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_3:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(1) ..&lt;br /&gt;
  thus &amp;quot;q ∧ r&amp;quot; using assms(2) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assms(n)&amp;quot; para indicar la hipótesis n y&lt;br /&gt;
  · &amp;quot;thus&amp;quot; para demostrar la conclusión usando el hecho anterior.&lt;br /&gt;
  Además, no es necesario usar and entre las hipótesis. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede automatizar la demostración como sigue *}&lt;br /&gt;
  &lt;br /&gt;
lemma ejemplo_1_4:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;assms&amp;quot; para indicar las hipótesis y&lt;br /&gt;
  · &amp;quot;by auto&amp;quot; para demostrar la conclusión automáticamente. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede automatizar totalmente la demostración como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_5:&lt;br /&gt;
  &amp;quot;⟦p ∧ q; r⟧ ⟹ q ∧ r&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;⟦ ... ⟧&amp;quot; para representar las hipótesis,&lt;br /&gt;
  · &amp;quot;;&amp;quot; para separar las hipótesis y&lt;br /&gt;
  · &amp;quot;⟹&amp;quot; para separar las hipótesis de la conclusión. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se puede hacer la demostración por razonamiento hacia atrás,&lt;br /&gt;
  como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_6:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
      and &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof (rule conjI)&lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1) by (rule conjunct2)&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;r&amp;quot; using assms(2) by this&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;proof (rule r)&amp;quot; para indicar que se hará la demostración con la&lt;br /&gt;
    regla r,&lt;br /&gt;
  · &amp;quot;next&amp;quot; para indicar el comienzo de la prueba del siguiente&lt;br /&gt;
    subobjetivo,&lt;br /&gt;
  · &amp;quot;this&amp;quot; para indicar el hecho actual. *}&lt;br /&gt;
&lt;br /&gt;
text {* Se pueden dejar implícitas las reglas como sigue *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_1_7:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
          &amp;quot;r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q ∧ r&amp;quot;     &lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;q&amp;quot; using assms(1) ..&lt;br /&gt;
next&lt;br /&gt;
  show &amp;quot;r&amp;quot; using assms(2) . &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;.&amp;quot; para indicar por el hecho actual. *}&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la doble negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación de la doble negación es&lt;br /&gt;
  · notnotD: ¬¬ P ⟹ P&lt;br /&gt;
&lt;br /&gt;
  Para ajustarnos al tema de LI vamos a introducir la siguiente regla de&lt;br /&gt;
  introducción de la doble negación&lt;br /&gt;
  · notnotI: P ⟹ ¬¬ P&lt;br /&gt;
  aunque, de momento, no detallamos su demostración.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma notnotI [intro!]: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 2. (p. 5)&lt;br /&gt;
       p, ¬¬(q ∧ r) ⊢ ¬¬p ∧ r&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_1:&lt;br /&gt;
  assumes 1: &amp;quot;p&amp;quot; and&lt;br /&gt;
          2: &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows      &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬p&amp;quot; using 1 by (rule notnotI)&lt;br /&gt;
  have 4: &amp;quot;q ∧ r&amp;quot; using 2 by (rule notnotD)&lt;br /&gt;
  have 5: &amp;quot;r&amp;quot; using 4 by (rule conjunct2)&lt;br /&gt;
  show 6: &amp;quot;¬¬p ∧ r&amp;quot; using 3 5 by (rule conjI)&lt;br /&gt;
qed        &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_2:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have  &amp;quot;¬¬p&amp;quot; using assms(1) ..&lt;br /&gt;
  have  &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD)&lt;br /&gt;
  hence &amp;quot;r&amp;quot; ..&lt;br /&gt;
  with `¬¬p` show  &amp;quot;¬¬p ∧ r&amp;quot; ..&lt;br /&gt;
qed        &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;hence&amp;quot; para indicar que se tiene por el hecho anterior y&lt;br /&gt;
  · `...` para referenciar un hecho. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_2_3:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* Se puede demostrar hacia atrás *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_2_4:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof  (rule conjI)&lt;br /&gt;
  show &amp;quot;¬¬p&amp;quot; using assms(1) by (rule notnotI)&lt;br /&gt;
next&lt;br /&gt;
  have &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD) &lt;br /&gt;
  thus &amp;quot;r&amp;quot; by (rule conjunct2)&lt;br /&gt;
qed &lt;br /&gt;
&lt;br /&gt;
text {* Se puede eliminar las reglas en la demostración anterior, como&lt;br /&gt;
  sigue: *}&lt;br /&gt;
&lt;br /&gt;
lemma ejemplo_2_5:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
          &amp;quot;¬¬(q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬¬p ∧ r&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  show &amp;quot;¬¬p&amp;quot; using assms(1) ..&lt;br /&gt;
next&lt;br /&gt;
  have &amp;quot;q ∧ r&amp;quot; using assms(2) by (rule notnotD) &lt;br /&gt;
  thus &amp;quot;r&amp;quot; .. &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de eliminación del condicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación del condicional es la regla del modus ponens&lt;br /&gt;
  · mp: ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 3. (p. 6) Demostar que&lt;br /&gt;
     ¬p ∧ q, ¬p ∧ q ⟶ r ∨ ¬p ⊢ r ∨ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ∧ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows      &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;r ∨ ¬p&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_2:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;r ∨ ¬p&amp;quot; using assms(2,1) ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_3_3:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p ∧ q ⟶ r ∨ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;r ∨ ¬p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 4 (p. 6) Demostrar que&lt;br /&gt;
     p, p ⟶ q, p ⟶ (q ⟶ r) ⊢ r&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_1:&lt;br /&gt;
  assumes 1: &amp;quot;p&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ⟶ q&amp;quot; and &lt;br /&gt;
          3: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;q ⟶ r&amp;quot; using 3 1 by (rule mp)&lt;br /&gt;
  show 6: &amp;quot;r&amp;quot; using 5 4 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_2:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows &amp;quot;r&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(2,1) .. &lt;br /&gt;
  have &amp;quot;q ⟶ r&amp;quot; using assms(3,1) ..&lt;br /&gt;
  thus &amp;quot;r&amp;quot; using `q` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_4_3:&lt;br /&gt;
  &amp;quot;⟦p; p ⟶ q; p ⟶ (q ⟶ r)⟧ ⟹ r&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla derivada del modus tollens *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Para ajustarnos al tema de LI vamos a introducir la regla del modus&lt;br /&gt;
  tollens&lt;br /&gt;
  · mt: ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  aunque, de momento, sin detallar su demostración.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 5 (p. 7). Demostrar&lt;br /&gt;
     p ⟶ (q ⟶ r), p, ¬r ⊢ ¬q&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ (q ⟶ r)&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p&amp;quot; and &lt;br /&gt;
          3: &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 4: &amp;quot;q ⟶ r&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
  show &amp;quot;¬q&amp;quot; using 4 3 by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;q ⟶ r&amp;quot; using assms(1,2) ..&lt;br /&gt;
  thus &amp;quot;¬q&amp;quot; using assms(3) by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_5_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ (q ⟶ r)&amp;quot;&lt;br /&gt;
          &amp;quot;p&amp;quot;&lt;br /&gt;
          &amp;quot;¬r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 6. (p. 7) Demostrar &lt;br /&gt;
     ¬p ⟶ q, ¬q ⊢ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ⟶ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬p&amp;quot; using 1 2 by (rule mt)&lt;br /&gt;
  show &amp;quot;p&amp;quot; using 3 by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_2:&lt;br /&gt;
  assumes &amp;quot;¬p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬p&amp;quot; using assms(1,2) by (rule mt)&lt;br /&gt;
  thus &amp;quot;p&amp;quot; by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_6_3:&lt;br /&gt;
  &amp;quot;⟦¬p ⟶ q; ¬q⟧ ⟹ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 7. (p. 7) Demostrar&lt;br /&gt;
     p ⟶ ¬q, q ⊢ ¬p&lt;br /&gt;
  *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ ¬q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have 3: &amp;quot;¬¬q&amp;quot; using 2 by (rule notnotI)&lt;br /&gt;
  show &amp;quot;¬p&amp;quot; using 1 3 by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ ¬q&amp;quot;&lt;br /&gt;
          &amp;quot;q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬q&amp;quot; using assms(2) by (rule notnotI)&lt;br /&gt;
  with assms(1) show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;with P show Q&amp;quot; para indicar que con el hecho anterior junto con el&lt;br /&gt;
    hecho P se demuestra Q. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_7_3:&lt;br /&gt;
  &amp;quot;⟦p ⟶ ¬q; q⟧ ⟹ ¬p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de introducción del condicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de introducción del condicional es&lt;br /&gt;
  · impI: (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 8. (p. 8) Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 2: &amp;quot;¬q&amp;quot;&lt;br /&gt;
    have &amp;quot;¬p&amp;quot; using 1 2 by (rule mt) } &lt;br /&gt;
  thus &amp;quot;¬q ⟶ ¬p&amp;quot; by (rule impI)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;{ ... }&amp;quot; para representar una caja. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
  with assms show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_8_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 9. (p. 9) Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ ¬¬q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_1: &lt;br /&gt;
  assumes 1: &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
proof -&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 3: &amp;quot;¬¬p&amp;quot; using 2 by (rule notnotI)&lt;br /&gt;
    have &amp;quot;¬¬q&amp;quot; using 1 3 by (rule mt) } &lt;br /&gt;
  thus &amp;quot;p ⟶ ¬¬q&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_2:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows    &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬¬p&amp;quot; by (rule notnotI)&lt;br /&gt;
  with assms show &amp;quot;¬¬q&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_9_3:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ ¬¬q&amp;quot;   &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 10 (p. 9). Demostrar&lt;br /&gt;
     ⊢ p ⟶ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_1:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 1: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 1 by this }&lt;br /&gt;
  thus &amp;quot;p ⟶ p&amp;quot; by (rule impI) &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_2:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_10_3:&lt;br /&gt;
  &amp;quot;p ⟶ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 11 (p. 10) Demostrar&lt;br /&gt;
     ⊢ (q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_1:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  { assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
    { assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
        have 4: &amp;quot;¬¬p&amp;quot; using 3 by (rule notnotI)&lt;br /&gt;
        have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
        have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
        have &amp;quot;r&amp;quot; using 1 6 by (rule mp) } &lt;br /&gt;
      hence &amp;quot;p ⟶ r&amp;quot; by (rule impI) } &lt;br /&gt;
    hence &amp;quot;(¬q ⟶ ¬p) ⟶ p ⟶ r&amp;quot; by (rule impI) } &lt;br /&gt;
  thus &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ p ⟶ r)&amp;quot; by (rule impI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_2:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
    proof (rule impI)&lt;br /&gt;
      assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
        proof (rule impI)&lt;br /&gt;
          assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
          have 4: &amp;quot;¬¬p&amp;quot; using 3 by (rule notnotI)&lt;br /&gt;
          have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
          have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
          show &amp;quot;r&amp;quot; using 1 6 by (rule mp)&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_3:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  show &amp;quot;(¬q ⟶ ¬p) ⟶ (p ⟶ r)&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume 2: &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
        proof&lt;br /&gt;
          assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
          have 4: &amp;quot;¬¬p&amp;quot; using 3 ..&lt;br /&gt;
          have 5: &amp;quot;¬¬q&amp;quot; using 2 4 by (rule mt)&lt;br /&gt;
          have 6: &amp;quot;q&amp;quot; using 5 by (rule notnotD)&lt;br /&gt;
          show &amp;quot;r&amp;quot; using 1 6 ..&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_11_4:&lt;br /&gt;
  &amp;quot;(q ⟶ r) ⟶ ((¬q ⟶ ¬p) ⟶ (p ⟶ r))&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la disyunción *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Las reglas de la introducción de la disyunción son&lt;br /&gt;
  · disjI1: P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2: Q ⟹ P ∨ Q&lt;br /&gt;
  La regla de elimación de la disyunción es&lt;br /&gt;
  · disjE:  ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 12 (p. 11). Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_1:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;p ∨ q&amp;quot; using assms by this&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; by (rule disjE) &lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;moreover&amp;quot; para separar los bloques y&lt;br /&gt;
  · &amp;quot;ultimately&amp;quot; para unir los resultados de los bloques. *}&lt;br /&gt;
 &lt;br /&gt;
-- &amp;quot;La demostración detallada con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_2:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  note `p ∨ q`&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    hence &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    hence &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Nota sobre el lenguaje: En la demostración anterior se ha usado&lt;br /&gt;
  · &amp;quot;note&amp;quot; para copiar un hecho. *}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_3:&lt;br /&gt;
  assumes 1: &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using 1&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    show &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración hacia atrás con reglas implícitas es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_4:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
proof &lt;br /&gt;
  { assume  &amp;quot;p&amp;quot;&lt;br /&gt;
    thus &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    thus &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_12_5:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 13. (p. 12) Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_1:&lt;br /&gt;
  assumes 1: &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 2: &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  thus &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
      show &amp;quot;p ∨ r&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 4: &amp;quot;q&amp;quot;&lt;br /&gt;
      have 5: &amp;quot;r&amp;quot; using 1 4 by (rule mp)&lt;br /&gt;
      show &amp;quot;p ∨ r&amp;quot; using 5 by (rule disjI2) }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_2:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  thus &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    { assume &amp;quot;p&amp;quot;&lt;br /&gt;
      thus &amp;quot;p ∨ r&amp;quot; .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;q&amp;quot;&lt;br /&gt;
      have &amp;quot;r&amp;quot; using assms `q` ..&lt;br /&gt;
      thus &amp;quot;p ∨ r&amp;quot; .. }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot; &lt;br /&gt;
lemma ejemplo_13_3:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
  shows &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Regla de copia *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 14 (p. 13). Demostrar&lt;br /&gt;
     ⊢ p ⟶ (q ⟶ p)&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_1:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;p&amp;quot;&lt;br /&gt;
  show &amp;quot;q ⟶ p&amp;quot; &lt;br /&gt;
  proof (rule impI)&lt;br /&gt;
    assume &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;p&amp;quot; using 1 by this&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_2:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  thus &amp;quot;q ⟶ p&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_14_3:&lt;br /&gt;
  &amp;quot;p ⟶ (q ⟶ p)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas de la negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de eliminación de lo falso es&lt;br /&gt;
  · FalseE: False ⟹ P&lt;br /&gt;
  La regla de eliminación de la negación es&lt;br /&gt;
  · notE: ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  La regla de introducción de la negación es&lt;br /&gt;
  · notI: (P ⟹ False) ⟹ ¬P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 15 (p. 15). Demostrar&lt;br /&gt;
     ¬p ∨ q ⊢ p ⟶ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_1:&lt;br /&gt;
  assumes 1: &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
  note 1&lt;br /&gt;
  thus &amp;quot;q&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume 3: &amp;quot;¬p&amp;quot;&lt;br /&gt;
      show &amp;quot;q&amp;quot; using 3 2 by (rule notE) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 4: &amp;quot;q&amp;quot;&lt;br /&gt;
      show &amp;quot;q&amp;quot; using 4 by this}&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_2:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  note `¬p ∨ q`&lt;br /&gt;
  thus &amp;quot;q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;q&amp;quot; using `p` .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;q&amp;quot;&lt;br /&gt;
      thus &amp;quot;q&amp;quot; . }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_15_3:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 16 (p. 16). Demostrar&lt;br /&gt;
     p ⟶ q, p ⟶ ¬q ⊢ ¬p&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
  have 4: &amp;quot;q&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;¬q&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  show False using 5 4 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  have &amp;quot;q&amp;quot; using assms(1) `p` ..&lt;br /&gt;
  have &amp;quot;¬q&amp;quot; using assms(2) `p` ..&lt;br /&gt;
  thus False using `q` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_16_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ⟶ ¬q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p&amp;quot;    &lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas del bicondicional *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de introducción del bicondicional es&lt;br /&gt;
  · iffI: ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P ⟷ Q&lt;br /&gt;
  Las reglas de eliminación del bicondicional son&lt;br /&gt;
  · iffD1: ⟦Q ⟷ P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2: ⟦P ⟷ Q; Q⟧ ⟹ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 17 (p. 17) Demostrar&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_1:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
proof (rule iffI)&lt;br /&gt;
  { assume 1: &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
    have 2: &amp;quot;p&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
    have 3: &amp;quot;q&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
    show &amp;quot;q ∧ p&amp;quot; using 3 2 by (rule conjI) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 4: &amp;quot;q ∧ p&amp;quot;&lt;br /&gt;
    have 5: &amp;quot;q&amp;quot; using 4 by (rule conjunct1)&lt;br /&gt;
    have 6: &amp;quot;p&amp;quot; using 4 by (rule conjunct2)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 6 5 by (rule conjI) }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_2:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  { assume 1: &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 1 ..&lt;br /&gt;
    have &amp;quot;q&amp;quot; using 1 ..&lt;br /&gt;
    show &amp;quot;q ∧ p&amp;quot; using `q` `p` .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume 2: &amp;quot;q ∧ p&amp;quot;&lt;br /&gt;
    have &amp;quot;q&amp;quot; using 2 ..&lt;br /&gt;
    have &amp;quot;p&amp;quot; using 2 ..&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using `p` `q`  .. }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_17_3:&lt;br /&gt;
  &amp;quot;(p ∧ q) ⟷ (q ∧ p)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 18 (p. 18). Demostrar&lt;br /&gt;
     p ⟷ q, p ∨ q ⊢ p ∧ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟷ q&amp;quot; and &lt;br /&gt;
          2: &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using 2&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 3: &amp;quot;p&amp;quot;&lt;br /&gt;
    have 4: &amp;quot;q&amp;quot; using 1 3 by (rule iffD1)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 3 4 by (rule conjI) }&lt;br /&gt;
next&lt;br /&gt;
  { assume 5: &amp;quot;q&amp;quot;&lt;br /&gt;
    have 6: &amp;quot;p&amp;quot; using 1 5 by (rule iffD2)&lt;br /&gt;
    show &amp;quot;p ∧ q&amp;quot; using 6 5 by (rule conjI) }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_2:&lt;br /&gt;
  assumes &amp;quot;p ⟷ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows  &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using assms(2)&lt;br /&gt;
proof&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    with assms(1) have &amp;quot;q&amp;quot; ..&lt;br /&gt;
    with `p` show &amp;quot;p ∧ q&amp;quot; .. }&lt;br /&gt;
next&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    with assms(1) have &amp;quot;p&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;p ∧ q&amp;quot; using `q` .. }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_18_3:&lt;br /&gt;
  assumes &amp;quot;p ⟷ q&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;  &lt;br /&gt;
  shows &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Reglas derivadas *}&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla del modus tollens *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 19 (p. 20) Demostrar la regla del modus tollens a partir de&lt;br /&gt;
  las reglas básicas. &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_1:&lt;br /&gt;
  assumes 1: &amp;quot;F ⟶ G&amp;quot; and &lt;br /&gt;
          2: &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬F&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 3: &amp;quot;F&amp;quot;&lt;br /&gt;
  have 4: &amp;quot;G&amp;quot; using 1 3 by (rule mp)&lt;br /&gt;
  show False using 2 4 by (rule notE)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_2:&lt;br /&gt;
  assumes &amp;quot;F ⟶ G&amp;quot;&lt;br /&gt;
          &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬F&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;F&amp;quot;&lt;br /&gt;
  with assms(1) have &amp;quot;G&amp;quot; ..&lt;br /&gt;
  with assms(2) show False ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_20_3:&lt;br /&gt;
  assumes &amp;quot;F ⟶ G&amp;quot;&lt;br /&gt;
          &amp;quot;¬G&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla de la introducción de la doble negación *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 21 (p. 21) Demostrar la regla de introducción de la doble&lt;br /&gt;
  negación a partir de las reglas básicas.&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_1:&lt;br /&gt;
  assumes 1: &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 2: &amp;quot;¬F&amp;quot;&lt;br /&gt;
  show False using 2 1 by (rule notE)&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_2:&lt;br /&gt;
  assumes &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;¬F&amp;quot;&lt;br /&gt;
  thus False using assms ..&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_21_3:&lt;br /&gt;
  assumes &amp;quot;F&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Regla de reducción al absurdo *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La regla de reducción al absurdo en Isabelle se correponde con la&lt;br /&gt;
  regla clásica de contradicción &lt;br /&gt;
  · ccontr: (¬P ⟹ False) ⟹ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
subsubsection {* Ley del tercio excluso *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  La ley del tercio excluso es &lt;br /&gt;
  · excluded_middle: ¬P ∨ P&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Ejemplo 22 (p. 23). Demostrar la ley del tercio excluso a partir de&lt;br /&gt;
  las reglas básicas.  &lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_1:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume 1: &amp;quot;¬(F ∨ ¬F)&amp;quot;&lt;br /&gt;
  thus False&lt;br /&gt;
  proof (rule notE)&lt;br /&gt;
    show &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
    proof (rule disjI2)&lt;br /&gt;
      show &amp;quot;¬F&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume 2: &amp;quot;F&amp;quot;&lt;br /&gt;
        hence 3: &amp;quot;F ∨ ¬F&amp;quot; by (rule disjI1)&lt;br /&gt;
        show False using 1 3 by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
    &lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_2:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
proof (rule ccontr)&lt;br /&gt;
  assume &amp;quot;¬(F ∨ ¬F)&amp;quot;&lt;br /&gt;
  thus False&lt;br /&gt;
  proof (rule notE)&lt;br /&gt;
    show &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
    proof (rule disjI2)&lt;br /&gt;
      show &amp;quot;¬F&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume &amp;quot;F&amp;quot;&lt;br /&gt;
        hence &amp;quot;F ∨ ¬F&amp;quot; ..&lt;br /&gt;
        with `¬(F ∨ ¬F)`show False ..&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
    &lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_22_3:&lt;br /&gt;
  &amp;quot;F ∨ ¬F&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 23 (p. 24). Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬p ∨ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_1:&lt;br /&gt;
  assumes 1: &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; by (rule excluded_middle)&lt;br /&gt;
  thus &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; by (rule disjI1) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
      have &amp;quot;q&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; by (rule disjI2) }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_2:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    { assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; .. }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;p&amp;quot;&lt;br /&gt;
      with assms have &amp;quot;q&amp;quot; ..&lt;br /&gt;
      thus &amp;quot;¬p ∨ q&amp;quot; .. }&lt;br /&gt;
  qed&lt;br /&gt;
qed    &lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_23_3:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
  shows &amp;quot;¬p ∨ q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
subsection {* Demostraciones por contradicción *}&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  Ejemplo 24. Demostrar que &lt;br /&gt;
     ¬p, p ∨ q ⊢ q&lt;br /&gt;
*}&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración detallada es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_1:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
using `p ∨ q`&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms(1) show &amp;quot;q&amp;quot; by contradiction &lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  thus &amp;quot;q&amp;quot; by assumption&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración estructurada es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_2:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
using `p ∨ q`&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms(1) show &amp;quot;q&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  thus &amp;quot;q&amp;quot; .&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
-- &amp;quot;La demostración automática es&amp;quot;&lt;br /&gt;
lemma ejemplo_24_3:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot;&lt;br /&gt;
          &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows &amp;quot;q&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=129</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=129"/>
		<updated>2013-03-04T17:25:02Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Relaciones de ejercicios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2&amp;#039;&amp;#039;&amp;#039;: [[Tema 2 | Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Media:Rel_3.thy |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=128</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=128"/>
		<updated>2013-03-04T17:24:00Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Relaciones de ejercicios */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
* [[Tema 2 | Deducción natural proposicional con Isabelle/HOL]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 3&amp;#039;&amp;#039;&amp;#039;: Deducción natural proposicional con Isabelle/HOL. ([[Media:Rel_3.thy |Enunciado]] y [[Relación 3 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_2&amp;diff=85</id>
		<title>Relación 2</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Relaci%C3%B3n_2&amp;diff=85"/>
		<updated>2013-02-20T15:53:20Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt; -- SintaxisSemanticaProp.hs -- Lógica proposicional: Sintaxis y semántica -- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt; -- ------------------------------...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;haskell&amp;quot;&amp;gt;&lt;br /&gt;
-- SintaxisSemanticaProp.hs&lt;br /&gt;
-- Lógica proposicional: Sintaxis y semántica&lt;br /&gt;
-- José A. Alonso Jiménez &amp;lt;jalonso@us,es&amp;gt;&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
module SintaxisSemantica where&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Librerías auxiliares                                               --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
import Data.List &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Gramática de fórmulas prosicionales                                --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 1: Definir los siguientes tipos de datos:&lt;br /&gt;
-- * SímboloProposicional para representar los símbolos de proposiciones&lt;br /&gt;
-- * Prop para representar las fórmulas proposicionales usando los&lt;br /&gt;
--   constructores Atom, Neg, Conj, Disj, Impl y Equi para las fórmulas&lt;br /&gt;
--   atómicas, negaciones, conjunciones, implicaciones y equivalencias,&lt;br /&gt;
--   respectivamente.  &lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
type SímboloProposicional = String&lt;br /&gt;
&lt;br /&gt;
data Prop = Atom SímboloProposicional&lt;br /&gt;
          | Neg Prop &lt;br /&gt;
          | Conj Prop Prop &lt;br /&gt;
          | Disj Prop Prop &lt;br /&gt;
          | Impl Prop Prop &lt;br /&gt;
          | Equi Prop Prop &lt;br /&gt;
          deriving (Eq,Ord)&lt;br /&gt;
&lt;br /&gt;
instance Show Prop where&lt;br /&gt;
    show (Atom p)   = p&lt;br /&gt;
    show (Neg p)    = &amp;quot;no &amp;quot; ++ show p&lt;br /&gt;
    show (Conj p q) = &amp;quot;(&amp;quot; ++ show p ++ &amp;quot; /\\ &amp;quot; ++ show q ++ &amp;quot;)&amp;quot;&lt;br /&gt;
    show (Disj p q) = &amp;quot;(&amp;quot; ++ show p ++ &amp;quot; \\/ &amp;quot; ++ show q ++ &amp;quot;)&amp;quot;&lt;br /&gt;
    show (Impl p q) = &amp;quot;(&amp;quot; ++ show p ++ &amp;quot; --&amp;gt; &amp;quot; ++ show q ++ &amp;quot;)&amp;quot;&lt;br /&gt;
    show (Equi p q) = &amp;quot;(&amp;quot; ++ show p ++ &amp;quot; &amp;lt;--&amp;gt; &amp;quot; ++ show q ++ &amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 2: Definir las siguientes fórmulas proposicionales&lt;br /&gt;
-- atómicas: p, p1, p2, q, r, s, t y u.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
p, p1, p2, q, r, s, t, u :: Prop&lt;br /&gt;
p  = Atom &amp;quot;p&amp;quot;&lt;br /&gt;
p1 = Atom &amp;quot;p1&amp;quot;&lt;br /&gt;
p2 = Atom &amp;quot;p2&amp;quot;&lt;br /&gt;
q  = Atom &amp;quot;q&amp;quot;&lt;br /&gt;
r  = Atom &amp;quot;r&amp;quot;&lt;br /&gt;
s  = Atom &amp;quot;s&amp;quot;&lt;br /&gt;
t  = Atom &amp;quot;t&amp;quot;&lt;br /&gt;
u  = Atom &amp;quot;u&amp;quot;&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 3: Definir la función&lt;br /&gt;
--    no :: Prop -&amp;gt; Prop&lt;br /&gt;
-- tal que (no f) es la negación de f.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
no :: Prop -&amp;gt; Prop&lt;br /&gt;
no = Neg&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 4: Definir los siguientes operadores&lt;br /&gt;
--    (/\), (\/), (--&amp;gt;), (&amp;lt;--&amp;gt;) :: Prop -&amp;gt; Prop -&amp;gt; Prop&lt;br /&gt;
-- tales que&lt;br /&gt;
--    f /\ g      es la conjunción de f y g&lt;br /&gt;
--    f \/ g      es la disyunción de f y g&lt;br /&gt;
--    f --&amp;gt; g     es la implicación de f a g&lt;br /&gt;
--    f &amp;lt;--&amp;gt; g    es la equivalencia entre f y g&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
infixr 5 \/&lt;br /&gt;
infixr 4 /\&lt;br /&gt;
infixr 3 --&amp;gt;&lt;br /&gt;
infixr 2 &amp;lt;--&amp;gt;&lt;br /&gt;
(/\), (\/), (--&amp;gt;), (&amp;lt;--&amp;gt;) :: Prop -&amp;gt; Prop -&amp;gt; Prop&lt;br /&gt;
(/\)   = Conj&lt;br /&gt;
(\/)   = Disj&lt;br /&gt;
(--&amp;gt;)  = Impl&lt;br /&gt;
(&amp;lt;--&amp;gt;) = Equi&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Símbolos proposicionales de una fórmula                            --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 5: Definir la función&lt;br /&gt;
--    símbolosPropFórm :: Prop -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (símbolosPropFórm f) es el conjunto formado por todos los&lt;br /&gt;
-- símbolos proposicionales que aparecen en f. Por ejemplo,&lt;br /&gt;
--    símbolosPropFórm (p /\ q --&amp;gt; p)  ==&amp;gt; [p,q]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
símbolosPropFórm :: Prop -&amp;gt; [Prop]&lt;br /&gt;
símbolosPropFórm = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Interpretaciones                                                   --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 6: Definir el tipo de datos Interpretación para&lt;br /&gt;
-- representar las interpretaciones como listas de fórmulas atómicas.&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
type Interpretación = [Prop]&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Significado de una fórmula en una interpretación                   --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 7: Definir la función&lt;br /&gt;
--    significado :: Prop -&amp;gt; Interpretación -&amp;gt; Bool&lt;br /&gt;
-- tal que (significado f i) es el significado de f en i. Por ejemplo,&lt;br /&gt;
--    significado ((p \/ q) /\ ((no q) \/ r)) [r]    ==&amp;gt;  False&lt;br /&gt;
--    significado ((p \/ q) /\ ((no q) \/ r)) [p,r]  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
significado :: Prop -&amp;gt; Interpretación -&amp;gt; Bool&lt;br /&gt;
significado = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Interpretaciones de una fórmula                                    --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 8: Definir la función&lt;br /&gt;
--    subconjuntos :: [a] -&amp;gt; [[a]]&lt;br /&gt;
-- tal que (subconjuntos x) es la lista de los subconjuntos de x. Por&lt;br /&gt;
-- ejmplo, &lt;br /&gt;
--    subconjuntos &amp;quot;abc&amp;quot;  ==&amp;gt;  [&amp;quot;abc&amp;quot;,&amp;quot;ab&amp;quot;,&amp;quot;ac&amp;quot;,&amp;quot;a&amp;quot;,&amp;quot;bc&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;,&amp;quot;&amp;quot;]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
subconjuntos :: [a] -&amp;gt; [[a]]&lt;br /&gt;
subconjuntos = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 9: Definir la función&lt;br /&gt;
--    interpretacionesFórm :: Prop -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (interpretacionesFórm f) es la lista de todas las&lt;br /&gt;
-- interpretaciones de f. Por ejemplo, &lt;br /&gt;
--    interpretacionesFórm (p /\ q --&amp;gt; p)  ==&amp;gt;  [[p,q],[p],[q],[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
interpretacionesFórm :: Prop -&amp;gt; [Interpretación]&lt;br /&gt;
interpretacionesFórm f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos de fórmulas                                                --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 10: Definir la función&lt;br /&gt;
--    esModeloFórmula :: Interpretación -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloFórmula i f) se verifica si i es un modelo de f. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esModeloFórmula [r]   ((p \/ q) /\ ((no q) \/ r))    ==&amp;gt;  False&lt;br /&gt;
--    esModeloFórmula [p,r] ((p \/ q) /\ ((no q) \/ r))    ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esModeloFórmula :: Interpretación -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esModeloFórmula i f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 11: Definir la función&lt;br /&gt;
--    modelosFórmula :: Prop -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (modelosFórmula f) es la lista de todas las interpretaciones&lt;br /&gt;
-- de f que son modelo de F. Por ejemplo,&lt;br /&gt;
--    modelosFórmula ((p \/ q) /\ ((no q) \/ r)) &lt;br /&gt;
--    ==&amp;gt; [[p,q,r],[p,r],[p],[q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosFórmula :: Prop -&amp;gt; [Interpretación]&lt;br /&gt;
modelosFórmula f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Fórmulas válidas, satisfacibles e insatisfacibles                  --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 12: Definir la función&lt;br /&gt;
--    esVálida :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esVálida f) se verifica si f es válida. Por ejemplo,&lt;br /&gt;
--    esVálida (p --&amp;gt; p)                 ==&amp;gt;  True&lt;br /&gt;
--    esVálida (p --&amp;gt; q)                 ==&amp;gt;  False&lt;br /&gt;
--    esVálida ((p --&amp;gt; q) \/ (q --&amp;gt; p))  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esVálida :: Prop -&amp;gt; Bool&lt;br /&gt;
esVálida f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 13: Definir la función&lt;br /&gt;
--    esInsatisfacible :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esInsatisfacible f) se verifica si f es insatisfacible. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esInsatisfacible (p /\ (no p))             ==&amp;gt;  True&lt;br /&gt;
--    esInsatisfacible ((p --&amp;gt; q) /\ (q --&amp;gt; r))  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esInsatisfacible :: Prop -&amp;gt; Bool&lt;br /&gt;
esInsatisfacible f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 14: Definir la función&lt;br /&gt;
--    esSatisfacible :: Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esSatisfacible f) se verifica si f es satisfacible. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esSatisfacible (p /\ (no p))             ==&amp;gt;  False&lt;br /&gt;
--    esSatisfacible ((p --&amp;gt; q) /\ (q --&amp;gt; r))  ==&amp;gt;  True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esSatisfacible :: Prop -&amp;gt; Bool&lt;br /&gt;
esSatisfacible f = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Símbolos proposicionales de un conjunto de fórmulas                --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 15: Definir la función&lt;br /&gt;
--    uniónGeneral :: Eq a =&amp;gt; [[a]] -&amp;gt; [a]&lt;br /&gt;
-- tal que (uniónGeneral x) es la unión de los conjuntos de la lista de&lt;br /&gt;
-- conjuntos x. Por ejemplo,&lt;br /&gt;
--    uniónGeneral []                 ==&amp;gt;  []&lt;br /&gt;
--    uniónGeneral [[1]]              ==&amp;gt;  [1]&lt;br /&gt;
--    uniónGeneral [[1],[1,2],[2,3]]  ==&amp;gt;  [1,2,3]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
uniónGeneral :: Eq a =&amp;gt; [[a]] -&amp;gt; [a]&lt;br /&gt;
uniónGeneral = undefined &lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 16: Definir la función&lt;br /&gt;
--    símbolosPropConj :: [Prop] -&amp;gt; [Prop]&lt;br /&gt;
-- tal que (símbolosPropConj s) es el conjunto de los símbolos&lt;br /&gt;
-- proposiciones de s. Por ejemplo,&lt;br /&gt;
--    símbolosPropConj [p /\ q --&amp;gt; r, p --&amp;gt; s]  ==&amp;gt;  [p,q,r,s]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
símbolosPropConj :: [Prop] -&amp;gt; [Prop]&lt;br /&gt;
símbolosPropConj s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Interpretaciones de un conjunto de fórmulas                        --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 17: Definir la función&lt;br /&gt;
--    interpretacionesConjunto :: [Prop] -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (interpretacionesConjunto s) es la lista de las&lt;br /&gt;
-- interpretaciones de s. Por ejemplo,&lt;br /&gt;
--    interpretacionesConjunto [p --&amp;gt; q, q --&amp;gt; r]&lt;br /&gt;
--    ==&amp;gt; [[p,q,r],[p,q],[p,r],[p],[q,r],[q],[r],[]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
interpretacionesConjunto :: [Prop] -&amp;gt; [Interpretación]&lt;br /&gt;
interpretacionesConjunto s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Modelos de conjuntos de fórmulas                                   --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 18: Definir la función&lt;br /&gt;
--    esModeloConjunto :: Interpretación -&amp;gt; [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esModeloConjunto i s) se verifica si i es modelo de s. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esModeloConjunto [p,r] [(p \/ q) /\ ((no q) \/ r), q --&amp;gt; r]&lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esModeloConjunto [p,r] [(p \/ q) /\ ((no q) \/ r), r --&amp;gt; q]&lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esModeloConjunto :: Interpretación -&amp;gt; [Prop] -&amp;gt; Bool&lt;br /&gt;
esModeloConjunto i s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 19: Definir la función&lt;br /&gt;
--    modelosConjunto :: [Prop] -&amp;gt; [Interpretación]&lt;br /&gt;
-- tal que (modelosConjunto s) es la lista de modelos del conjunto&lt;br /&gt;
-- s. Por ejemplo,&lt;br /&gt;
--    modelosConjunto [(p \/ q) /\ ((no q) \/ r), q --&amp;gt; r]&lt;br /&gt;
--    ==&amp;gt; [[p,q,r],[p,r],[p],[q,r]]&lt;br /&gt;
--    modelosConjunto [(p \/ q) /\ ((no q) \/ r), r --&amp;gt; q]&lt;br /&gt;
--    ==&amp;gt; [[p,q,r],[p],[q,r]]&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
modelosConjunto :: [Prop] -&amp;gt; [Interpretación]&lt;br /&gt;
modelosConjunto s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Conjuntos consistentes e inconsistentes de fórmulas                --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 20: Definir la función&lt;br /&gt;
--    esConsistente :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsistente s) se verifica si s es consistente. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esConsistente [(p \/ q) /\ ((no q) \/ r), p --&amp;gt; r]        &lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
--    esConsistente [(p \/ q) /\ ((no q) \/ r), p --&amp;gt; r, no r]  &lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConsistente :: [Prop] -&amp;gt; Bool&lt;br /&gt;
esConsistente s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 21: Definir la función&lt;br /&gt;
--    esInconsistente :: [Prop] -&amp;gt; Bool&lt;br /&gt;
-- tal que (esInconsistente s) se verifica si s es inconsistente. Por&lt;br /&gt;
-- ejemplo, &lt;br /&gt;
--    esInconsistente [(p \/ q) /\ ((no q) \/ r), p --&amp;gt; r]        &lt;br /&gt;
--    ==&amp;gt; False&lt;br /&gt;
--    esInconsistente [(p \/ q) /\ ((no q) \/ r), p --&amp;gt; r, no r]  &lt;br /&gt;
--    ==&amp;gt; True&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esInconsistente :: [Prop] -&amp;gt; Bool&lt;br /&gt;
esInconsistente s = undefined&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Consecuencia lógica                                                --&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
-- Ejercicio 22: Definir la función&lt;br /&gt;
--    esConsecuencia :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
-- tal que (esConsecuencia s f) se verifica si f es consecuencia de&lt;br /&gt;
-- s. Por ejemplo,&lt;br /&gt;
--    esConsecuencia [p --&amp;gt; q, q --&amp;gt; r] (p --&amp;gt; r)  ==&amp;gt;  True&lt;br /&gt;
--    esConsecuencia [p] (p /\ q)                  ==&amp;gt;  False&lt;br /&gt;
-- ---------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
esConsecuencia :: [Prop] -&amp;gt; Prop -&amp;gt; Bool&lt;br /&gt;
esConsecuencia s f = undefined&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Archivo:Rel_2.hs&amp;diff=84</id>
		<title>Archivo:Rel 2.hs</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Archivo:Rel_2.hs&amp;diff=84"/>
		<updated>2013-02-20T15:52:21Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=83</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=83"/>
		<updated>2013-02-20T15:51:47Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Relaciones de ejercicios con Haskell */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios con Haskell ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 2&amp;#039;&amp;#039;&amp;#039;: Sintaxis y semántica de la lógica proposicional en Haskell. ([[Media:Rel_2.hs |Enunciado]] y [[Relación 2 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Problema_2&amp;diff=66</id>
		<title>Problema 2</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=Problema_2&amp;diff=66"/>
		<updated>2013-02-18T19:35:24Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: Página creada con &amp;#039;== Enunciado ==  ¿Existe un conjunto S de tres fórmulas tal que de todos los subconjuntos de S sólo uno es inconsistente?   == Soluciones colaborativas ==&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Enunciado ==&lt;br /&gt;
&lt;br /&gt;
¿Existe un conjunto S de tres fórmulas tal que de todos los subconjuntos de S sólo uno es inconsistente? &lt;br /&gt;
&lt;br /&gt;
== Soluciones colaborativas ==&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=65</id>
		<title>Lógica matemática y fundamentos</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2013/index.php?title=L%C3%B3gica_matem%C3%A1tica_y_fundamentos&amp;diff=65"/>
		<updated>2013-02-18T19:34:33Z</updated>

		<summary type="html">&lt;p&gt;Jalonso: /* Problemas semanales */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Relaciones de ejercicios ==&lt;br /&gt;
En esta página se publicarán las relaciones de ejercicios y sus soluciones colaborativas.&lt;br /&gt;
&lt;br /&gt;
=== Relaciones de ejercicios con Haskell ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Relación 1&amp;#039;&amp;#039;&amp;#039;: Iniciación a la programación con Haskell ([[Media:Rel_1.hs |Enunciado]] y [[Relación 1 |Solución colaborativa]]).&lt;br /&gt;
&lt;br /&gt;
=== Problemas semanales ===&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 1&amp;#039;&amp;#039;&amp;#039;: [[Problema 1 | Inducción sobre fórmulas]].&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Problema 2&amp;#039;&amp;#039;&amp;#039;: [[Problema 2 | Subconjuntos inconsistentes]].&lt;/div&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
</feed>