<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://www.glc.us.es/~jalonso/LMF2020/index.php?action=history&amp;feed=atom&amp;title=Rel_3</id>
	<title>Rel 3 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://www.glc.us.es/~jalonso/LMF2020/index.php?action=history&amp;feed=atom&amp;title=Rel_3"/>
	<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2020/index.php?title=Rel_3&amp;action=history"/>
	<updated>2026-07-20T11:40:38Z</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/LMF2020/index.php?title=Rel_3&amp;diff=264&amp;oldid=prev</id>
		<title>Mjoseh: Protegió «Rel 3» ([Editar=Solo administradores] (indefinido) [Trasladar=Solo administradores] (indefinido))</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2020/index.php?title=Rel_3&amp;diff=264&amp;oldid=prev"/>
		<updated>2020-03-17T16:14:15Z</updated>

		<summary type="html">&lt;p&gt;Protegió «&lt;a href=&quot;/~jalonso/LMF2020/index.php/Rel_3&quot; title=&quot;Rel 3&quot;&gt;Rel 3&lt;/a&gt;» ([Editar=Solo administradores] (indefinido) [Trasladar=Solo administradores] (indefinido))&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 16:14 17 mar 2020&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/LMF2020/index.php?title=Rel_3&amp;diff=263&amp;oldid=prev</id>
		<title>Mjoseh: Página creada con «&lt;source lang = &quot;isabelle&quot;&gt; chapter ‹ R3: Deducción natural proposicional(II) ›  theory R3_sol imports Main  begin  text ‹--------------------------------------------…»</title>
		<link rel="alternate" type="text/html" href="https://www.glc.us.es/~jalonso/LMF2020/index.php?title=Rel_3&amp;diff=263&amp;oldid=prev"/>
		<updated>2020-03-17T16:14:00Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «&amp;lt;source lang = &amp;quot;isabelle&amp;quot;&amp;gt; chapter ‹ R3: Deducción natural proposicional(II) ›  theory R3_sol imports Main  begin  text ‹--------------------------------------------…»&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 ‹ R3: Deducción natural proposicional(II) ›&lt;br /&gt;
&lt;br /&gt;
theory R3_sol&lt;br /&gt;
imports Main &lt;br /&gt;
begin&lt;br /&gt;
&lt;br /&gt;
text ‹------------------------------------------------------------------ &lt;br /&gt;
  El objetivo de esta relación es demostrar cada uno de los ejercicios&lt;br /&gt;
  usando sólo las reglas básicas de deducción natural de la lógica&lt;br /&gt;
  proposicional (sin usar los método simp ni auto).&lt;br /&gt;
&lt;br /&gt;
  Para cada ejercicio dar una demostración estructurada y otra&lt;br /&gt;
  aplicativa.&lt;br /&gt;
&lt;br /&gt;
  Las reglas básicas de la deducción natural son las siguientes:&lt;br /&gt;
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q&lt;br /&gt;
  · conjunct1:  P ∧ Q ⟹ P&lt;br /&gt;
  · conjunct2:  P ∧ Q ⟹ Q  &lt;br /&gt;
  · notnotD:    ¬¬ P ⟹ P&lt;br /&gt;
  · notnotI:    P ⟹ ¬¬ P&lt;br /&gt;
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q &lt;br /&gt;
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F &lt;br /&gt;
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q&lt;br /&gt;
  · disjI1:     P ⟹ P ∨ Q&lt;br /&gt;
  · disjI2:     Q ⟹ P ∨ Q&lt;br /&gt;
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R &lt;br /&gt;
  · FalseE:     False ⟹ P&lt;br /&gt;
  · notE:       ⟦¬P; P⟧ ⟹ R&lt;br /&gt;
  · notI:       (P ⟹ False) ⟹ ¬P&lt;br /&gt;
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q&lt;br /&gt;
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P &lt;br /&gt;
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P&lt;br /&gt;
  · ccontr:     (¬P ⟹ False) ⟹ P&lt;br /&gt;
  ---------------------------------------------------------------------›&lt;br /&gt;
&lt;br /&gt;
text ‹Se usarán las reglas notnotI y mt que demostramos a continuación.›&lt;br /&gt;
&lt;br /&gt;
lemma notnotI: &amp;quot;P ⟹ ¬¬ P&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma mt: &amp;quot;⟦F ⟶ G; ¬G⟧ ⟹ ¬F&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
section ‹ Disyunciones ›&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 25. Demostrar&lt;br /&gt;
     p ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
lemma ejercicio_25:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p∨q&amp;quot; using assms by (rule disjI1)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ej25: &amp;quot;p ⟹ p ∨ q&amp;quot;&lt;br /&gt;
  apply (erule disjI1)&lt;br /&gt;
  done&lt;br /&gt;
    &lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 26. Demostrar&lt;br /&gt;
     q ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
lemma ejercicio_26:&lt;br /&gt;
  assumes &amp;quot;q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;p∨q&amp;quot; using assms by (rule disjI2)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ej26: &amp;quot;q ⟹ p ∨ q&amp;quot;&lt;br /&gt;
  apply (erule disjI2)&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 27. Demostrar&lt;br /&gt;
     p ∨ q ⊢ q ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
lemma ejercicio_27a:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
have &amp;quot;p ∨ q&amp;quot; using assms by this&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 2: &amp;quot;p&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 2 by (rule disjI2) }&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume 3: &amp;quot;q&amp;quot;&lt;br /&gt;
    have &amp;quot;q ∨ p&amp;quot; using 3 by (rule disjI1) }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; by (rule disjE) &lt;br /&gt;
