<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/~jalonso/DAO2011/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mjoseh</id>
	<title>Demostración asistida por ordenador (2011-12) - Contribuciones del usuario [es]</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/~jalonso/DAO2011/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Mjoseh"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/DAO2011/index.php/Especial:Contribuciones/Mjoseh"/>
	<updated>2026-07-17T22:25:09Z</updated>
	<subtitle>Contribuciones del usuario</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Ejercicios_del_tema_4&amp;diff=46</id>
		<title>Ejercicios del tema 4</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Ejercicios_del_tema_4&amp;diff=46"/>
		<updated>2011-04-14T13:33:37Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt; theory Relacion_10 imports Main  begin   section {* Deducción natural de primer orden *}  text {* Los ejercicios de esta relación deben de resolverse usan...&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;
theory Relacion_10&lt;br /&gt;
imports Main &lt;br /&gt;
begin &lt;br /&gt;
&lt;br /&gt;
section {* Deducción natural de primer orden *}&lt;br /&gt;
&lt;br /&gt;
text {* Los ejercicios de esta relación deben de resolverse usando sólo&lt;br /&gt;
  las reglas básicas de la deducción natural proposicional y de primer &lt;br /&gt;
  orden:&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;
  · 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;
&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 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;
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;
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;
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;
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;
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;
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;
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;
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;
lemma ejercicio_10:&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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
lemma ejercicio_20:&lt;br /&gt;
  assumes &amp;quot;∀x.∀y.∀z. R x y ∧ R y z ⟶ R x z&amp;quot; and&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;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; and&lt;br /&gt;
          &amp;quot;∃x. ¬Q x&amp;quot; and&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;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; and&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;
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;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Tema_4_ej&amp;diff=45</id>
		<title>Tema 4 ej</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Tema_4_ej&amp;diff=45"/>
		<updated>2011-04-14T13:33:26Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt; theory Relacion_10 imports Main  begin   section {* Deducción natural de primer orden *}  text {* Los ejercicios de esta relación deben de resolverse usan...&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;
theory Relacion_10&lt;br /&gt;
imports Main &lt;br /&gt;
begin &lt;br /&gt;
&lt;br /&gt;
section {* Deducción natural de primer orden *}&lt;br /&gt;
&lt;br /&gt;
text {* Los ejercicios de esta relación deben de resolverse usando sólo&lt;br /&gt;
  las reglas básicas de la deducción natural proposicional y de primer &lt;br /&gt;
  orden:&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;
  · 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;
&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 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;
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;
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;
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;
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;
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;
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;
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;
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;
lemma ejercicio_10:&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;
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;
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;
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;
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;
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;
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;
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;
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;
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;
lemma ejercicio_20:&lt;br /&gt;
  assumes &amp;quot;∀x.∀y.∀z. R x y ∧ R y z ⟶ R x z&amp;quot; and&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;
lemma ejercicio_21:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; and&lt;br /&gt;
          &amp;quot;∃x. ¬Q x&amp;quot; and&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;
lemma ejercicio_22:&lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; and&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;
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;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Ejercicios&amp;diff=44</id>
		<title>Ejercicios</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Ejercicios&amp;diff=44"/>
		<updated>2011-04-14T13:33:05Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Ejercicios de &amp;#039;&amp;#039;Demostración asistida por ordenador&amp;#039;&amp;#039; ==&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 2:&amp;#039;&amp;#039;&amp;#039; Razonamiento sobre programas ([[Rel_1|Enunciado]] y [[Relación 1|Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 3:&amp;#039;&amp;#039;&amp;#039; Deducción natural proposicional con Isabelle ([[Tema_3_ej|Enunciado]] y [[Ejercicios del tema 3 |Solución colaborativa]]).&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Tema 4:&amp;#039;&amp;#039;&amp;#039; Deducción natural en lógica de primer orden con Isabelle ([[Tema_4_ej|Enunciado]] y [[Ejercicios del tema 4 |Solución colaborativa]]).&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Tema_4:_Deducci%C3%B3n_natural_en_l%C3%B3gica_de_primer_orden_con_Isabelle&amp;diff=43</id>
		<title>Tema 4: Deducción natural en lógica de primer orden con Isabelle</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Tema_4:_Deducci%C3%B3n_natural_en_l%C3%B3gica_de_primer_orden_con_Isabelle&amp;diff=43"/>
		<updated>2011-04-14T13:28:05Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* Deducción natural en la lógica de primer orden *}&lt;br /&gt;
&lt;br /&gt;
theory LogicaDePrimerOrdenEj&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  En esta teoría se presentan los ejemplos del tema de deducción natural&lt;br /&gt;
  en lógica de primer orden siguiendo la presentación de Huth y Ryan en su&lt;br /&gt;
  libro  &amp;quot;Logic in Computer Science&amp;quot;&lt;br /&gt;
  http://www.cs.bham.ac.uk/research/projects/lics/ 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; y&lt;br /&gt;
  que puede verse en http://www.cs.us.es/~jalonso/cursos/li/temas/tema-7.pdf &lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas del modus tollen y de la introducción de la&lt;br /&gt;
  doble negació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;
lemma notnotI:&lt;br /&gt;
  &amp;quot;P ⟹ ¬¬P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;P(c)&amp;quot; and&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 (rule notI)&lt;br /&gt;
  assume 1: &amp;quot;Q(c)&amp;quot;&lt;br /&gt;
  have 2: &amp;quot;P(c) ⟶ ¬Q(c)&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
  have 3: &amp;quot;¬¬Q(c)&amp;quot; using 1 by (rule notnotI)&lt;br /&gt;
  have 4: &amp;quot;¬P(c)&amp;quot; using 2 3 by (rule mt)&lt;br /&gt;
  thus &amp;quot;False&amp;quot; using assms(1) by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;∀x. (P x ⟶ ¬(Q x))&amp;quot; and&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 (rule allI)&lt;br /&gt;
  fix x&lt;br /&gt;
  have 1: &amp;quot;P x ⟶ ¬(Q x)&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  have 2: &amp;quot;P x&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
  show &amp;quot;¬(Q x)&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &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;
lemma&lt;br /&gt;
  assumes &amp;quot;∀x. (P x ⟶ Q x)&amp;quot; and&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 1: &amp;quot;P a&amp;quot; using assms(2) by (rule exE)&lt;br /&gt;
  have 2: &amp;quot;P a ⟶ Q a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;∀x. (Q x ⟶ R x)&amp;quot; and&lt;br /&gt;
          &amp;quot;∃x . (P x ∧ Q x)&amp;quot;&lt;br /&gt;
  shows &amp;quot;∃x . (P x ∧ R x)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; using assms(2) by (rule exE)&lt;br /&gt;
  have 2: &amp;quot;Q a ⟶ R a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  have 3: &amp;quot;Q a&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  have 4: &amp;quot;R a&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;P a&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
  hence &amp;quot;P a ∧ R a&amp;quot; using 4 by (rule conjI)&lt;br /&gt;
  thus &amp;quot;∃x . (P x ∧ R x)&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;∃x. P x&amp;quot; and&lt;br /&gt;
          &amp;quot;∀x.∀y. (P x ⟶ Q y)&amp;quot;&lt;br /&gt;
  shows &amp;quot;∀y. Q y&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix b&lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  have &amp;quot;∀y. (P a ⟶ Q y)&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
  hence &amp;quot;P a ⟶ Q b&amp;quot; by (rule allE)&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot; using 1 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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 1: &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;¬P a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  have 3: &amp;quot;P a&amp;quot; using 1 by (rule allE)&lt;br /&gt;
  show False using 2 3 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &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 1: &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    show &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
    proof (rule allI)&lt;br /&gt;
      fix x&lt;br /&gt;
      have &amp;quot;P x&amp;quot; using 1 by (rule allE)&lt;br /&gt;
      thus &amp;quot;P x ∨ Q x&amp;quot; by (rule disjI1)&lt;br /&gt;
    qed }&lt;br /&gt;
next&lt;br /&gt;
  { assume 2: &amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    show &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
    proof (rule allI)&lt;br /&gt;
      fix x&lt;br /&gt;
      have &amp;quot;Q x&amp;quot; using 2 by (rule allE)&lt;br /&gt;
      thus &amp;quot;P x ∨ Q x&amp;quot; by (rule disjI2)&lt;br /&gt;
    qed }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &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 impI)&lt;br /&gt;
  assume 1: &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
  show &amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix x &lt;br /&gt;
    have 2: &amp;quot;P x ⟶ Q x&amp;quot; using assms by (rule allE)&lt;br /&gt;
    have 3: &amp;quot;P x&amp;quot; using 1 by (rule allE)&lt;br /&gt;
    show &amp;quot;Q x&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &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;
proof (rule allI)&lt;br /&gt;
  fix a&lt;br /&gt;
  show &amp;quot;P a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;∀x. ¬Q x&amp;quot;&lt;br /&gt;
  show &amp;quot;∀x. ¬P x&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix x&lt;br /&gt;
    have 2: &amp;quot;P x ⟶ Q x&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
    have 3: &amp;quot;¬Q x&amp;quot; using 1 by (rule allE)&lt;br /&gt;
    show &amp;quot;¬P x&amp;quot; using 2 3 by (rule mt)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
proof (rule notI)&lt;br /&gt;
  assume &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a ∧ Q a&amp;quot; by (rule exE)&lt;br /&gt;
  have 2: &amp;quot;P a ⟶ ¬Q a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  have 3: &amp;quot;P a&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
  have 4: &amp;quot;¬Q a&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;Q a&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  show False using 4 5 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
proof (rule allI)&lt;br /&gt;
  fix u&lt;br /&gt;
  show &amp;quot;∀v. P u v&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix v&lt;br /&gt;
    have &amp;quot;∀y. P u y&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
    thus &amp;quot;P u v&amp;quot; by (rule allE)&lt;br /&gt;
  qed &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
proof -&lt;br /&gt;
  obtain a where &amp;quot;∃y. P a y&amp;quot; using assms(1) 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;∃v. P a v&amp;quot; by (rule exI)&lt;br /&gt;
  thus &amp;quot;∃u. ∃v. P u v&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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 (rule allI)&lt;br /&gt;
  fix y&lt;br /&gt;
  obtain a where &amp;quot;∀y. P a y&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  hence &amp;quot;P a y&amp;quot; by (rule allE)&lt;br /&gt;
  thus &amp;quot;∃x. P x y&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where &amp;quot;P a ⟶ Q b&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1 by (rule mp)&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
proof -&lt;br /&gt;
  have &amp;quot;¬P a ∨ P a&amp;quot; by (rule excluded_middle)&lt;br /&gt;
  thus &amp;quot;∃x. P a ⟶ 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;P a ⟶ Q b&amp;quot; by simp&lt;br /&gt;
      thus &amp;quot;∃x. P a ⟶ Q x&amp;quot; by (rule exI) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. Q x&amp;quot; using assms(1) by simp&lt;br /&gt;
      then obtain c where &amp;quot;Q c&amp;quot; by (rule exE)&lt;br /&gt;
      hence &amp;quot;P a ⟶ Q c&amp;quot; by simp&lt;br /&gt;
      thus &amp;quot;∃x. P a ⟶ Q x&amp;quot; by (rule exI) }&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
