<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/~jalonso/LMF2019/index.php?action=history&amp;feed=atom&amp;title=Sol_6</id>
	<title>Sol 6 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/~jalonso/LMF2019/index.php?action=history&amp;feed=atom&amp;title=Sol_6"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2019/index.php?title=Sol_6&amp;action=history"/>
	<updated>2026-09-18T03:00:58Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.31.14</generator>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2019/index.php?title=Sol_6&amp;diff=578&amp;oldid=prev</id>
		<title>Jalonso en 09:22 21 abr 2019</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2019/index.php?title=Sol_6&amp;diff=578&amp;oldid=prev"/>
		<updated>2019-04-21T09:22:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://www.glc.us.es/~jalonso/LMF2019/index.php?title=Sol_6&amp;amp;diff=578&amp;amp;oldid=562&quot;&gt;Mostrar los cambios&lt;/a&gt;</summary>
		<author><name>Jalonso</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2019/index.php?title=Sol_6&amp;diff=562&amp;oldid=prev</id>
		<title>Mjoseh en 10:51 9 abr 2019</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2019/index.php?title=Sol_6&amp;diff=562&amp;oldid=prev"/>
		<updated>2019-04-09T10:51:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;es&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Revisión anterior&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revisión del 10:51 9 abr 2019&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;es&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(Sin diferencias)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
	<entry>
		<id>https://www.glc.us.es/~jalonso/LMF2019/index.php?title=Sol_6&amp;diff=561&amp;oldid=prev</id>
		<title>Mjoseh en 10:51 9 abr 2019</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2019/index.php?title=Sol_6&amp;diff=561&amp;oldid=prev"/>
		<updated>2019-04-09T10:51:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;source lang = &amp;quot;isabelle&amp;quot;&amp;gt;&lt;br /&gt;
chapter {* R6: Deducción natural en lógica de de primer orden *}&lt;br /&gt;
&lt;br /&gt;
theory R6_sol&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;
  . excluded_middel:(¬P ∨ P) &lt;br /&gt;