qed  &lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27b:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
proof - &lt;br /&gt;
  note `p ∨ q`&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;p&amp;quot;&lt;br /&gt;
    then have &amp;quot;q ∨ p&amp;quot; ..}&lt;br /&gt;
  moreover&lt;br /&gt;
  { assume &amp;quot;q&amp;quot;&lt;br /&gt;
    then have &amp;quot;q ∨ p&amp;quot; .. }&lt;br /&gt;
  ultimately show &amp;quot;q ∨ p&amp;quot; .. &lt;br /&gt;
qed  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27c:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
  using assms&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  then show &amp;quot;q ∨ p&amp;quot; ..&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q&amp;quot;&lt;br /&gt;
  then show &amp;quot;q ∨ p&amp;quot; ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_27d:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;q ∨ p&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej27: &amp;quot;p ∨ q ⟹ q ∨ p&amp;quot;&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule disjI2)&lt;br /&gt;
  apply (erule disjI1)&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 28. Demostrar&lt;br /&gt;
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28b:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  show &amp;quot;p ∨ r&amp;quot;&lt;br /&gt;
    using `p ∨ q`&lt;br /&gt;
    proof (rule disjE)&lt;br /&gt;
      assume &amp;quot;p&amp;quot;&lt;br /&gt;
      then show &amp;quot;p ∨ r&amp;quot; ..&lt;br /&gt;
      next&lt;br /&gt;
      assume &amp;quot;q&amp;quot;&lt;br /&gt;
      with assms(1) have &amp;quot;r&amp;quot; ..&lt;br /&gt;
      then show &amp;quot;p ∨ r&amp;quot; ..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_28c:&lt;br /&gt;
  assumes &amp;quot;q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej28: &amp;quot;q ⟶ r ⟹ p ∨ q ⟶ p ∨ r&amp;quot;&lt;br /&gt;
  apply (rule impI)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule disjI1)&lt;br /&gt;
  apply (drule mp)&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply (erule disjI2)&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 29. Demostrar&lt;br /&gt;
     p ∨ p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29b:&lt;br /&gt;
  assumes &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
  using assms&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  then show &amp;quot;p&amp;quot; .&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  then show &amp;quot;p&amp;quot; .&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_29c:&lt;br /&gt;
  assumes &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej29: &amp;quot;p ∨ p ⟹ p&amp;quot;&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply assumption+&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 30. Demostrar&lt;br /&gt;
     p ⊢ p ∨ p&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30a:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
  using assms&lt;br /&gt;