proof (rule allI)&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;P x ⟶ Q a&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;P x&amp;quot;&lt;br /&gt;
    hence 1: &amp;quot;∃x. P x&amp;quot; by (rule exI)&lt;br /&gt;
    show &amp;quot;Q a&amp;quot; using assms(1) 1 by (rule mp)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
proof (rule exI)&lt;br /&gt;
  show &amp;quot;P b ⟶ Q a&amp;quot; using assms(1) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &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 1: &amp;quot;P a ∧ Q a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; by (rule conjunct1)&lt;br /&gt;
  hence 2: &amp;quot;∃x. P x&amp;quot; by (rule exI)&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  hence 3: &amp;quot;∃x. Q x&amp;quot; by (rule exI)&lt;br /&gt;
  show &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot; using 2 3 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;∃y. P y&amp;quot;&lt;br /&gt;
  show &amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix x&lt;br /&gt;
    have 2: &amp;quot;∀y. P y ⟶ Q x&amp;quot; using assms by (rule allE)&lt;br /&gt;
    obtain b where 3: &amp;quot;P b&amp;quot; using 1 by (rule exE)&lt;br /&gt;
    have &amp;quot;P b ⟶ Q x&amp;quot; using 2 by (rule allE)&lt;br /&gt;
    thus &amp;quot;Q x&amp;quot; using 3 by (rule mp)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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 1: &amp;quot;¬(∃x. P x)&amp;quot;&lt;br /&gt;
  have 2: &amp;quot;∀x. ¬P x&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    fix x&lt;br /&gt;
    show &amp;quot;¬P x&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P x&amp;quot;&lt;br /&gt;
      hence 3: &amp;quot;∃x. P x&amp;quot; by (rule exI)&lt;br /&gt;
      show False using 1 3 by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
  show False using assms(1) 2 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
  then obtain a where 1: &amp;quot;P a&amp;quot; by (rule exE)&lt;br /&gt;
  have &amp;quot;¬P a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  thus False using 1 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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 1: &amp;quot;∀x. ¬P x&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;P a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  have &amp;quot;¬P a&amp;quot; using 1 by (rule allE)&lt;br /&gt;
  thus False using 2 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
proof (rule allI)&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;P a ⟶ Q x&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume 1: &amp;quot;P a&amp;quot;&lt;br /&gt;
    have &amp;quot;∀x. Q x&amp;quot; using assms(1) 1 by (rule mp)&lt;br /&gt;
    thus &amp;quot;Q x&amp;quot; by (rule allE)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;∀x.∀y.∀z. R x y ∧ R y z ⟶ R x z&amp;quot; and&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;