&lt;br /&gt;
  · allE:       ⟦∀x. P x; P x ⟹ R⟧ ⟹ R&lt;br /&gt;
  · allI:       (⋀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_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&lt;br /&gt;
  assume &amp;quot;∀x. P x&amp;quot;&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&amp;quot; using `∀x. P x` by (rule allE)&lt;br /&gt;
    have &amp;quot;P a ⟶ Q a&amp;quot; using assms ..&lt;br /&gt;
    thus &amp;quot;Q a&amp;quot;  using `P a` ..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_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;
  using assms by auto&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_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&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;
lemma ejercicio_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;
  using assms by auto&lt;br /&gt;
&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_3a: &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&lt;br /&gt;
  fix a show &amp;quot;P a&amp;quot; using assms ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_3b: &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;
  using assms by auto&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_4a: &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&lt;br /&gt;
  assume &amp;quot;∀x. ¬(Q x)&amp;quot;&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;¬(Q a)&amp;quot; using `∀x. ¬(Q x)` ..&lt;br /&gt;
    have &amp;quot;P a ⟶ Q a&amp;quot; using assms ..&lt;br /&gt;
    thus &amp;quot;¬(P a)&amp;quot; using `¬(Q a)`  by (rule mt)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_4b: &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;
  using assms by auto&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_5a: &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&lt;br /&gt;
    assume &amp;quot;∃x. P x ∧ Q x&amp;quot;&lt;br /&gt;
    then obtain a where &amp;quot;P a ∧ Q a&amp;quot; ..&lt;br /&gt;
    hence &amp;quot;P a&amp;quot; ..&lt;br /&gt;
    have &amp;quot;P a  ⟶ ¬(Q a)&amp;quot; using assms ..&lt;br /&gt;
    hence &amp;quot;¬(Q a)&amp;quot; using `P a` ..&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using `P a ∧ Q a` ..&lt;br /&gt;
    with `¬(Q a)` show False ..&lt;br /&gt;
  qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_5b: &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;
  using assms by auto&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_6a: &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 a b&lt;br /&gt;
  have &amp;quot;∀y. P a y&amp;quot; using assms ..&lt;br /&gt;
  thus &amp;quot;P a b&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6b: &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 a&lt;br /&gt;
  show &amp;quot;∀y. P a y&amp;quot; using assms ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6c: &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;
  fix a&lt;br /&gt;
  show &amp;quot;∀y. P a y&amp;quot; using assms ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_6d: &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;
  using assms by auto&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_7a: &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 ..&lt;br /&gt;
    then obtain b where &amp;quot;P a b&amp;quot; ..&lt;br /&gt;
    hence &amp;quot;∃v. P a v&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;∃u v. P u v&amp;quot; ..&lt;br /&gt;
  qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_7c: &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;
  using assms by auto&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_8a: &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;
  fix b&lt;br /&gt;
  obtain a where &amp;quot;∀y. P a y&amp;quot; using assms ..&lt;br /&gt;
  hence &amp;quot;P a b&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;∃x. P x b&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_8b: &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 by auto&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_9a: &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&lt;br /&gt;
    assume &amp;quot;P a&amp;quot;&lt;br /&gt;
    obtain b where &amp;quot;P a ⟶ Q b&amp;quot; using assms ..&lt;br /&gt;
    hence &amp;quot;Q b&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;
lemma ejercicio_9b: &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;
  using assms by auto&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_10a: &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;
  proof -&lt;br /&gt;
    have &amp;quot;¬(P a) ∨ (P a)&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;∃x. P a ⟶ Q x&amp;quot;&lt;br /&gt;
      proof&lt;br /&gt;
        assume &amp;quot;¬(P a)&amp;quot;&lt;br /&gt;
        have &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
          proof&lt;br /&gt;
            assume &amp;quot;P a&amp;quot;&lt;br /&gt;
            with `¬(P a)` show &amp;quot;Q a&amp;quot; ..&lt;br /&gt;
          qed&lt;br /&gt;
          thus &amp;quot;∃x. P a ⟶ Q x&amp;quot; ..&lt;br /&gt;
      next&lt;br /&gt;
        assume &amp;quot;P a&amp;quot;&lt;br /&gt;
        with assms have &amp;quot;∃x. Q x&amp;quot; ..&lt;br /&gt;
        then obtain b where &amp;quot;Q b&amp;quot; ..&lt;br /&gt;
        hence &amp;quot;P a ⟶  Q b&amp;quot; ..&lt;br /&gt;
        thus &amp;quot;∃x. P a ⟶ Q x&amp;quot; ..&lt;br /&gt;
      qed&lt;br /&gt;
  qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_10b: &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;
  using assms by auto&lt;br /&gt;
&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_11a: &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&lt;br /&gt;
  fix b&lt;br /&gt;
  show &amp;quot;P b ⟶  Q a&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P b&amp;quot;&lt;br /&gt;
      hence &amp;quot;∃x. P x&amp;quot; ..&lt;br /&gt;
      with assms show &amp;quot;Q a&amp;quot; ..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_11b: &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;
  using assms by auto&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_12a: &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 - (* comentar sin - *)&lt;br /&gt;
  have &amp;quot;P b ⟶  Q a&amp;quot; using assms .. (* ¿universo? *)&lt;br /&gt;
  thus &amp;quot;∃x. P x ⟶ Q a&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_12b: &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;
  using assms by auto&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_13a: &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;
  show &amp;quot;∀x. P 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 `∀x. P x` ..&lt;br /&gt;
      thus &amp;quot;P a ∨ Q a&amp;quot; ..&lt;br /&gt;
    qed&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
  show &amp;quot;∀x. P x ∨ Q x&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      fix a&lt;br /&gt;
      have &amp;quot;Q a&amp;quot; using `∀x. Q x` ..&lt;br /&gt;
      thus &amp;quot;P a ∨ Q a&amp;quot; ..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13b: &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;
  note assms&lt;br /&gt;
  thus &amp;quot;P a ∨ Q a&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;∀x. P x&amp;quot;&lt;br /&gt;
    hence &amp;quot;P a&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;P a ∨ Q a&amp;quot; ..&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;∀x. Q x&amp;quot;&lt;br /&gt;
    hence &amp;quot;Q a&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;P a ∨ Q a&amp;quot; ..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_13c: &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 by auto&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_14a: &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;
  obtain a where &amp;quot;P a ∧ Q a&amp;quot; using assms ..&lt;br /&gt;
  hence &amp;quot;P a&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;∃x. P x&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;
      obtain a where &amp;quot;P a ∧ Q a&amp;quot; using assms ..&lt;br /&gt;
      hence &amp;quot;Q a&amp;quot; ..&lt;br /&gt;
      thus &amp;quot;∃x. Q x&amp;quot; ..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14b: &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;
  hence &amp;quot;P a&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;∃x. P x&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  obtain a where &amp;quot;P a ∧ Q a&amp;quot; using assms ..&lt;br /&gt;
  hence &amp;quot;Q a&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;∃x. Q x&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14c:&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;
  {have &amp;quot;∃x. P x&amp;quot;&lt;br /&gt;
    proof -&lt;br /&gt;
      have &amp;quot;P a&amp;quot; using `P a ∧ Q a` ..&lt;br /&gt;
      thus &amp;quot;∃x. P x&amp;quot; ..&lt;br /&gt;
    qed}&lt;br /&gt;
moreover&lt;br /&gt;
  {have &amp;quot;∃x. Q x&amp;quot;&lt;br /&gt;
  proof -&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using `P a ∧ Q a` ..&lt;br /&gt;
    thus &amp;quot;∃x. Q x&amp;quot; ..&lt;br /&gt;
  qed}&lt;br /&gt;
  ultimately show &amp;quot;(∃x. P x) ∧ (∃x. Q x)&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_14d:&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 by auto&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_15a: &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&lt;br /&gt;
  assume &amp;quot;∃y. P y&amp;quot;&lt;br /&gt;
  then obtain b where &amp;quot;P b&amp;quot; ..&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;∀y. P y ⟶ Q a&amp;quot; using assms ..&lt;br /&gt;
    hence &amp;quot;P b ⟶ Q a&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;Q a&amp;quot; using `P b` ..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_15b: &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;
  using assms by auto&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_16a: &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&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;
&lt;br /&gt;
lemma ejercicio_16b: &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 by auto&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_17a: &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;
  then obtain a where &amp;quot;P a &amp;quot; ..&lt;br /&gt;
  have &amp;quot;¬(P a)&amp;quot; using assms ..&lt;br /&gt;
  thus False using `P a` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_17b: &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 by auto&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_18a: &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;
  obtain a where &amp;quot;P a&amp;quot; using assms ..&lt;br /&gt;
  assume &amp;quot;∀x. ¬(P x)&amp;quot;&lt;br /&gt;
  hence &amp;quot;¬(P a)&amp;quot; ..&lt;br /&gt;
  thus False using `P a` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_18b: &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 by auto&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_19a: &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;
  fix b&lt;br /&gt;
  show &amp;quot;P a ⟶ Q b&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;P a&amp;quot;&lt;br /&gt;
    with assms have &amp;quot;∀x. Q x&amp;quot; ..&lt;br /&gt;
    thus &amp;quot;Q b&amp;quot; ..&lt;br /&gt;
  qed &lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_19b: &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;
  using assms by auto&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_20a: &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;
proof (rule allI)+&lt;br /&gt;
  fix a b&lt;br /&gt;
  show &amp;quot;R a b ⟶ ¬(R b a)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    show &amp;quot;¬(R b a)&amp;quot;&lt;br /&gt;
      proof&lt;br /&gt;
        assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
        with `R a b` have &amp;quot;R a b ∧ R b a&amp;quot; ..&lt;br /&gt;
        have &amp;quot;¬(R a a)&amp;quot; using assms(2) ..&lt;br /&gt;
        have &amp;quot;∀y z. R a y ∧ R y z ⟶ R a z&amp;quot; using assms(1) ..&lt;br /&gt;
        hence &amp;quot;∀z. R a b ∧ R b z ⟶ R a z&amp;quot;  ..&lt;br /&gt;
        hence &amp;quot;R a b ∧ R b a ⟶ R a a&amp;quot; ..&lt;br /&gt;
        hence &amp;quot;R a a&amp;quot; using `R a b ∧ R b a` ..&lt;br /&gt;
        with `¬(R a a)` show False ..&lt;br /&gt;
      qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_20b:&lt;br /&gt;
  &amp;quot;⟦∀x y z. R x y ∧ R y z ⟶ R x z; ∀x. ¬(R x x)⟧ ⟹ ∀x y. R x y ⟶ ¬(R y x)&amp;quot;&lt;br /&gt;
by metis&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_21a:&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;
proof -&lt;br /&gt;
  obtain a where &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;
  hence &amp;quot;¬(R a)&amp;quot; &lt;br /&gt;
    proof &lt;br /&gt;
      assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      hence &amp;quot;¬¬(P a)&amp;quot; by (rule notnotI)&lt;br /&gt;
      have &amp;quot;R a ⟶ ¬(P a)&amp;quot; using assms(3) ..&lt;br /&gt;
      thus &amp;quot;¬(R a)&amp;quot; using `¬¬(P a)` by (rule mt)&lt;br /&gt;
    next&lt;br /&gt;
      assume &amp;quot;Q a&amp;quot;&lt;br /&gt;
      with `¬(Q a)` show &amp;quot;¬(R a)&amp;quot; ..&lt;br /&gt;
    qed&lt;br /&gt;
    thus &amp;quot;∃x. ¬(R x)&amp;quot;  ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_21b:&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;
  using assms by auto&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_22a:&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;
proof&lt;br /&gt;
  fix a&lt;br /&gt;
  show &amp;quot;P a ⟶ Q a&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;P a&amp;quot;&lt;br /&gt;
      have &amp;quot;P a ⟶ Q a ∨ R a&amp;quot; using assms(1) ..&lt;br /&gt;
      hence &amp;quot;Q a ∨ R a&amp;quot; using `P a` ..&lt;br /&gt;
      thus &amp;quot;Q a&amp;quot;&lt;br /&gt;
        proof&lt;br /&gt;
          assume &amp;quot;Q a&amp;quot; thus &amp;quot;Q a&amp;quot; .&lt;br /&gt;
        next&lt;br /&gt;
          assume &amp;quot;R a&amp;quot;&lt;br /&gt;
          with `P a` have &amp;quot;P a ∧ R a&amp;quot; ..&lt;br /&gt;
          hence &amp;quot;∃x. P x ∧ R x&amp;quot; ..&lt;br /&gt;
          with assms(2) show &amp;quot;Q a&amp;quot; ..&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_22b:&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;
  using assms by auto&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_23a:&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 ..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot; ..&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; ..&lt;br /&gt;
    thus &amp;quot;∃x y. R x y&amp;quot; ..&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; ..&lt;br /&gt;
    thus &amp;quot;∃x y. R x y&amp;quot; ..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_23b:&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;
  using assms by auto&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_24a: &lt;br /&gt;
  &amp;quot;(∃x. ∀y. P x y) ⟶ (∀y. ∃x. P x y)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∃x. ∀y. P x y&amp;quot;&lt;br /&gt;
  then obtain a where &amp;quot;∀y. P a y&amp;quot; ..&lt;br /&gt;
  show &amp;quot;∀y. ∃x. P x y&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      fix b&lt;br /&gt;
      have &amp;quot;P a b&amp;quot; using `∀y. P a y` ..&lt;br /&gt;
      thus &amp;quot;∃x. P x b&amp;quot; ..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_24b: &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;
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;
&lt;br /&gt;
lemma ejercicio_25a: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;∀x. P x ⟶ Q&amp;quot;&lt;br /&gt;
  show &amp;quot;(∃x. P x) ⟶ Q&amp;quot;&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;
      have &amp;quot;P a ⟶ Q&amp;quot; using `∀x. P x ⟶ Q` ..&lt;br /&gt;
      thus &amp;quot;Q&amp;quot; using `P a` ..&lt;br /&gt;
    qed&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;(∃x. P x) ⟶ Q&amp;quot;&lt;br /&gt;
  show &amp;quot;∀x. P x ⟶ Q&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      fix a&lt;br /&gt;
      show &amp;quot;P a ⟶ Q&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;
          with `(∃x. P x) ⟶ Q` show &amp;quot;Q&amp;quot; ..&lt;br /&gt;
        qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_25b: &lt;br /&gt;
  &amp;quot;(∀x. P x ⟶ Q) ⟷ ((∃x. P x) ⟶ Q)&amp;quot;&lt;br /&gt;
  by auto&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_26a: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;(∀x. P x) ∧ (∀x. Q x)&amp;quot;&lt;br /&gt;
  hence &amp;quot;∀x. P x&amp;quot; ..&lt;br /&gt;
  have &amp;quot;∀x. Q x&amp;quot; using `(∀x. P x) ∧ (∀x. Q x)` ..&lt;br /&gt;
  show &amp;quot;∀x. P x ∧ Q x&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    fix a&lt;br /&gt;
    have &amp;quot;Q a&amp;quot; using `∀x. Q x` ..&lt;br /&gt;
    have &amp;quot;P a&amp;quot; using `∀x. P x` ..&lt;br /&gt;
    thus &amp;quot;P a ∧ Q a&amp;quot;  using `Q a` ..&lt;br /&gt;
  qed&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;∀x. P x ∧ Q x&amp;quot;&lt;br /&gt;
    show &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 `∀x. P x ∧ Q x` ..&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 `∀x. P x ∧ Q x` ..&lt;br /&gt;
        thus &amp;quot;Q a&amp;quot; ..&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_26b: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∧ (∀x. Q x)) ⟷ (∀x. P x ∧ Q x)&amp;quot;&lt;br /&gt;
  by auto&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_27a: &lt;br /&gt;
  &amp;quot;((∀x. P x) ∨ (∀x. Q x)) ⟷ (∀x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
  nitpick&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(* Nitpicking formula... *)&lt;br /&gt;
&lt;br /&gt;
(* Nitpick found a counterexample for card &amp;#039;a = 2: *)&lt;br /&gt;
&lt;br /&gt;
(*   Free variables: *)&lt;br /&gt;
(*     P = (λx. _)(a\&amp;lt;^isub&amp;gt;1 := False, a\&amp;lt;^isub&amp;gt;2 := True) *)&lt;br /&gt;
(*     Q = (λx. _)(a\&amp;lt;^isub&amp;gt;1 := True, a\&amp;lt;^isub&amp;gt;2 := False) *)&lt;br /&gt;
oops&lt;br /&gt;
&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_28a: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28b: &lt;br /&gt;
  &amp;quot;((∃x. P x) ∨ (∃x. Q x)) ⟷ (∃x. P x ∨ Q x)&amp;quot;&lt;br /&gt;
proof&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;&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;
  next&lt;br /&gt;
    assume &amp;quot;∃x. P x ∨ Q x&amp;quot;&lt;br /&gt;
    then obtain a where &amp;quot;P a ∨ Q a&amp;quot; ..&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;
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;
&lt;br /&gt;
  &amp;quot;(∀x. ∃y. P x y) ⟶ (∃y. ∀x. P x y)&amp;quot;&lt;br /&gt;
nitpick&lt;br /&gt;
&lt;br /&gt;
(*&lt;br /&gt;
Nitpicking formula...&lt;br /&gt;
&lt;br /&gt;
Nitpick found a counterexample for card &amp;#039;a = 2 and card &amp;#039;b = 2:&lt;br /&gt;
&lt;br /&gt;
  Free variable:&lt;br /&gt;
    P = (λx. _)&lt;br /&gt;
        (a\&amp;lt;^isub&amp;gt;1 := (λx. _)(b\&amp;lt;^isub&amp;gt;1 := False, b\&amp;lt;^isub&amp;gt;2 := True),&lt;br /&gt;
         a\&amp;lt;^isub&amp;gt;2 := (λx. _)(b\&amp;lt;^isub&amp;gt;1 := True, b\&amp;lt;^isub&amp;gt;2 := False))&lt;br /&gt;
  Skolem constants:&lt;br /&gt;
    λy. x = (λx. _)(b\&amp;lt;^isub&amp;gt;1 := a\&amp;lt;^isub&amp;gt;1, b\&amp;lt;^isub&amp;gt;2 := a\&amp;lt;^isub&amp;gt;2)&lt;br /&gt;
    λx. y = (λx. _)(a\&amp;lt;^isub&amp;gt;1 := b\&amp;lt;^isub&amp;gt;2, a\&amp;lt;^isub&amp;gt;2 := b\&amp;lt;^isub&amp;gt;1)&lt;br /&gt;
*)&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_30a: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
  by auto&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30b: &lt;br /&gt;
  &amp;quot;(¬(∀x. P x)) ⟷ (∃x. ¬P x)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;¬(∀x. P x)&amp;quot;&lt;br /&gt;
  show &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 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 `¬(∀x. P x)` show False .. &lt;br /&gt;
  qed&lt;br /&gt;
next&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;
  show  &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;
      hence &amp;quot;P a&amp;quot; ..&lt;br /&gt;
      with `¬ (P a)` show False ..&lt;br /&gt;
    qed&lt;br /&gt;
qed&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_31a:&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;
  using assms by auto&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;
proof&lt;br /&gt;
  fix b &lt;br /&gt;
  show &amp;quot;b = a ⟶ P b&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
  assume &amp;quot;b = a&amp;quot; thus &amp;quot;P b&amp;quot; using assms by (rule ssubst)&lt;br /&gt;
  qed&lt;br /&gt;
qed&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_32a:&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;
  using assms by metis&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32b:&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;
proof -&lt;br /&gt;
  from assms(1) obtain a where &amp;quot;∃y. R a y ∨ R y a&amp;quot; ..&lt;br /&gt;
  then obtain b where &amp;quot;R a b ∨ R b a&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;R a b&amp;quot;&lt;br /&gt;
    have &amp;quot;¬(a = b)&amp;quot;&lt;br /&gt;
      proof &lt;br /&gt;
        assume &amp;quot;a = b&amp;quot;&lt;br /&gt;
        hence &amp;quot;R a a&amp;quot; using `R a b` by (rule ssubst)&lt;br /&gt;
        hence &amp;quot;∃x. R x x&amp;quot; ..&lt;br /&gt;
        with assms(2) show False ..&lt;br /&gt;
      qed&lt;br /&gt;
      hence &amp;quot;∃y. a ≠ y&amp;quot; ..&lt;br /&gt;
      thus &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot; ..&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;R b a&amp;quot;&lt;br /&gt;
    have &amp;quot;¬(a = b)&amp;quot;&lt;br /&gt;
      proof &lt;br /&gt;
        assume &amp;quot;a = b&amp;quot;&lt;br /&gt;
        hence &amp;quot;R a a&amp;quot; using `R b a` by (rule ssubst)&lt;br /&gt;
        hence &amp;quot;∃x. R x x&amp;quot; ..&lt;br /&gt;
        with assms(2) show False ..&lt;br /&gt;
      qed&lt;br /&gt;
      hence &amp;quot;∃y. a ≠ y&amp;quot; ..&lt;br /&gt;
      thus &amp;quot;∃(x::&amp;#039;c) y. x ≠ y&amp;quot; ..&lt;br /&gt;
  qed&lt;br /&gt;
qed&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_33a:&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;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33b:&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;
proof -&lt;br /&gt;
  have &amp;quot;P a a a&amp;quot; using assms(1) ..&lt;br /&gt;
  have &amp;quot;∀y z. P a y z ⟶ P (f a) y (f z)&amp;quot; using assms(2) ..&lt;br /&gt;
  hence &amp;quot;∀z. P a a z ⟶ P (f a) a (f z)&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;P a a a ⟶ P (f a) a (f a)&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;P (f a) a (f a)&amp;quot; using `P a a a` ..&lt;br /&gt;
qed&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_34a:&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;
  using assms by metis&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;
proof -&lt;br /&gt;
  have &amp;quot;P a (f a) (f a)&amp;quot; using assms(1) ..&lt;br /&gt;
  have &amp;quot;∀y z. P a y z ⟶ P (f a) y (f z)&amp;quot; using assms(2) ..&lt;br /&gt;
  hence &amp;quot;∀z. P a (f a) z ⟶ P (f a) (f a) (f z)&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;P a (f a) (f a) ⟶ P (f a) (f a) (f (f a))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;P (f a) (f a) (f (f a))&amp;quot; using `P a (f a) (f a)` ..&lt;br /&gt;
  thus &amp;quot;∃z. P (f a) z (f (f a))&amp;quot; ..&lt;br /&gt;
qed&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_35a:&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;
  using assms by metis&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35b:&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;
proof -&lt;br /&gt;
  have &amp;quot;Q a (s a)&amp;quot; using assms(1) ..&lt;br /&gt;
  have &amp;quot;∀y. Q a y ⟶ Q (s a) (s y)&amp;quot; using assms(2) ..&lt;br /&gt;
  hence &amp;quot;Q a (s a) ⟶ Q (s a) (s (s a))&amp;quot; ..&lt;br /&gt;
  hence &amp;quot;Q (s a) (s (s a))&amp;quot; using `Q a (s a)` ..&lt;br /&gt;
  with `Q a (s a)` have &amp;quot;Q a (s a) ∧ Q (s a) (s (s a))&amp;quot; ..&lt;br /&gt;
  thus &amp;quot;∃z. Q a z ∧ Q z (s (s a))&amp;quot; ..&lt;br /&gt;
qed&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_36a:&lt;br /&gt;
  &amp;quot;⟦x = f x; odd (f x)⟧ ⟹ odd x&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  assumes &amp;quot;x = f x&amp;quot; and&lt;br /&gt;
          &amp;quot;odd (f x)&amp;quot;&lt;br /&gt;
  shows &amp;quot;odd x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;odd x&amp;quot; using assms by (rule ssubst)&lt;br /&gt;
qed&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_37a:&lt;br /&gt;
  &amp;quot;⟦x = f x; triple (f x) (f x) x⟧ ⟹ triple x x x&amp;quot;&lt;br /&gt;
  by auto&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  assumes &amp;quot;x = f x&amp;quot; and&lt;br /&gt;
          &amp;quot;triple (f x) (f x) x&amp;quot;&lt;br /&gt;
  shows &amp;quot;triple x x x&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  show &amp;quot;triple x x x&amp;quot; using assms by (rule ssubst)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ej_8_8_26: &lt;br /&gt;
  assumes 1:&amp;quot;∀x. P x ⟶ ((∃y. Q x y) ⟶ (∃y. Q y x)) &amp;quot; and&lt;br /&gt;
          2:&amp;quot;∀x. (∃y. Q y x) ⟶ Q x x&amp;quot; and&lt;br /&gt;
          3: &amp;quot;¬ (∃x. Q x x)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;∀x. P x ⟶ (∀y. (¬ Q x y))&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  fix a &lt;br /&gt;
  show &amp;quot;P a ⟶ (∀y. (¬ Q a y))&amp;quot;&lt;br /&gt;
   proof&lt;br /&gt;
      assume &amp;quot;P a&amp;quot;&lt;br /&gt;
        show &amp;quot;∀y. (¬ Q a y)&amp;quot;&lt;br /&gt;
         proof&lt;br /&gt;
            fix b&lt;br /&gt;
            show &amp;quot;¬ Q a b&amp;quot;&lt;br /&gt;
              proof&lt;br /&gt;
                 assume &amp;quot;Q a b&amp;quot;&lt;br /&gt;
                 hence 4:&amp;quot;∃y. Q a y&amp;quot; ..&lt;br /&gt;
                 have &amp;quot;P a ⟶ ((∃y. Q a y) ⟶ (∃y. Q y a))&amp;quot; using 1 ..&lt;br /&gt;
                 hence &amp;quot;(∃y. Q a y) ⟶ (∃y. Q y a)&amp;quot; using `P a` ..&lt;br /&gt;
                 hence 5:&amp;quot;∃y. Q y a&amp;quot; using 4 ..&lt;br /&gt;
                 have &amp;quot;(∃y. Q y a) ⟶ Q a a&amp;quot; using 2 ..&lt;br /&gt;
                 hence &amp;quot;Q a a&amp;quot; using 5 ..&lt;br /&gt;
                 hence &amp;quot;∃x. Q x x&amp;quot; ..&lt;br /&gt;
                 with 3 show False ..&lt;br /&gt;
              qed&lt;br /&gt;
         qed&lt;br /&gt;
   qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mjoseh</name></author>
		
	</entry>
</feed>