proof (rule disjI1)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_30b:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ p&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej30: &amp;quot;p ⟹ p ∨ p&amp;quot;&lt;br /&gt;
  apply (erule disjI1)&lt;br /&gt;
  done&lt;br /&gt;
    &lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 31. Demostrar&lt;br /&gt;
     p ∨ (q ∨ r) ⊢ (p ∨ q) ∨ r&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31a:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∨ r&amp;quot;&lt;br /&gt;
  using assms&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  then have &amp;quot;p ∨ q&amp;quot; by (rule disjI1)&lt;br /&gt;
  then show &amp;quot;(p ∨ q) ∨ r&amp;quot; by (rule disjI1)&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q ∨ r&amp;quot; &lt;br /&gt;
  then show &amp;quot;(p ∨ q) ∨ r&amp;quot;&lt;br /&gt;
    proof (rule disjE)&lt;br /&gt;
      assume &amp;quot;q&amp;quot;&lt;br /&gt;
      then have &amp;quot;p ∨ q&amp;quot; by (rule disjI2)&lt;br /&gt;
      then show &amp;quot;(p ∨ q) ∨ r&amp;quot; by (rule disjI1)&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;r&amp;quot;&lt;br /&gt;
    then show &amp;quot;(p ∨ q) ∨ r&amp;quot; by (rule disjI2)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_31b:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∨ r&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej31: &amp;quot;p ∨ (q ∨ r) ⟹ (p ∨ q) ∨ r&amp;quot;&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (rule disjI1)&lt;br /&gt;
   apply (erule disjI1)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (rule disjI1)&lt;br /&gt;
   apply (erule disjI2)&lt;br /&gt;
  apply (erule disjI2)&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 32. Demostrar&lt;br /&gt;
     (p ∨ q) ∨ r ⊢ p ∨ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∨ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_32b:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∨ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∨ r)&amp;quot;&lt;br /&gt;
  using ‹(p ∨ q) ∨ r›&lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  then show &amp;quot;p ∨ (q ∨ r)&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    assume &amp;quot;p&amp;quot; &lt;br /&gt;
    then show &amp;quot;p ∨ (q ∨ r)&amp;quot; by (rule disjI1)&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;q&amp;quot; &lt;br /&gt;
    then have &amp;quot;q ∨ r&amp;quot; by (rule disjI1)&lt;br /&gt;
    then show &amp;quot;p ∨ (q ∨ r)&amp;quot; by (rule disjI2)&lt;br /&gt;
  qed&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;r&amp;quot; &lt;br /&gt;
  then have &amp;quot;q ∨ r&amp;quot; by (rule disjI2)&lt;br /&gt;
  then show &amp;quot;p ∨ (q ∨ r)&amp;quot; by (rule disjI2)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ej32: &amp;quot;(p ∨ q) ∨ r ⟹ p ∨ (q ∨ r)&amp;quot;&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule disjE)&lt;br /&gt;
    apply (erule disjI1)&lt;br /&gt;
   apply (rule disjI2)&lt;br /&gt;
   apply (erule disjI1)&lt;br /&gt;
  apply (rule disjI2)&lt;br /&gt;
  apply (erule disjI2)&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 33. Demostrar&lt;br /&gt;
     p ∧ (q ∨ r) ⊢ (p ∧ q) ∨ (p ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_33b:&lt;br /&gt;
  assumes &amp;quot;p ∧ (q ∨ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have &amp;quot;p&amp;quot; using ‹p ∧ (q ∨ r)› by (rule conjunct1)&lt;br /&gt;
  show &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    assume &amp;quot;q&amp;quot; &lt;br /&gt;
    have &amp;quot;p ∧ q&amp;quot; using ‹p› ‹q› by (rule conjI)&lt;br /&gt;
    then show &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot; by (rule disjI1)&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;r&amp;quot; &lt;br /&gt;
    have &amp;quot;p ∧ r&amp;quot; using ‹p› ‹r› by (rule conjI)&lt;br /&gt;
    then show &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot; by (rule disjI2)&lt;br /&gt;
  next&lt;br /&gt;
    show &amp;quot;q ∨ r&amp;quot; using ‹p ∧ (q ∨ r)› by (rule conjunct2)&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ej33: &amp;quot;p ∧ (q ∨ r) ⟹ (p ∧ q) ∨ (p ∧ r)&amp;quot;&lt;br /&gt;
  apply (erule conjE)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (rule disjI1)&lt;br /&gt;
   apply (rule conjI)&lt;br /&gt;
    apply assumption&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply (rule disjI2)&lt;br /&gt;
  apply (rule conjI)&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 34. Demostrar&lt;br /&gt;
     (p ∧ q) ∨ (p ∧ r) ⊢ p ∧ (q ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34a:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
  using assms&lt;br /&gt;
proof &lt;br /&gt;
  assume &amp;quot;p∧q&amp;quot;&lt;br /&gt;
  show &amp;quot;p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
    proof (rule conjI)&lt;br /&gt;
      show &amp;quot;p&amp;quot; using `p∧q` ..&lt;br /&gt;
    next&lt;br /&gt;
      have &amp;quot;q&amp;quot; using `p∧q` ..&lt;br /&gt;
      then show &amp;quot;q∨r&amp;quot; by (rule disjI1)&lt;br /&gt;
    qed&lt;br /&gt;
  next&lt;br /&gt;
  assume &amp;quot;p∧r&amp;quot;&lt;br /&gt;
  show &amp;quot;p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
    proof (rule conjI)&lt;br /&gt;
      show &amp;quot;p&amp;quot; using `p∧r` ..&lt;br /&gt;
    next&lt;br /&gt;
      have &amp;quot;r&amp;quot; using `p∧r` ..&lt;br /&gt;
      then show &amp;quot;q∨r&amp;quot; by (rule disjI2)&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_34b:&lt;br /&gt;
  assumes &amp;quot;(p ∧ q) ∨ (p ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej34: &amp;quot;(p ∧ q) ∨ (p ∧ r) ⟹ p ∧ (q ∨ r)&amp;quot;&lt;br /&gt;
  apply (rule conjI)&lt;br /&gt;
   apply (erule disjE)&lt;br /&gt;
    apply (erule conjunct1)&lt;br /&gt;
   apply (erule conjunct1)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule conjE)&lt;br /&gt;
   apply (rule disjI1)&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply (erule conjE)&lt;br /&gt;
  apply (erule disjI2)&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 35. Demostrar&lt;br /&gt;
     p ∨ (q ∧ r) ⊢ (p ∨ q) ∧ (p ∨ r)&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
oops&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_35b:&lt;br /&gt;
  assumes &amp;quot;p ∨ (q ∧ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
  using ‹p ∨ (q ∧ r)› &lt;br /&gt;
proof (rule disjE)&lt;br /&gt;
  assume &amp;quot;p&amp;quot; &lt;br /&gt;
  then have &amp;quot;p ∨ r&amp;quot; by (rule disjI1)&lt;br /&gt;
  have &amp;quot;p ∨ q&amp;quot; using ‹p› by (rule disjI1)&lt;br /&gt;
  then show &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot; using ‹p ∨ r› by (rule conjI)&lt;br /&gt;
next&lt;br /&gt;
  assume &amp;quot;q ∧ r&amp;quot;&lt;br /&gt;
  then have &amp;quot;r&amp;quot; by (rule conjunct2)&lt;br /&gt;
  then have &amp;quot;p ∨ r&amp;quot; by (rule disjI2)&lt;br /&gt;
  have &amp;quot;q&amp;quot; using ‹q ∧ r› by (rule conjunct1)&lt;br /&gt;
  then have &amp;quot;p ∨ q&amp;quot; by (rule disjI2)&lt;br /&gt;
  then show &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot; using ‹p ∨ r› by (rule conjI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ej35: &amp;quot;p ∨ (q ∧ r) ⟹ (p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (rule conjI)&lt;br /&gt;
    apply (erule disjI1)&lt;br /&gt;
   apply (erule disjI1)&lt;br /&gt;
  apply (erule conjE)&lt;br /&gt;
  apply (rule conjI)&lt;br /&gt;
   apply (erule disjI2)&lt;br /&gt;
  apply (erule disjI2)&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 36. Demostrar&lt;br /&gt;
     (p ∨ q) ∧ (p ∨ r) ⊢ p ∨ (q ∧ r)&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36a:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;p ∨ q&amp;quot; using assms ..&lt;br /&gt;
  then show &amp;quot;p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;p&amp;quot;&lt;br /&gt;
    then show &amp;quot;p ∨ (q ∧ r)&amp;quot; by (rule disjI1)&lt;br /&gt;
  next &lt;br /&gt;
    assume &amp;quot;q&amp;quot;&lt;br /&gt;
      have &amp;quot;p ∨ r&amp;quot; using assms ..&lt;br /&gt;
      then show &amp;quot;p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
      proof&lt;br /&gt;
        assume &amp;quot;p&amp;quot;&lt;br /&gt;
        then show &amp;quot;p ∨ (q∧r)&amp;quot; by (rule disjI1)&lt;br /&gt;
      next&lt;br /&gt;
        assume &amp;quot;r&amp;quot;&lt;br /&gt;
        with `q` have &amp;quot;q ∧ r&amp;quot; ..&lt;br /&gt;
        then show &amp;quot;p ∨ (q ∧ r)&amp;quot; by (rule disjI2)&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_36b:&lt;br /&gt;
  assumes &amp;quot;(p ∨ q) ∧ (p ∨ r)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej36: &amp;quot;(p ∨ q) ∧ (p ∨ r) ⟹ p ∨ (q ∧ r)&amp;quot;&lt;br /&gt;
  apply (erule conjE)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule disjI1)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule disjI1)&lt;br /&gt;
  apply (rule disjI2)&lt;br /&gt;
  apply (rule conjI)&lt;br /&gt;
   apply assumption+&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 37. Demostrar&lt;br /&gt;
     (p ⟶ r) ∧ (q ⟶ r) ⊢ p ∨ q ⟶ r&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ r&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  then show &amp;quot;r&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;p&amp;quot;&lt;br /&gt;
      have &amp;quot;p ⟶ r&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
      then show &amp;quot;r&amp;quot; using `p` ..&lt;br /&gt;
    next&lt;br /&gt;
      assume &amp;quot;q&amp;quot;&lt;br /&gt;
      have &amp;quot;q ⟶ r&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
      then show &amp;quot;r&amp;quot; using `q` ..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_37b:&lt;br /&gt;
  assumes &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∨ q ⟶ r&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej37: &amp;quot;(p ⟶ r) ∧ (q ⟶ r) ⟹ p ∨ q ⟶ r&amp;quot;&lt;br /&gt;
  apply (rule impI)&lt;br /&gt;
  apply (erule conjE)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (drule mp, assumption+)+&lt;br /&gt;
  done&lt;br /&gt;
    &lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 38. Demostrar&lt;br /&gt;
     p ∨ q ⟶ r ⊢ (p ⟶ r) ∧ (q ⟶ r)&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_38a:&lt;br /&gt;
  assumes &amp;quot;p ∨ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot;&lt;br /&gt;
  proof (rule conjI)&lt;br /&gt;
    show &amp;quot;p ⟶ r&amp;quot;&lt;br /&gt;
      proof (rule impI)&lt;br /&gt;
        assume &amp;quot;p&amp;quot;&lt;br /&gt;
        then have &amp;quot;p ∨ q&amp;quot; ..&lt;br /&gt;
        with assms show &amp;quot;r&amp;quot; by (rule mp)&lt;br /&gt;
      qed&lt;br /&gt;
  next&lt;br /&gt;
    show &amp;quot;q ⟶ r&amp;quot;&lt;br /&gt;
      proof (rule impI)&lt;br /&gt;
        assume &amp;quot;q&amp;quot;&lt;br /&gt;
        then have &amp;quot;p ∨ q&amp;quot; ..&lt;br /&gt;
        with assms show &amp;quot;r&amp;quot; by (rule mp)&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_38b:&lt;br /&gt;
  assumes &amp;quot;p ∨ q ⟶ r&amp;quot; &lt;br /&gt;
  shows   &amp;quot;(p ⟶ r) ∧ (q ⟶ r)&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej38: &amp;quot;p ∨ q ⟶ r ⟹ (p ⟶ r) ∧ (q ⟶ r)&amp;quot;&lt;br /&gt;
  apply (rule conjI)&lt;br /&gt;
   apply (rule impI)&lt;br /&gt;
   apply (drule mp)&lt;br /&gt;
    apply (erule disjI1)&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply (rule impI)&lt;br /&gt;
  apply (drule mp)&lt;br /&gt;
  apply (erule disjI2)&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
section ‹ Negaciones ›&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 39. Demostrar&lt;br /&gt;
     p ⊢ ¬¬p&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
lemma ejercicio_39:&lt;br /&gt;
  assumes &amp;quot;p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
show &amp;quot;¬¬p&amp;quot; using assms by (rule notnotI)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ej39: &amp;quot;p ⟹ ¬¬p&amp;quot;&lt;br /&gt;
  apply (rule notI)&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 40. Demostrar&lt;br /&gt;
     ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_40a:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  with assms show &amp;quot;q&amp;quot; by (rule notE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_40b:&lt;br /&gt;
  assumes &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej40: &amp;quot;¬p ⟹ p ⟶ q&amp;quot;&lt;br /&gt;
  apply (rule impI)&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 41. Demostrar&lt;br /&gt;
     p ⟶ q ⊢ ¬q ⟶ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_41:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
  with assms show &amp;quot;¬p&amp;quot; by (rule mt)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_41b:&lt;br /&gt;
  assumes &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ej41: &amp;quot;p ⟶ q ⟹ ¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
  apply (rule impI)&lt;br /&gt;
  apply (rule notI)&lt;br /&gt;
  apply (erule impE)&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 42. Demostrar&lt;br /&gt;
     p∨q, ¬q ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_42a:&lt;br /&gt;
  assumes &amp;quot;p∨q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
  using assms(1)&lt;br /&gt;
  proof &lt;br /&gt;
    assume &amp;quot;p&amp;quot; then show &amp;quot;p&amp;quot; .&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;q&amp;quot; &lt;br /&gt;
    with assms(2) show &amp;quot;p&amp;quot; by (rule notE)&lt;br /&gt;
  qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_42b:&lt;br /&gt;
  assumes &amp;quot;p∨q&amp;quot;&lt;br /&gt;
          &amp;quot;¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej42: &amp;quot;⟦p ∨ q; ¬q⟧ ⟹ p&amp;quot;&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 43. Demostrar&lt;br /&gt;
     p ∨ q, ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_43a:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
  using assms(1)&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;p&amp;quot;&lt;br /&gt;
    with assms(2) show &amp;quot;q&amp;quot; by (rule notE)&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;q&amp;quot; then show q .&lt;br /&gt;
  qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_43b:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
          &amp;quot;¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej43: &amp;quot;⟦p ∨ q; ¬p⟧ ⟹ q&amp;quot;&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule notE)&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 44. Demostrar&lt;br /&gt;
     p ∨ q ⊢ ¬(¬p ∧ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_44a:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  using assms&lt;br /&gt;
  proof &lt;br /&gt;
    assume &amp;quot;p&amp;quot;&lt;br /&gt;
    show &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
        then have &amp;quot;¬p&amp;quot; by (rule conjunct1)&lt;br /&gt;
        then show False using `p` by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;q&amp;quot;&lt;br /&gt;
    show &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
      proof (rule notI)&lt;br /&gt;
        assume &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
        then have &amp;quot;¬q&amp;quot; by (rule conjunct2)&lt;br /&gt;
        then show False using `q` by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
  qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_44b:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  proof (rule notI)&lt;br /&gt;
    assume &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
    show False using assms &lt;br /&gt;
      proof (rule disjE)&lt;br /&gt;
        assume &amp;quot;p&amp;quot;&lt;br /&gt;
        have &amp;quot;¬p&amp;quot; using `¬p ∧ ¬q` by (rule conjunct1)&lt;br /&gt;
        then show False using `p` by (rule notE)&lt;br /&gt;
      next&lt;br /&gt;
        assume &amp;quot;q&amp;quot;&lt;br /&gt;
        have &amp;quot;¬q&amp;quot; using `¬p ∧ ¬q` by (rule conjunct2)&lt;br /&gt;
        then show False using `q` by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
  qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_44c:&lt;br /&gt;
  assumes &amp;quot;p ∨ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej44: &amp;quot;p ∨ q ⟹ ¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  apply (rule notI)&lt;br /&gt;
  apply (erule conjE)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule notE, assumption)+&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 45. Demostrar&lt;br /&gt;
     p ∧ q ⊢ ¬(¬p ∨ ¬q)&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_45a:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∨ ¬q)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
    then show False&lt;br /&gt;
      proof (rule disjE)&lt;br /&gt;
        assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
        have &amp;quot;p&amp;quot; using assms ..&lt;br /&gt;
        with `¬ p` show False ..&lt;br /&gt;
      next&lt;br /&gt;
        assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
        have &amp;quot;q&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
        with `¬ q` show False by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
  qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_45c:&lt;br /&gt;
  assumes &amp;quot;p ∧ q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(¬p ∨ ¬q)&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej45: &amp;quot;p ∧ q ⟹ ¬(¬p ∨ ¬q)&amp;quot;&lt;br /&gt;
  apply (rule notI)&lt;br /&gt;
  apply (erule conjE)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule notE, assumption)+&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 46. Demostrar&lt;br /&gt;
     ¬(p ∨ q) ⊢ ¬p ∧ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_46a:&lt;br /&gt;
  assumes &amp;quot;¬(p ∨ q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    show &amp;quot;¬p&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;p&amp;quot;&lt;br /&gt;
      then have &amp;quot;p ∨ q&amp;quot; by (rule disjI1)&lt;br /&gt;
      with assms show False by (rule notE)&lt;br /&gt;
    qed&lt;br /&gt;
  next&lt;br /&gt;
    show &amp;quot;¬q&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;q&amp;quot;&lt;br /&gt;
      then have &amp;quot;p ∨ q&amp;quot; ..&lt;br /&gt;
      with assms show False ..&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_46c:&lt;br /&gt;
  assumes &amp;quot;¬(p ∨ q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬p ∧ ¬q&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej46: &amp;quot;¬(p ∨ q) ⟹ ¬p ∧ ¬q&amp;quot;&lt;br /&gt;
  apply (rule conjI)&lt;br /&gt;
   apply (rule notI)&lt;br /&gt;
   apply (erule notE)&lt;br /&gt;
   apply (erule disjI1)&lt;br /&gt;
  apply (rule notI)&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
  apply (erule disjI2)&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 47. Demostrar&lt;br /&gt;
     ¬p ∧ ¬q ⊢ ¬(p ∨ q)&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_47a:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ ¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(p ∨ q)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
    then show False&lt;br /&gt;
      proof&lt;br /&gt;
        assume &amp;quot;p&amp;quot;&lt;br /&gt;
        have &amp;quot;¬p&amp;quot; using assms by (rule conjunct1)&lt;br /&gt;
        then show False using `p` by (rule notE)&lt;br /&gt;
      next&lt;br /&gt;
        assume &amp;quot;q&amp;quot;&lt;br /&gt;
        have &amp;quot;¬q&amp;quot; using assms by (rule conjunct2)&lt;br /&gt;
        then show False using `q` by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_47c:&lt;br /&gt;
  assumes &amp;quot;¬p ∧ ¬q&amp;quot; &lt;br /&gt;
  shows   &amp;quot;¬(p ∨ q)&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej47: &amp;quot;¬p ∧ ¬q ⟹ ¬(p ∨ q)&amp;quot;&lt;br /&gt;
  apply (rule notI)&lt;br /&gt;
  apply (erule conjE)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule notE, assumption)+&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 48. Demostrar&lt;br /&gt;
     ¬p ∨ ¬q ⊢ ¬(p ∧ q)&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_48a:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  using assms&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
    show &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
      proof&lt;br /&gt;
        assume &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
        then have &amp;quot;p&amp;quot; by (rule conjunct1)&lt;br /&gt;
        with `¬p` show False by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
    show &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
      proof&lt;br /&gt;
        assume &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
        then have &amp;quot;q&amp;quot; ..&lt;br /&gt;
        with `¬q` show False ..&lt;br /&gt;
      qed&lt;br /&gt;
  qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_48b:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
  show False&lt;br /&gt;
  using assms&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
    have &amp;quot;p&amp;quot; using `p ∧ q` ..&lt;br /&gt;
    with `¬p` show False ..&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
    have &amp;quot;q&amp;quot; using `p ∧ q` ..&lt;br /&gt;
    with `¬q` show False ..&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_48c:&lt;br /&gt;
  assumes &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej48: &amp;quot;¬p ∨ ¬q ⟹ ¬(p ∧ q)&amp;quot;&lt;br /&gt;
  apply (rule notI)&lt;br /&gt;
  apply (erule conjE)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule notE, assumption)+&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 49. Demostrar&lt;br /&gt;
     ⊢ ¬(p ∧ ¬p)&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_49a:&lt;br /&gt;
  &amp;quot;¬(p ∧ ¬p)&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;p ∧ ¬p&amp;quot;&lt;br /&gt;
  then have &amp;quot;p&amp;quot; ..&lt;br /&gt;
  have &amp;quot;¬ p&amp;quot; using `p ∧ ¬p` ..&lt;br /&gt;
  then show False using `p` ..&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_49b:&lt;br /&gt;
  &amp;quot;¬(p ∧ ¬p)&amp;quot;&lt;br /&gt;
  by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej49: &amp;quot;¬(p ∧ ¬p)&amp;quot;&lt;br /&gt;
  apply (rule notI)&lt;br /&gt;
  apply (erule conjE)&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 50. Demostrar&lt;br /&gt;
     p ∧ ¬p ⊢ q&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_50:&lt;br /&gt;
  assumes 1: &amp;quot;p ∧ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
proof-&lt;br /&gt;
  have 2: &amp;quot;p&amp;quot; using 1 by (rule conjunct1)&lt;br /&gt;
  have 3: &amp;quot;¬p&amp;quot; using 1 by (rule conjunct2) &lt;br /&gt;
  have 4: &amp;quot;False&amp;quot; using 3 2 by (rule notE)&lt;br /&gt;
  show &amp;quot;q&amp;quot; using 4 by (rule FalseE)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_50b:&lt;br /&gt;
  assumes &amp;quot;p ∧ ¬p&amp;quot; &lt;br /&gt;
  shows   &amp;quot;q&amp;quot;&lt;br /&gt;
proof (rule notE)&lt;br /&gt;
  show &amp;quot;p&amp;quot; using ‹p ∧ ¬p› by (rule conjunct1)&lt;br /&gt;
  show &amp;quot;¬p&amp;quot; using ‹p ∧ ¬p› by (rule conjunct2)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ej50: &amp;quot;p ∧ ¬p ⟹ q&amp;quot;&lt;br /&gt;
  apply (erule conjE)&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 51. Demostrar&lt;br /&gt;
     ¬¬p ⊢ p&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_51a:&lt;br /&gt;
  assumes &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
  using assms by (rule notnotD)&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_51b:&lt;br /&gt;
  assumes &amp;quot;¬¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej51: &amp;quot;¬¬p ⟹ p&amp;quot;&lt;br /&gt;
  apply (erule notnotD)&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 52. Demostrar&lt;br /&gt;
     ⊢ p ∨ ¬p&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_52a:&lt;br /&gt;
  &amp;quot;p ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬¬p ∨ ¬p&amp;quot; ..&lt;br /&gt;
  then show &amp;quot;p ∨ ¬p&amp;quot; by simp&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_52b:&lt;br /&gt;
  &amp;quot;p ∨ ¬p&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; ..&lt;br /&gt;
  then show &amp;quot;p ∨ ¬p&amp;quot; by (rule ejercicio_27a)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_52c:&lt;br /&gt;
  &amp;quot;p ∨ ¬p&amp;quot;&lt;br /&gt;
  by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej52: &amp;quot;p ∨ ¬p&amp;quot;&lt;br /&gt;
  apply (cut_tac P=&amp;quot;¬p&amp;quot; in excluded_middle)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
  apply (rule disjI1)&lt;br /&gt;
   apply (erule notnotD)&lt;br /&gt;
  apply (erule disjI2)&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 53. Demostrar&lt;br /&gt;
     ⊢ ((p ⟶ q) ⟶ p) ⟶ p&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_53b:&lt;br /&gt;
  &amp;quot;((p ⟶ q) ⟶ p) ⟶ p&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume &amp;quot;(p ⟶ q) ⟶ p&amp;quot;&lt;br /&gt;
  show &amp;quot;p&amp;quot;&lt;br /&gt;
    proof (rule ccontr)&lt;br /&gt;
      assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      have &amp;quot;¬ (p ⟶ q)&amp;quot; using `(p ⟶ q) ⟶ p` `¬p` by (rule mt)&lt;br /&gt;
      have &amp;quot;p ⟶ q&amp;quot; &lt;br /&gt;
      proof (rule impI)&lt;br /&gt;
        assume &amp;quot;p&amp;quot;&lt;br /&gt;
        show &amp;quot;q&amp;quot; using `¬p` `p` by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
      show False using `¬ (p ⟶ q)` `p ⟶ q` ..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_53a:&lt;br /&gt;
  &amp;quot;((p ⟶ q) ⟶ p) ⟶ p&amp;quot;&lt;br /&gt;
proof (rule impI)&lt;br /&gt;
  assume &amp;quot;(p ⟶ q) ⟶ p&amp;quot;&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; by (rule excluded_middle)&lt;br /&gt;
  then show &amp;quot;p&amp;quot;&lt;br /&gt;
  proof (rule disjE)&lt;br /&gt;
    assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      have &amp;quot;¬(p⟶ q)&amp;quot; using `(p ⟶ q) ⟶ p` `¬p` by (rule mt)&lt;br /&gt;
      have &amp;quot;p⟶ q&amp;quot;&lt;br /&gt;
        proof (rule impI)&lt;br /&gt;
          assume &amp;quot;p&amp;quot;&lt;br /&gt;
          show &amp;quot;q&amp;quot; using `¬p``p` by (rule notE)&lt;br /&gt;
        qed&lt;br /&gt;
      show &amp;quot;p&amp;quot; using `¬(p⟶ q)` `p⟶ q` by (rule notE)&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;p&amp;quot;&lt;br /&gt;
     then show &amp;quot;p&amp;quot; .&lt;br /&gt;
 qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_53c:&lt;br /&gt;
  &amp;quot;((p ⟶ q) ⟶ p) ⟶ p&amp;quot;&lt;br /&gt;
by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej53: &amp;quot;((p ⟶ q) ⟶ p) ⟶ p&amp;quot;&lt;br /&gt;
  apply (rule impI)&lt;br /&gt;
  apply (rule ccontr)&lt;br /&gt;
  (*   apply (case_tac &amp;quot;p ⟶ q&amp;quot;) *)&lt;br /&gt;
  apply (cut_tac P=&amp;quot;p ⟶ q&amp;quot; in excluded_middle)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule_tac P=&amp;quot;p ⟶ q&amp;quot; in notE)&lt;br /&gt;
   apply (rule impI)&lt;br /&gt;
   apply (erule notE)&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply (erule impE)&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 54. Demostrar&lt;br /&gt;
     ¬q ⟶ ¬p ⊢ p ⟶ q&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_54:&lt;br /&gt;
  assumes &amp;quot;¬q ⟶ ¬p&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
proof&lt;br /&gt;
  assume &amp;quot;p&amp;quot;&lt;br /&gt;
  then have &amp;quot;¬¬p&amp;quot; by (rule notnotI)&lt;br /&gt;
  with assms have &amp;quot;¬¬q&amp;quot; by (rule mt)&lt;br /&gt;
  then show &amp;quot;q&amp;quot; by (rule notnotD)&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ej54: &amp;quot;¬q ⟶ ¬p ⟹ p ⟶ q&amp;quot;&lt;br /&gt;
  apply (rule impI)&lt;br /&gt;
  apply (rule ccontr)&lt;br /&gt;
  apply (erule impE)&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply (erule notE)+&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 55. Demostrar&lt;br /&gt;
     ¬(¬p ∧ ¬q) ⊢ p ∨ q&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_55a:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; ..&lt;br /&gt;
  then show &amp;quot;p∨q&amp;quot;&lt;br /&gt;
    proof&lt;br /&gt;
      assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
      have &amp;quot;¬q ∨ q&amp;quot; ..&lt;br /&gt;
      then show &amp;quot;p∨q&amp;quot;&lt;br /&gt;
      proof&lt;br /&gt;
        assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
        with `¬p` have &amp;quot;¬p ∧ ¬q&amp;quot; by (rule conjI)&lt;br /&gt;
        with assms show &amp;quot;p∨q&amp;quot; by (rule notE)&lt;br /&gt;
      next&lt;br /&gt;
        assume &amp;quot;q&amp;quot;&lt;br /&gt;
        then show &amp;quot;p ∨ q&amp;quot; ..&lt;br /&gt;
      qed&lt;br /&gt;
    next&lt;br /&gt;
      assume &amp;quot;p&amp;quot;&lt;br /&gt;
      then show &amp;quot;p ∨q&amp;quot; ..&lt;br /&gt;
    qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_55c:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∧ ¬q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;p ∨ q&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej55: &amp;quot;¬(¬p ∧ ¬q) ⟹ p ∨ q&amp;quot;&lt;br /&gt;
  apply (cut_tac P=p in excluded_middle)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
    apply (cut_tac P=q in excluded_middle)&lt;br /&gt;
   apply (erule disjE)&lt;br /&gt;
    apply (erule notE)&lt;br /&gt;
    apply (rule conjI)&lt;br /&gt;
     apply assumption+&lt;br /&gt;
   apply (erule disjI2)&lt;br /&gt;
  apply (erule disjI1)&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 56. Demostrar&lt;br /&gt;
     ¬(¬p ∨ ¬q) ⊢ p ∧ q&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_56a:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∨ ¬q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    show &amp;quot;p&amp;quot;&lt;br /&gt;
    proof -&lt;br /&gt;
      have &amp;quot;¬p ∨ p&amp;quot; ..&lt;br /&gt;
      then show &amp;quot;p&amp;quot;&lt;br /&gt;
      proof&lt;br /&gt;
        assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
        then have &amp;quot;¬p ∨ ¬q&amp;quot; by (rule disjI1)&lt;br /&gt;
        with `¬(¬p ∨ ¬q)` show &amp;quot;p&amp;quot; by (rule notE)&lt;br /&gt;
      next&lt;br /&gt;
        assume &amp;quot;p&amp;quot; then show &amp;quot;p&amp;quot; .&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  next&lt;br /&gt;
    show &amp;quot;q&amp;quot;&lt;br /&gt;
   proof -&lt;br /&gt;
      have &amp;quot;¬q ∨ q&amp;quot; ..&lt;br /&gt;
      then show &amp;quot;q&amp;quot;&lt;br /&gt;
      proof&lt;br /&gt;
        assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
        then have &amp;quot;¬p ∨ ¬q&amp;quot; by (rule disjI2)&lt;br /&gt;
        with `¬(¬p ∨ ¬q)` show &amp;quot;q&amp;quot; by (rule notE)&lt;br /&gt;
      next&lt;br /&gt;
        assume &amp;quot;q&amp;quot; then show &amp;quot;q&amp;quot; .&lt;br /&gt;
      qed&lt;br /&gt;
    qed&lt;br /&gt;
  qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_56c:&lt;br /&gt;
  assumes &amp;quot;¬(¬p ∨ ¬q)&amp;quot; &lt;br /&gt;
  shows   &amp;quot;p ∧ q&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej56: &amp;quot;¬(¬p ∨ ¬q) ⟹ p ∧ q&amp;quot;&lt;br /&gt;
  apply (rule conjI)&lt;br /&gt;
   apply (rule ccontr)&lt;br /&gt;
   apply (erule notE)&lt;br /&gt;
   apply (erule disjI1)&lt;br /&gt;
  apply (rule ccontr)&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
  apply (erule disjI2)&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 57. Demostrar&lt;br /&gt;
     ¬(p ∧ q) ⊢ ¬p ∨ ¬q&lt;br /&gt;
  ------------------------------------------------------------------ ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_57a:&lt;br /&gt;
  assumes &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨p&amp;quot; ..&lt;br /&gt;
  then show &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
    then show &amp;quot;¬p ∨ ¬q&amp;quot; ..&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;p&amp;quot;&lt;br /&gt;
      have &amp;quot;¬q ∨ q&amp;quot; ..&lt;br /&gt;
      then show &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
      proof&lt;br /&gt;
        assume &amp;quot;¬q&amp;quot;&lt;br /&gt;
        then show &amp;quot;¬p ∨ ¬q&amp;quot; ..&lt;br /&gt;
      next&lt;br /&gt;
        assume &amp;quot;q&amp;quot;&lt;br /&gt;
        with `p` have &amp;quot;p∧q&amp;quot; by (rule conjI)&lt;br /&gt;
        with assms show &amp;quot;¬p ∨ ¬q&amp;quot; by (rule notE)&lt;br /&gt;
      qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_57c:&lt;br /&gt;
  assumes &amp;quot;¬(p ∧ q)&amp;quot;&lt;br /&gt;
  shows   &amp;quot;¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  using assms by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej57: &amp;quot;¬(p ∧ q) ⟹ ¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  apply (cut_tac P=p in excluded_middle)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule disjI1)&lt;br /&gt;
  apply (cut_tac P=q in excluded_middle)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (erule disjI2)&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
  apply (rule conjI)&lt;br /&gt;
   apply assumption+&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