proof (rule allI)&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;∀y. R x y ⟶ ¬R y x&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix y&lt;br /&gt;
    show &amp;quot;R x y ⟶ ¬R y x&amp;quot;&lt;br /&gt;
    proof (rule impI)&lt;br /&gt;
      assume 1: &amp;quot;R x y&amp;quot;&lt;br /&gt;
      show &amp;quot;¬R y x&amp;quot;&lt;br /&gt;
      proof&lt;br /&gt;
        assume 2: &amp;quot;R y x&amp;quot;&lt;br /&gt;
        have &amp;quot;∀y.∀z. R x y ∧ R y z ⟶ R x z&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
        hence &amp;quot;∀z. R x y ∧ R y z ⟶ R x z&amp;quot; by (rule allE)&lt;br /&gt;
        hence 3: &amp;quot;R x y ∧ R y x ⟶ R x x&amp;quot; by (rule allE)&lt;br /&gt;
        have 4: &amp;quot;R x y ∧ R y x&amp;quot; using 1 2 by (rule conjI)&lt;br /&gt;
        have 5: &amp;quot;R x x&amp;quot; using 3 4  by (rule mp)&lt;br /&gt;
        have &amp;quot;¬R x x&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
        thus False using 5 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;
lemma &lt;br /&gt;
  assumes &amp;quot;∀x. P x ∨ Q x&amp;quot; and&lt;br /&gt;
          &amp;quot;∃x. ¬Q x&amp;quot; and&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;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;¬Q 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;∃x. ¬R x&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence 2: &amp;quot;¬¬P a&amp;quot; by (rule notnotI)&lt;br /&gt;
      have &amp;quot;R a ⟶ ¬P a&amp;quot; using assms(3) by (rule allE)&lt;br /&gt;
      hence &amp;quot;¬R a&amp;quot; using 2 by (rule mt)&lt;br /&gt;
      thus &amp;quot;∃x. ¬R x&amp;quot; by (rule exI) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 3: &amp;quot;Q a&amp;quot;&lt;br /&gt;
      show &amp;quot;∃x. ¬R x&amp;quot; using 1 3 by (rule notE) }&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;∀x. P x ⟶ Q x ∨ R x&amp;quot; and&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;
proof&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;P x ⟶ Q x&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume 1: &amp;quot;P x&amp;quot;&lt;br /&gt;
    have &amp;quot;P x ⟶ Q x ∨ R x&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
    hence &amp;quot;Q x ∨ R x&amp;quot; using 1 by (rule mp)&lt;br /&gt;
    thus &amp;quot;Q x&amp;quot;&lt;br /&gt;
    proof (rule disjE)&lt;br /&gt;
      { assume &amp;quot;Q x&amp;quot;&lt;br /&gt;
        thus &amp;quot;Q x&amp;quot; by this }&lt;br /&gt;
    next&lt;br /&gt;
      { assume 2: &amp;quot;R x&amp;quot;&lt;br /&gt;
        have &amp;quot;P x ∧ R x&amp;quot; using 1 2 by (rule conjI)&lt;br /&gt;
        hence 3: &amp;quot;∃x. P x ∧ R x&amp;quot; by (rule exI)&lt;br /&gt;
        show &amp;quot;Q x&amp;quot; using assms(2) 3 by (rule notE) }&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
proof -&lt;br /&gt;
  obtain a where &amp;quot;∃y. R a y ∨ R y a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot; by (rule exE)&lt;br /&gt;
  thus &amp;quot;∃x.∃y. R x y&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    { assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃y. R a y&amp;quot; by (rule exI)&lt;br /&gt;
      thus &amp;quot;∃x.∃y. R x y&amp;quot; by (rule exI) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃y. R b y&amp;quot; by (rule exI)&lt;br /&gt;
      thus &amp;quot;∃x.∃y. R x y&amp;quot; by (rule exI) }&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Tema_4:_Deducci%C3%B3n_natural_en_l%C3%B3gica_de_primer_orden_con_Isabelle&amp;diff=42</id>
		<title>Tema 4: Deducción natural en lógica de primer orden con Isabelle</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Tema_4:_Deducci%C3%B3n_natural_en_l%C3%B3gica_de_primer_orden_con_Isabelle&amp;diff=42"/>
		<updated>2011-04-14T13:27:15Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;source lang=&amp;quot;isar&amp;quot;&amp;gt;&lt;br /&gt;
header {* Deducción natural en la lógica de primer orden *}&lt;br /&gt;
&lt;br /&gt;
theory LogicaDePrimerOrdenEj&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  En esta teoría se presentan los ejemplos del tema de deducción natural&lt;br /&gt;
  en lógica de primer orden siguiendo la presentación de Huth y Ryan en su&lt;br /&gt;
  libro  &amp;quot;Logic in Computer Science&amp;quot;&lt;br /&gt;
  http://www.cs.bham.ac.uk/research/projects/lics/ 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; y&lt;br /&gt;
  que puede verse en http://www.cs.us.es/~jalonso/cursos/li/temas/tema-7.pdf &lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas del modus tollen y de la introducción de la&lt;br /&gt;
  doble negación.&lt;br /&gt;
*}&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 notnotI:&lt;br /&gt;
  &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;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;P(c)&amp;quot; and&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 (rule notI)&lt;br /&gt;
  assume 1: &amp;quot;Q(c)&amp;quot;&lt;br /&gt;
  have 2: &amp;quot;P(c) \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;Q(c)&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
  have 3: &amp;quot;\&amp;lt;not&amp;gt;\&amp;lt;not&amp;gt;Q(c)&amp;quot; using 1 by (rule notnotI)&lt;br /&gt;
  have 4: &amp;quot;\&amp;lt;not&amp;gt;P(c)&amp;quot; using 2 3 by (rule mt)&lt;br /&gt;
  thus &amp;quot;False&amp;quot; using assms(1) by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &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; and&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 (rule allI)&lt;br /&gt;
  fix x&lt;br /&gt;
  have 1: &amp;quot;P x \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;(Q x)&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  have 2: &amp;quot;P x&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
  show &amp;quot;\&amp;lt;not&amp;gt;(Q x)&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &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;
lemma&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. (P x \&amp;lt;longrightarrow&amp;gt; Q x)&amp;quot; and&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 1: &amp;quot;P a&amp;quot; using assms(2) by (rule exE)&lt;br /&gt;
  have 2: &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
  thus &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;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. (Q x \&amp;lt;longrightarrow&amp;gt; R x)&amp;quot; and&lt;br /&gt;
          &amp;quot;\&amp;lt;exists&amp;gt;x . (P x \&amp;lt;and&amp;gt; Q x)&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x . (P x \&amp;lt;and&amp;gt; R x)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;P a \&amp;lt;and&amp;gt; Q a&amp;quot; using assms(2) by (rule exE)&lt;br /&gt;
  have 2: &amp;quot;Q a \&amp;lt;longrightarrow&amp;gt; R a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  have 3: &amp;quot;Q a&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  have 4: &amp;quot;R a&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;P a&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
  hence &amp;quot;P a \&amp;lt;and&amp;gt; R a&amp;quot; using 4 by (rule conjI)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x . (P x \&amp;lt;and&amp;gt; R x)&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot; and&lt;br /&gt;
          &amp;quot;\&amp;lt;forall&amp;gt;x.\&amp;lt;forall&amp;gt;y. (P x \&amp;lt;longrightarrow&amp;gt; Q y)&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;y. Q y&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix b&lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  have &amp;quot;\&amp;lt;forall&amp;gt;y. (P a \&amp;lt;longrightarrow&amp;gt; Q y)&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
  hence &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q b&amp;quot; by (rule allE)&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot; using 1 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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 1: &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;\&amp;lt;not&amp;gt;P a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  have 3: &amp;quot;P a&amp;quot; using 1 by (rule allE)&lt;br /&gt;
  show False using 2 3 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;(\&amp;lt;forall&amp;gt;x. P x) \&amp;lt;or&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;or&amp;gt; Q x&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 1: &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
    show &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;or&amp;gt; Q x&amp;quot;&lt;br /&gt;
    proof (rule allI)&lt;br /&gt;
      fix x&lt;br /&gt;
      have &amp;quot;P x&amp;quot; using 1 by (rule allE)&lt;br /&gt;
      thus &amp;quot;P x \&amp;lt;or&amp;gt; Q x&amp;quot; by (rule disjI1)&lt;br /&gt;
    qed }&lt;br /&gt;
next&lt;br /&gt;
  { assume 2: &amp;quot;\&amp;lt;forall&amp;gt;x. Q x&amp;quot;&lt;br /&gt;
    show &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;or&amp;gt; Q x&amp;quot;&lt;br /&gt;
    proof (rule allI)&lt;br /&gt;
      fix x&lt;br /&gt;
      have &amp;quot;Q x&amp;quot; using 2 by (rule allE)&lt;br /&gt;
      thus &amp;quot;P x \&amp;lt;or&amp;gt; Q x&amp;quot; by (rule disjI2)&lt;br /&gt;
    qed }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &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;
  shows &amp;quot;(\&amp;lt;forall&amp;gt;x. P x) \&amp;lt;longrightarrow&amp;gt; (\&amp;lt;forall&amp;gt;x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&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 x &lt;br /&gt;
    have 2: &amp;quot;P x \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; using assms by (rule allE)&lt;br /&gt;
    have 3: &amp;quot;P x&amp;quot; using 1 by (rule allE)&lt;br /&gt;
    show &amp;quot;Q x&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;y. P y&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix a&lt;br /&gt;
  show &amp;quot;P a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
  shows &amp;quot;(\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;Q x) \&amp;lt;longrightarrow&amp;gt; (\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;P x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;Q x&amp;quot;&lt;br /&gt;
  show &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;P x&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix x&lt;br /&gt;
    have 2: &amp;quot;P x \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
    have 3: &amp;quot;\&amp;lt;not&amp;gt;Q x&amp;quot; using 1 by (rule allE)&lt;br /&gt;
    show &amp;quot;\&amp;lt;not&amp;gt;P x&amp;quot; using 2 3 by (rule mt)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
  shows &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;exists&amp;gt;x. P x \&amp;lt;and&amp;gt; Q x)&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume &amp;quot;\&amp;lt;exists&amp;gt;x. P x \&amp;lt;and&amp;gt; Q x&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a \&amp;lt;and&amp;gt; Q a&amp;quot; by (rule exE)&lt;br /&gt;
  have 2: &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;Q a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  have 3: &amp;quot;P a&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
  have 4: &amp;quot;\&amp;lt;not&amp;gt;Q a&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;Q a&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  show False using 4 5 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;forall&amp;gt;y. P x y&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;u. \&amp;lt;forall&amp;gt;v. P u v&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix u&lt;br /&gt;
  show &amp;quot;\&amp;lt;forall&amp;gt;v. P u v&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix v&lt;br /&gt;
    have &amp;quot;\&amp;lt;forall&amp;gt;y. P u y&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
    thus &amp;quot;P u v&amp;quot; by (rule allE)&lt;br /&gt;
  qed &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;exists&amp;gt;y. P x y&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;u. \&amp;lt;exists&amp;gt;v. P u v&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(1) 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;v. P a v&amp;quot; by (rule exI)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;u. \&amp;lt;exists&amp;gt;v. P u v&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;forall&amp;gt;y. P x y&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;y. \&amp;lt;exists&amp;gt;x. P x y&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix y&lt;br /&gt;
  obtain a where &amp;quot;\&amp;lt;forall&amp;gt;y. P a y&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  hence &amp;quot;P a y&amp;quot; by (rule allE)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. P x y&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. P a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; &lt;br /&gt;
  shows &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; (\&amp;lt;exists&amp;gt;x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q b&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1 by (rule mp)&lt;br /&gt;
  thus &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;
lemma &lt;br /&gt;
  assumes &amp;quot;P a \&amp;lt;longrightarrow&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 a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;\&amp;lt;not&amp;gt;P a \&amp;lt;or&amp;gt; P a&amp;quot; by (rule excluded_middle)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. P a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume &amp;quot;\&amp;lt;not&amp;gt;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q b&amp;quot; by simp&lt;br /&gt;
      thus &amp;quot;\&amp;lt;exists&amp;gt;x. P a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; by (rule exI) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;\&amp;lt;exists&amp;gt;x. Q x&amp;quot; using assms(1) by simp&lt;br /&gt;
      then obtain c where &amp;quot;Q c&amp;quot; by (rule exE)&lt;br /&gt;
      hence &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q c&amp;quot; by simp&lt;br /&gt;
      thus &amp;quot;\&amp;lt;exists&amp;gt;x. P a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; by (rule exI) }&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;(\&amp;lt;exists&amp;gt;x. P x) \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;P x \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;P x&amp;quot;&lt;br /&gt;
    hence 1: &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot; by (rule exI)&lt;br /&gt;
    show &amp;quot;Q a&amp;quot; using assms(1) 1 by (rule mp)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x. P x \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot;&lt;br /&gt;
proof (rule exI)&lt;br /&gt;
  show &amp;quot;P b \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot; using assms(1) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. P x \&amp;lt;and&amp;gt; Q x&amp;quot; &lt;br /&gt;
  shows &amp;quot;(\&amp;lt;exists&amp;gt;x. P x) \&amp;lt;and&amp;gt; (\&amp;lt;exists&amp;gt;x. Q x)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;P a \&amp;lt;and&amp;gt; Q a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; by (rule conjunct1)&lt;br /&gt;
  hence 2: &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot; by (rule exI)&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  hence 3: &amp;quot;\&amp;lt;exists&amp;gt;x. Q x&amp;quot; by (rule exI)&lt;br /&gt;
  show &amp;quot;(\&amp;lt;exists&amp;gt;x. P x) \&amp;lt;and&amp;gt; (\&amp;lt;exists&amp;gt;x. Q x)&amp;quot; using 2 3 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x.\&amp;lt;forall&amp;gt;y. P y \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; &lt;br /&gt;
  shows &amp;quot;(\&amp;lt;exists&amp;gt;y. P y) \&amp;lt;longrightarrow&amp;gt; (\&amp;lt;forall&amp;gt;x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;\&amp;lt;exists&amp;gt;y. P y&amp;quot;&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 x&lt;br /&gt;
    have 2: &amp;quot;\&amp;lt;forall&amp;gt;y. P y \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; using assms by (rule allE)&lt;br /&gt;
    obtain b where 3: &amp;quot;P b&amp;quot; using 1 by (rule exE)&lt;br /&gt;
    have &amp;quot;P b \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; using 2 by (rule allE)&lt;br /&gt;
    thus &amp;quot;Q x&amp;quot; using 3 by (rule mp)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;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 ccontr)&lt;br /&gt;
  assume 1: &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;exists&amp;gt;x. P x)&amp;quot;&lt;br /&gt;
  have 2: &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;P x&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    fix x&lt;br /&gt;
    show &amp;quot;\&amp;lt;not&amp;gt;P x&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P x&amp;quot;&lt;br /&gt;
      hence 3: &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot; by (rule exI)&lt;br /&gt;
      show False using 1 3 by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
  show False using assms(1) 2 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&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;exists&amp;gt;x. P x)&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot; by (rule exE)&lt;br /&gt;
  have &amp;quot;\&amp;lt;not&amp;gt;P a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  thus False using 1 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;P x)&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 1: &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;P x&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;P a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  have &amp;quot;\&amp;lt;not&amp;gt;P a&amp;quot; using 1 by (rule allE)&lt;br /&gt;
  thus False using 2 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;P a \&amp;lt;longrightarrow&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 a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume 1: &amp;quot;P a&amp;quot;&lt;br /&gt;
    have &amp;quot;\&amp;lt;forall&amp;gt;x. Q x&amp;quot; using assms(1) 1 by (rule mp)&lt;br /&gt;
    thus &amp;quot;Q x&amp;quot; by (rule allE)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x.\&amp;lt;forall&amp;gt;y.\&amp;lt;forall&amp;gt;z. R x y \&amp;lt;and&amp;gt; R y z \&amp;lt;longrightarrow&amp;gt; R x z&amp;quot; and&lt;br /&gt;
          &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;R x x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;x.\&amp;lt;forall&amp;gt;y. R x y \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;R y x&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;\&amp;lt;forall&amp;gt;y. R x y \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;R y x&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix y&lt;br /&gt;
    show &amp;quot;R x y \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;R y x&amp;quot;&lt;br /&gt;
    proof (rule impI)&lt;br /&gt;
      assume 1: &amp;quot;R x y&amp;quot;&lt;br /&gt;
      show &amp;quot;\&amp;lt;not&amp;gt;R y x&amp;quot;&lt;br /&gt;
      proof&lt;br /&gt;
        assume 2: &amp;quot;R y x&amp;quot;&lt;br /&gt;
        have &amp;quot;\&amp;lt;forall&amp;gt;y.\&amp;lt;forall&amp;gt;z. R x y \&amp;lt;and&amp;gt; R y z \&amp;lt;longrightarrow&amp;gt; R x z&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
        hence &amp;quot;\&amp;lt;forall&amp;gt;z. R x y \&amp;lt;and&amp;gt; R y z \&amp;lt;longrightarrow&amp;gt; R x z&amp;quot; by (rule allE)&lt;br /&gt;
        hence 3: &amp;quot;R x y \&amp;lt;and&amp;gt; R y x \&amp;lt;longrightarrow&amp;gt; R x x&amp;quot; by (rule allE)&lt;br /&gt;
        have 4: &amp;quot;R x y \&amp;lt;and&amp;gt; R y x&amp;quot; using 1 2 by (rule conjI)&lt;br /&gt;
        have 5: &amp;quot;R x x&amp;quot; using 3 4  by (rule mp)&lt;br /&gt;
        have &amp;quot;\&amp;lt;not&amp;gt;R x x&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
        thus False using 5 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;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;or&amp;gt; Q x&amp;quot; and&lt;br /&gt;
          &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;Q x&amp;quot; and&lt;br /&gt;
          &amp;quot;\&amp;lt;forall&amp;gt;x. R x \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;R x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;\&amp;lt;not&amp;gt;Q a&amp;quot; using assms(2) ..&lt;br /&gt;
  have &amp;quot;P a \&amp;lt;or&amp;gt; Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;R x&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence 2: &amp;quot;\&amp;lt;not&amp;gt;\&amp;lt;not&amp;gt;P a&amp;quot; by (rule notnotI)&lt;br /&gt;
      have &amp;quot;R a \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;P a&amp;quot; using assms(3) by (rule allE)&lt;br /&gt;
      hence &amp;quot;\&amp;lt;not&amp;gt;R a&amp;quot; using 2 by (rule mt)&lt;br /&gt;
      thus &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;R x&amp;quot; by (rule exI) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 3: &amp;quot;Q a&amp;quot;&lt;br /&gt;
      show &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;R x&amp;quot; using 1 3 by (rule notE) }&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;longrightarrow&amp;gt; Q x \&amp;lt;or&amp;gt; R x&amp;quot; and&lt;br /&gt;
          &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;exists&amp;gt;x. P x \&amp;lt;and&amp;gt; R x)&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;P x \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume 1: &amp;quot;P x&amp;quot;&lt;br /&gt;
    have &amp;quot;P x \&amp;lt;longrightarrow&amp;gt; Q x \&amp;lt;or&amp;gt; R x&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
    hence &amp;quot;Q x \&amp;lt;or&amp;gt; R x&amp;quot; using 1 by (rule mp)&lt;br /&gt;
    thus &amp;quot;Q x&amp;quot;&lt;br /&gt;
    proof (rule disjE)&lt;br /&gt;
      { assume &amp;quot;Q x&amp;quot;&lt;br /&gt;
        thus &amp;quot;Q x&amp;quot; by this }&lt;br /&gt;
    next&lt;br /&gt;
      { assume 2: &amp;quot;R x&amp;quot;&lt;br /&gt;
        have &amp;quot;P x \&amp;lt;and&amp;gt; R x&amp;quot; using 1 2 by (rule conjI)&lt;br /&gt;
        hence 3: &amp;quot;\&amp;lt;exists&amp;gt;x. P x \&amp;lt;and&amp;gt; R x&amp;quot; by (rule exI)&lt;br /&gt;
        show &amp;quot;Q x&amp;quot; using assms(2) 3 by (rule notE) }&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x.\&amp;lt;exists&amp;gt;y. R x y \&amp;lt;or&amp;gt; R y x&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x.\&amp;lt;exists&amp;gt;y. R x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where &amp;quot;\&amp;lt;exists&amp;gt;y. R a y \&amp;lt;or&amp;gt; R y a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  then obtain b where &amp;quot;R a b \&amp;lt;or&amp;gt; R b a&amp;quot; by (rule exE)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x.\&amp;lt;exists&amp;gt;y. R x y&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    { assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
      hence &amp;quot;\&amp;lt;exists&amp;gt;y. R a y&amp;quot; by (rule exI)&lt;br /&gt;
      thus &amp;quot;\&amp;lt;exists&amp;gt;x.\&amp;lt;exists&amp;gt;y. R x y&amp;quot; by (rule exI) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
      hence &amp;quot;\&amp;lt;exists&amp;gt;y. R b y&amp;quot; by (rule exI)&lt;br /&gt;
      thus &amp;quot;\&amp;lt;exists&amp;gt;x.\&amp;lt;exists&amp;gt;y. R x y&amp;quot; by (rule exI) }&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Tema_4:_Deducci%C3%B3n_natural_en_l%C3%B3gica_de_primer_orden_con_Isabelle&amp;diff=41</id>
		<title>Tema 4: Deducción natural en lógica de primer orden con Isabelle</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Tema_4:_Deducci%C3%B3n_natural_en_l%C3%B3gica_de_primer_orden_con_Isabelle&amp;diff=41"/>
		<updated>2011-04-14T13:26:19Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: Página creada con &amp;#039;header {* Deducción natural en la lógica de primer orden *}  theory LogicaDePrimerOrdenEj imports Main  begin  text {*    En esta teoría se presentan los ejemplos del tema de...&amp;#039;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;header {* Deducción natural en la lógica de primer orden *}&lt;br /&gt;