lemma ej57_b:&lt;br /&gt;
   &amp;quot;⟦¬(p ∧ q)⟧ ⟹ ¬p ∨ ¬q&amp;quot;&lt;br /&gt;
  apply (rule ccontr)&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
  apply (rule conjI)&lt;br /&gt;
   apply (rule ccontr)&lt;br /&gt;
   apply (erule notE)&lt;br /&gt;
  apply (rule disjI1)&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply (rule ccontr)&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
  apply (rule disjI2)&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
text ‹ --------------------------------------------------------------- &lt;br /&gt;
  Ejercicio 58. Demostrar&lt;br /&gt;
     ⊢ (p ⟶ q) ∨ (q ⟶ p)&lt;br /&gt;
  ------------------------------------------------------------------&lt;br /&gt;
  ›&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_58a:&lt;br /&gt;
  &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; by (rule excluded_middle)&lt;br /&gt;
  then show &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
  proof &lt;br /&gt;
    assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
    show &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
      proof (rule disjI1)&lt;br /&gt;
        show &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          proof&lt;br /&gt;
            assume &amp;quot;p&amp;quot;&lt;br /&gt;
            with `¬ p` show &amp;quot;q&amp;quot; by (rule notE)&lt;br /&gt;
          qed&lt;br /&gt;
      qed&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;p&amp;quot;&lt;br /&gt;
    show &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
      proof (rule disjI2)&lt;br /&gt;
        show &amp;quot;q ⟶ p&amp;quot;&lt;br /&gt;
        proof (rule impI)&lt;br /&gt;
          assume &amp;quot;q&amp;quot;&lt;br /&gt;
          show &amp;quot;p&amp;quot; using `p` .&lt;br /&gt;
        qed&lt;br /&gt;
      qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_58b:&lt;br /&gt;
  &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