&lt;br /&gt;
theory LogicaDePrimerOrdenEj&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text {* &lt;br /&gt;
  En esta teoría se presentan los ejemplos del tema de deducción natural&lt;br /&gt;
  en lógica de primer orden siguiendo la presentación de Huth y Ryan en su&lt;br /&gt;
  libro  &amp;quot;Logic in Computer Science&amp;quot;&lt;br /&gt;
  http://www.cs.bham.ac.uk/research/projects/lics/ 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; y&lt;br /&gt;
  que puede verse en http://www.cs.us.es/~jalonso/cursos/li/temas/tema-7.pdf &lt;br /&gt;
 *}&lt;br /&gt;
&lt;br /&gt;
text {*&lt;br /&gt;
  Se usarán las reglas del modus tollen y de la introducción de la&lt;br /&gt;
  doble negación.&lt;br /&gt;
*}&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 notnotI:&lt;br /&gt;
  &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;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;P(c)&amp;quot; and&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 (rule notI)&lt;br /&gt;
  assume 1: &amp;quot;Q(c)&amp;quot;&lt;br /&gt;
  have 2: &amp;quot;P(c) \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;Q(c)&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
  have 3: &amp;quot;\&amp;lt;not&amp;gt;\&amp;lt;not&amp;gt;Q(c)&amp;quot; using 1 by (rule notnotI)&lt;br /&gt;
  have 4: &amp;quot;\&amp;lt;not&amp;gt;P(c)&amp;quot; using 2 3 by (rule mt)&lt;br /&gt;
  thus &amp;quot;False&amp;quot; using assms(1) by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &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; and&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 (rule allI)&lt;br /&gt;
  fix x&lt;br /&gt;
  have 1: &amp;quot;P x \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;(Q x)&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  have 2: &amp;quot;P x&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
  show &amp;quot;\&amp;lt;not&amp;gt;(Q x)&amp;quot; using 1 2 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &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;
lemma&lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. (P x \&amp;lt;longrightarrow&amp;gt; Q x)&amp;quot; and&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 1: &amp;quot;P a&amp;quot; using assms(2) by (rule exE)&lt;br /&gt;
  have 2: &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 2 1 by (rule mp)&lt;br /&gt;
  thus &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;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. (Q x \&amp;lt;longrightarrow&amp;gt; R x)&amp;quot; and&lt;br /&gt;
          &amp;quot;\&amp;lt;exists&amp;gt;x . (P x \&amp;lt;and&amp;gt; Q x)&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x . (P x \&amp;lt;and&amp;gt; R x)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;P a \&amp;lt;and&amp;gt; Q a&amp;quot; using assms(2) by (rule exE)&lt;br /&gt;
  have 2: &amp;quot;Q a \&amp;lt;longrightarrow&amp;gt; R a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  have 3: &amp;quot;Q a&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  have 4: &amp;quot;R a&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;P a&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
  hence &amp;quot;P a \&amp;lt;and&amp;gt; R a&amp;quot; using 4 by (rule conjI)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x . (P x \&amp;lt;and&amp;gt; R x)&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot; and&lt;br /&gt;
          &amp;quot;\&amp;lt;forall&amp;gt;x.\&amp;lt;forall&amp;gt;y. (P x \&amp;lt;longrightarrow&amp;gt; Q y)&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;y. Q y&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix b&lt;br /&gt;
  obtain a where 1: &amp;quot;P a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  have &amp;quot;\&amp;lt;forall&amp;gt;y. (P a \&amp;lt;longrightarrow&amp;gt; Q y)&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
  hence &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q b&amp;quot; by (rule allE)&lt;br /&gt;
  thus &amp;quot;Q b&amp;quot; using 1 by (rule mp)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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 1: &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;\&amp;lt;not&amp;gt;P a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  have 3: &amp;quot;P a&amp;quot; using 1 by (rule allE)&lt;br /&gt;
  show False using 2 3 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;(\&amp;lt;forall&amp;gt;x. P x) \&amp;lt;or&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;or&amp;gt; Q x&amp;quot;&lt;br /&gt;
using assms&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  { assume 1: &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&lt;br /&gt;
    show &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;or&amp;gt; Q x&amp;quot;&lt;br /&gt;
    proof (rule allI)&lt;br /&gt;
      fix x&lt;br /&gt;
      have &amp;quot;P x&amp;quot; using 1 by (rule allE)&lt;br /&gt;
      thus &amp;quot;P x \&amp;lt;or&amp;gt; Q x&amp;quot; by (rule disjI1)&lt;br /&gt;
    qed }&lt;br /&gt;