proof -&lt;br /&gt;
  have &amp;quot;¬p ∨ p&amp;quot; .. (* by (rule excluded_middle) *)&lt;br /&gt;
  then show &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
  proof&lt;br /&gt;
    assume &amp;quot;¬p&amp;quot;&lt;br /&gt;
    show &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
      proof (rule disjI1)&lt;br /&gt;
        show &amp;quot;p ⟶ q&amp;quot;&lt;br /&gt;
          proof&lt;br /&gt;
            assume &amp;quot;p&amp;quot;&lt;br /&gt;
            with `¬ p` show &amp;quot;q&amp;quot; .. (* by (rule notE) *)&lt;br /&gt;
          qed&lt;br /&gt;
      qed&lt;br /&gt;
  next&lt;br /&gt;
    assume &amp;quot;p&amp;quot;&lt;br /&gt;
    show &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
      proof (rule disjI2)&lt;br /&gt;
        show &amp;quot;q ⟶ p&amp;quot;&lt;br /&gt;
        proof (* (rule impI) *)&lt;br /&gt;
          assume &amp;quot;q&amp;quot;&lt;br /&gt;
          show &amp;quot;p&amp;quot; using `p` .&lt;br /&gt;
        qed&lt;br /&gt;
      qed&lt;br /&gt;
  qed&lt;br /&gt;
qed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
lemma ejercicio_58c:&lt;br /&gt;
  &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
  by auto&lt;br /&gt;
&lt;br /&gt;
lemma ej58: &amp;quot;(p ⟶ q) ∨ (q ⟶ p)&amp;quot;&lt;br /&gt;
  apply (cut_tac P=p in excluded_middle)&lt;br /&gt;
  apply (erule disjE)&lt;br /&gt;
   apply (rule disjI1)&lt;br /&gt;
  apply (rule impI)&lt;br /&gt;
  apply (erule notE)&lt;br /&gt;
   apply assumption&lt;br /&gt;
  apply (rule disjI2)&lt;br /&gt;
  apply (rule impI)&lt;br /&gt;
  apply assumption&lt;br /&gt;
  done&lt;br /&gt;
&lt;br /&gt;
end&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>