next&lt;br /&gt;
  { assume 2: &amp;quot;\&amp;lt;forall&amp;gt;x. Q x&amp;quot;&lt;br /&gt;
    show &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;or&amp;gt; Q x&amp;quot;&lt;br /&gt;
    proof (rule allI)&lt;br /&gt;
      fix x&lt;br /&gt;
      have &amp;quot;Q x&amp;quot; using 2 by (rule allE)&lt;br /&gt;
      thus &amp;quot;P x \&amp;lt;or&amp;gt; Q x&amp;quot; by (rule disjI2)&lt;br /&gt;
    qed }&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &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;
  shows &amp;quot;(\&amp;lt;forall&amp;gt;x. P x) \&amp;lt;longrightarrow&amp;gt; (\&amp;lt;forall&amp;gt;x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot;&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 x &lt;br /&gt;
    have 2: &amp;quot;P x \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; using assms by (rule allE)&lt;br /&gt;
    have 3: &amp;quot;P x&amp;quot; using 1 by (rule allE)&lt;br /&gt;
    show &amp;quot;Q x&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;y. P y&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix a&lt;br /&gt;
  show &amp;quot;P a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
  shows &amp;quot;(\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;Q x) \&amp;lt;longrightarrow&amp;gt; (\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;P x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;Q x&amp;quot;&lt;br /&gt;
  show &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;P x&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix x&lt;br /&gt;
    have 2: &amp;quot;P x \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
    have 3: &amp;quot;\&amp;lt;not&amp;gt;Q x&amp;quot; using 1 by (rule allE)&lt;br /&gt;
    show &amp;quot;\&amp;lt;not&amp;gt;P x&amp;quot; using 2 3 by (rule mt)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &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;
  shows &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;exists&amp;gt;x. P x \&amp;lt;and&amp;gt; Q x)&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume &amp;quot;\&amp;lt;exists&amp;gt;x. P x \&amp;lt;and&amp;gt; Q x&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a \&amp;lt;and&amp;gt; Q a&amp;quot; by (rule exE)&lt;br /&gt;
  have 2: &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;Q a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  have 3: &amp;quot;P a&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
  have 4: &amp;quot;\&amp;lt;not&amp;gt;Q a&amp;quot; using 2 3 by (rule mp)&lt;br /&gt;
  have 5: &amp;quot;Q a&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  show False using 4 5 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;forall&amp;gt;y. P x y&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;u. \&amp;lt;forall&amp;gt;v. P u v&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix u&lt;br /&gt;
  show &amp;quot;\&amp;lt;forall&amp;gt;v. P u v&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix v&lt;br /&gt;
    have &amp;quot;\&amp;lt;forall&amp;gt;y. P u y&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
    thus &amp;quot;P u v&amp;quot; by (rule allE)&lt;br /&gt;
  qed &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;exists&amp;gt;y. P x y&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;u. \&amp;lt;exists&amp;gt;v. P u v&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(1) 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;v. P a v&amp;quot; by (rule exI)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;u. \&amp;lt;exists&amp;gt;v. P u v&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;forall&amp;gt;y. P x y&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;y. \&amp;lt;exists&amp;gt;x. P x y&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix y&lt;br /&gt;
  obtain a where &amp;quot;\&amp;lt;forall&amp;gt;y. P a y&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  hence &amp;quot;P a y&amp;quot; by (rule allE)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. P x y&amp;quot; by (rule exI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. P a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; &lt;br /&gt;
  shows &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; (\&amp;lt;exists&amp;gt;x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;P a&amp;quot;&lt;br /&gt;
  obtain b where &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q b&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  hence &amp;quot;Q b&amp;quot; using 1 by (rule mp)&lt;br /&gt;
  thus &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;
lemma &lt;br /&gt;
  assumes &amp;quot;P a \&amp;lt;longrightarrow&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 a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;\&amp;lt;not&amp;gt;P a \&amp;lt;or&amp;gt; P a&amp;quot; by (rule excluded_middle)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. P a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume &amp;quot;\&amp;lt;not&amp;gt;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q b&amp;quot; by simp&lt;br /&gt;
      thus &amp;quot;\&amp;lt;exists&amp;gt;x. P a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; by (rule exI) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;\&amp;lt;exists&amp;gt;x. Q x&amp;quot; using assms(1) by simp&lt;br /&gt;
      then obtain c where &amp;quot;Q c&amp;quot; by (rule exE)&lt;br /&gt;
      hence &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q c&amp;quot; by simp&lt;br /&gt;
      thus &amp;quot;\&amp;lt;exists&amp;gt;x. P a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; by (rule exI) }&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;(\&amp;lt;exists&amp;gt;x. P x) \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;P x \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;P x&amp;quot;&lt;br /&gt;
    hence 1: &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot; by (rule exI)&lt;br /&gt;
    show &amp;quot;Q a&amp;quot; using assms(1) 1 by (rule mp)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x. P x \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot;&lt;br /&gt;
proof (rule exI)&lt;br /&gt;
  show &amp;quot;P b \&amp;lt;longrightarrow&amp;gt; Q a&amp;quot; using assms(1) ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. P x \&amp;lt;and&amp;gt; Q x&amp;quot; &lt;br /&gt;
  shows &amp;quot;(\&amp;lt;exists&amp;gt;x. P x) \&amp;lt;and&amp;gt; (\&amp;lt;exists&amp;gt;x. Q x)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;P a \&amp;lt;and&amp;gt; Q a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; by (rule conjunct1)&lt;br /&gt;
  hence 2: &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot; by (rule exI)&lt;br /&gt;
  have &amp;quot;Q a&amp;quot; using 1 by (rule conjunct2)&lt;br /&gt;
  hence 3: &amp;quot;\&amp;lt;exists&amp;gt;x. Q x&amp;quot; by (rule exI)&lt;br /&gt;
  show &amp;quot;(\&amp;lt;exists&amp;gt;x. P x) \&amp;lt;and&amp;gt; (\&amp;lt;exists&amp;gt;x. Q x)&amp;quot; using 2 3 by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x.\&amp;lt;forall&amp;gt;y. P y \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; &lt;br /&gt;
  shows &amp;quot;(\&amp;lt;exists&amp;gt;y. P y) \&amp;lt;longrightarrow&amp;gt; (\&amp;lt;forall&amp;gt;x. Q x)&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume 1: &amp;quot;\&amp;lt;exists&amp;gt;y. P y&amp;quot;&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 x&lt;br /&gt;
    have 2: &amp;quot;\&amp;lt;forall&amp;gt;y. P y \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; using assms by (rule allE)&lt;br /&gt;
    obtain b where 3: &amp;quot;P b&amp;quot; using 1 by (rule exE)&lt;br /&gt;
    have &amp;quot;P b \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot; using 2 by (rule allE)&lt;br /&gt;
    thus &amp;quot;Q x&amp;quot; using 3 by (rule mp)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;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 ccontr)&lt;br /&gt;
  assume 1: &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;exists&amp;gt;x. P x)&amp;quot;&lt;br /&gt;
  have 2: &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;P x&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    fix x&lt;br /&gt;
    show &amp;quot;\&amp;lt;not&amp;gt;P x&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P x&amp;quot;&lt;br /&gt;
      hence 3: &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot; by (rule exI)&lt;br /&gt;
      show False using 1 3 by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
  show False using assms(1) 2 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&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;exists&amp;gt;x. P x)&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot;&lt;br /&gt;
  then obtain a where 1: &amp;quot;P a&amp;quot; by (rule exE)&lt;br /&gt;
  have &amp;quot;\&amp;lt;not&amp;gt;P a&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
  thus False using 1 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x. P x&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;P x)&amp;quot;&lt;br /&gt;
proof (rule notI)&lt;br /&gt;
  assume 1: &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;P x&amp;quot;&lt;br /&gt;
  obtain a where 2: &amp;quot;P a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  have &amp;quot;\&amp;lt;not&amp;gt;P a&amp;quot; using 1 by (rule allE)&lt;br /&gt;
  thus False using 2 by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;P a \&amp;lt;longrightarrow&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 a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;P a \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume 1: &amp;quot;P a&amp;quot;&lt;br /&gt;
    have &amp;quot;\&amp;lt;forall&amp;gt;x. Q x&amp;quot; using assms(1) 1 by (rule mp)&lt;br /&gt;
    thus &amp;quot;Q x&amp;quot; by (rule allE)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x.\&amp;lt;forall&amp;gt;y.\&amp;lt;forall&amp;gt;z. R x y \&amp;lt;and&amp;gt; R y z \&amp;lt;longrightarrow&amp;gt; R x z&amp;quot; and&lt;br /&gt;
          &amp;quot;\&amp;lt;forall&amp;gt;x. \&amp;lt;not&amp;gt;R x x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;x.\&amp;lt;forall&amp;gt;y. R x y \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;R y x&amp;quot;&lt;br /&gt;
proof (rule allI)&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;\&amp;lt;forall&amp;gt;y. R x y \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;R y x&amp;quot;&lt;br /&gt;
  proof (rule allI)&lt;br /&gt;
    fix y&lt;br /&gt;
    show &amp;quot;R x y \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;R y x&amp;quot;&lt;br /&gt;
    proof (rule impI)&lt;br /&gt;
      assume 1: &amp;quot;R x y&amp;quot;&lt;br /&gt;
      show &amp;quot;\&amp;lt;not&amp;gt;R y x&amp;quot;&lt;br /&gt;
      proof&lt;br /&gt;
        assume 2: &amp;quot;R y x&amp;quot;&lt;br /&gt;
        have &amp;quot;\&amp;lt;forall&amp;gt;y.\&amp;lt;forall&amp;gt;z. R x y \&amp;lt;and&amp;gt; R y z \&amp;lt;longrightarrow&amp;gt; R x z&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
        hence &amp;quot;\&amp;lt;forall&amp;gt;z. R x y \&amp;lt;and&amp;gt; R y z \&amp;lt;longrightarrow&amp;gt; R x z&amp;quot; by (rule allE)&lt;br /&gt;
        hence 3: &amp;quot;R x y \&amp;lt;and&amp;gt; R y x \&amp;lt;longrightarrow&amp;gt; R x x&amp;quot; by (rule allE)&lt;br /&gt;
        have 4: &amp;quot;R x y \&amp;lt;and&amp;gt; R y x&amp;quot; using 1 2 by (rule conjI)&lt;br /&gt;
        have 5: &amp;quot;R x x&amp;quot; using 3 4  by (rule mp)&lt;br /&gt;
        have &amp;quot;\&amp;lt;not&amp;gt;R x x&amp;quot; using assms(2) by (rule allE)&lt;br /&gt;
        thus False using 5 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;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;or&amp;gt; Q x&amp;quot; and&lt;br /&gt;
          &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;Q x&amp;quot; and&lt;br /&gt;
          &amp;quot;\&amp;lt;forall&amp;gt;x. R x \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;P x&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;R x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where 1: &amp;quot;\&amp;lt;not&amp;gt;Q a&amp;quot; using assms(2) ..&lt;br /&gt;
  have &amp;quot;P a \&amp;lt;or&amp;gt; Q a&amp;quot; using assms(1) ..&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;R x&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    { assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence 2: &amp;quot;\&amp;lt;not&amp;gt;\&amp;lt;not&amp;gt;P a&amp;quot; by (rule notnotI)&lt;br /&gt;
      have &amp;quot;R a \&amp;lt;longrightarrow&amp;gt; \&amp;lt;not&amp;gt;P a&amp;quot; using assms(3) by (rule allE)&lt;br /&gt;
      hence &amp;quot;\&amp;lt;not&amp;gt;R a&amp;quot; using 2 by (rule mt)&lt;br /&gt;
      thus &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;R x&amp;quot; by (rule exI) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume 3: &amp;quot;Q a&amp;quot;&lt;br /&gt;
      show &amp;quot;\&amp;lt;exists&amp;gt;x. \&amp;lt;not&amp;gt;R x&amp;quot; using 1 3 by (rule notE) }&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;longrightarrow&amp;gt; Q x \&amp;lt;or&amp;gt; R x&amp;quot; and&lt;br /&gt;
          &amp;quot;\&amp;lt;not&amp;gt;(\&amp;lt;exists&amp;gt;x. P x \&amp;lt;and&amp;gt; R x)&amp;quot;&lt;br /&gt;
  shows &amp;quot;\&amp;lt;forall&amp;gt;x. P x \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix x&lt;br /&gt;
  show &amp;quot;P x \&amp;lt;longrightarrow&amp;gt; Q x&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume 1: &amp;quot;P x&amp;quot;&lt;br /&gt;
    have &amp;quot;P x \&amp;lt;longrightarrow&amp;gt; Q x \&amp;lt;or&amp;gt; R x&amp;quot; using assms(1) by (rule allE)&lt;br /&gt;
    hence &amp;quot;Q x \&amp;lt;or&amp;gt; R x&amp;quot; using 1 by (rule mp)&lt;br /&gt;
    thus &amp;quot;Q x&amp;quot;&lt;br /&gt;
    proof (rule disjE)&lt;br /&gt;
      { assume &amp;quot;Q x&amp;quot;&lt;br /&gt;
        thus &amp;quot;Q x&amp;quot; by this }&lt;br /&gt;
    next&lt;br /&gt;
      { assume 2: &amp;quot;R x&amp;quot;&lt;br /&gt;
        have &amp;quot;P x \&amp;lt;and&amp;gt; R x&amp;quot; using 1 2 by (rule conjI)&lt;br /&gt;
        hence 3: &amp;quot;\&amp;lt;exists&amp;gt;x. P x \&amp;lt;and&amp;gt; R x&amp;quot; by (rule exI)&lt;br /&gt;
        show &amp;quot;Q x&amp;quot; using assms(2) 3 by (rule notE) }&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma &lt;br /&gt;
  assumes &amp;quot;\&amp;lt;exists&amp;gt;x.\&amp;lt;exists&amp;gt;y. R x y \&amp;lt;or&amp;gt; R y x&amp;quot; &lt;br /&gt;
  shows &amp;quot;\&amp;lt;exists&amp;gt;x.\&amp;lt;exists&amp;gt;y. R x y&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  obtain a where &amp;quot;\&amp;lt;exists&amp;gt;y. R a y \&amp;lt;or&amp;gt; R y a&amp;quot; using assms(1) by (rule exE)&lt;br /&gt;
  then obtain b where &amp;quot;R a b \&amp;lt;or&amp;gt; R b a&amp;quot; by (rule exE)&lt;br /&gt;
  thus &amp;quot;\&amp;lt;exists&amp;gt;x.\&amp;lt;exists&amp;gt;y. R x y&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    { assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
      hence &amp;quot;\&amp;lt;exists&amp;gt;y. R a y&amp;quot; by (rule exI)&lt;br /&gt;
      thus &amp;quot;\&amp;lt;exists&amp;gt;x.\&amp;lt;exists&amp;gt;y. R x y&amp;quot; by (rule exI) }&lt;br /&gt;
  next&lt;br /&gt;
    { assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
      hence &amp;quot;\&amp;lt;exists&amp;gt;y. R b y&amp;quot; by (rule exI)&lt;br /&gt;
      thus &amp;quot;\&amp;lt;exists&amp;gt;x.\&amp;lt;exists&amp;gt;y. R x y&amp;quot; by (rule exI) }&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Temas&amp;diff=40</id>
		<title>Temas</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/DAO2011/index.php?title=Temas&amp;diff=40"/>
		<updated>2011-04-14T13:25:21Z</updated>

		<summary type="html">&lt;p&gt;Mjoseh: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Temas de &amp;#039;&amp;#039;Demostración asistida por ordenador&amp;#039;&amp;#039; ==&lt;br /&gt;
* [[Tema 1: Isabelle como un lenguaje funcional]].&lt;br /&gt;
* [[Tema 2: Razonamiento sobre programas]].&lt;br /&gt;
* [[Tema 3: Deducción lógica proposicional con Isabelle]].&lt;br /&gt;
* [[Tema 4: Deducción natural en lógica de primer orden con Isabelle]].&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
</feed>