Acciones

Diferencia entre revisiones de «R7»

De Lógica matemática y fundamentos (2018-19)

 
 
(No se muestra una edición intermedia del mismo usuario)
Línea 1: Línea 1:
 
<source lang = "isabelle">
 
<source lang = "isabelle">
chapter {* R4: Deducción natural proposicional con tácticas *}
 
 
 
theory R7
 
theory R7
 
imports Main  
 
imports Main  
Línea 8: Línea 6:
 
text {*
 
text {*
 
   ---------------------------------------------------------------------  
 
   ---------------------------------------------------------------------  
  El objetivo de esta relación es escribir demostraciones usando sólo
+
  El objetivo de esta relación es escribir demostraciones usando sólo
 
   las reglas básicas de deducción natural de la lógica proposicional y
 
   las reglas básicas de deducción natural de la lógica proposicional y
 
   los métodos rule, erule, frule, drule y assumption.
 
   los métodos rule, erule, frule, drule y assumption.
 
  
 
   Las reglas básicas de la deducción natural son las siguientes:
 
   Las reglas básicas de la deducción natural son las siguientes:
   · conjI:     ⟦P; Q⟧ ⟹ P ∧ Q
+
   · conjI:         ⟦P; Q⟧ ⟹ P ∧ Q
   · conjunct1: P ∧ Q ⟹ P
+
   · conjunct1:     P ∧ Q ⟹ P
   · conjunct2: P ∧ Q ⟹ Q
+
   · conjunct2:     P ∧ Q ⟹ Q
   · notnotD:   ¬¬ P P
+
   · conjE:          ⟦P ∧ Q; ⟦P; Q⟧ ⟹ R⟧ ⟹ R
   · notnotI:   P ⟹ ¬¬ P
+
  · notE:           ⟦¬P; P⟧ R
   · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q  
+
   · notI:           (P ⟹ False) ⟹ ¬P
   · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F  
+
   · mp:             ⟦P ⟶ Q; P⟧ ⟹ Q  
   · impI:       (P ⟹ Q) ⟹ P ⟶ Q
+
   · mt:             ⟦F ⟶ G; ¬G⟧ ⟹ ¬F  
   · disjI1:     P ⟹ P ∨ Q
+
   · impI:           (P ⟹ Q) ⟹ P ⟶ Q
   · disjI2:     Q ⟹ P ∨ Q
+
  · impE:          ⟦P ⟶ Q; P; Q ⟹ R⟧ ⟹ R
   · disjE:     ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R  
+
   · disjI1:         P ⟹ P ∨ Q
   · FalseE:     False ⟹ P
+
   · disjI2:         Q ⟹ P ∨ Q
  · notE:      ⟦¬P; P⟧ ⟹ R
+
   · disjE:         ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R  
  · notI:      (P ⟹ False) ⟹ ¬P
+
   · FalseE:         False ⟹ P
   · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q
+
   · iffI:           ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q
   · iffD1:     ⟦Q = P; Q⟧ ⟹ P  
+
   · iffD1:         ⟦Q = P; Q⟧ ⟹ P  
   · iffD2:     ⟦P = Q; Q⟧ ⟹ P
+
   · iffD2:         ⟦P = Q; Q⟧ ⟹ P
   · ccontr:     (¬P ⟹ False) ⟹ P
+
  · iffE:          ⟦P = Q; ⟦P ⟶ Q; Q ⟶ P⟧ ⟹ R⟧ ⟹ R
 +
  · notnotD:        ¬¬ P ⟹ P
 +
  · not_not:        P = ¬¬P
 +
   · ccontr:         (¬P ⟹ False) ⟹ P
 +
  · excluded_midle: ¬P ∨ P
 +
  · classical:      (¬ P ⟹ P) ⟹ P
 +
  · contrapos_nn    ⟦¬Q; P ⟹ Q⟧ ⟹ ¬P
 
   ---------------------------------------------------------------------  
 
   ---------------------------------------------------------------------  
 
*}
 
*}
 
text {*
 
  Se usarán las reglas notnotI y mt que demostramos a continuación. *}
 
 
lemma notnotI: "P ⟹ ¬¬ P"
 
by auto
 
 
lemma mt: "⟦F ⟶ G; ¬G⟧ ⟹ ¬F"
 
by auto
 
  
 
section {* Implicaciones *}
 
section {* Implicaciones *}
Línea 51: Línea 45:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_1:
+
lemma ej1: "⟦p ⟶ q; p⟧ ⟹ q"  
  assumes "p ⟶ q"
 
          "p"
 
  shows "q"
 
 
oops
 
oops
  
Línea 62: Línea 53:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_2:
+
lemma ej2: "⟦p ⟶ q; q ⟶ r; p⟧ ⟹ r"
  assumes "p ⟶ q"
+
   oops
          "q ⟶ r"
 
          "p"  
 
   shows "r"
 
oops
 
  
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
Línea 74: Línea 61:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_3:
+
lemma ej3a: "⟦p ⟶ (q ⟶ r); p ⟶ q; p⟧ ⟹ r"
  assumes "p ⟶ (q ⟶ r)"
+
  oops
          "p ⟶ q"
+
 
          "p"
+
lemma ej3b: "⟦p ⟶ (q ⟶ r); p ⟶ q; p⟧ ⟹ r"
  shows "r"
 
 
oops
 
oops
  
Línea 86: Línea 72:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_4:
+
-- "La demostración detallada es"
  assumes "p ⟶ q"
+
lemma ej4: "⟦p ⟶ q; q ⟶ r⟧ ⟹ p ⟶ r"
          "q ⟶ r"
+
  oops
  shows "p ⟶ r"
 
oops
 
  
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
Línea 97: Línea 81:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_5:
+
lemma ej5: "p ⟶ (q ⟶ r) q ⟶ (p ⟶ r)"
  assumes "p ⟶ (q ⟶ r)"
 
  shows  "q ⟶ (p ⟶ r)"
 
 
oops
 
oops
 
+
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 6. Demostrar
 
   Ejercicio 6. Demostrar
Línea 107: Línea 89:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_6:
+
lemma ej6: "p ⟶ (q ⟶ r) (p ⟶ q) ⟶ (p ⟶ r)"
  assumes "p ⟶ (q ⟶ r)"
+
  oops
  shows  "(p ⟶ q) ⟶ (p ⟶ r)"
 
oops
 
  
 +
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 7. Demostrar
 
   Ejercicio 7. Demostrar
Línea 117: Línea 98:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_7:
+
lemma ej7: "p q ⟶ p"
  assumes "p
+
  oops
  shows  "q ⟶ p"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 8. Demostrar
 
   Ejercicio 8. Demostrar
Línea 127: Línea 106:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_8:
+
lemma ej8: "p ⟶ (q ⟶ p)"
  "p ⟶ (q ⟶ p)"
+
  oops
oops
+
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 9. Demostrar
 
   Ejercicio 9. Demostrar
Línea 136: Línea 114:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_9:
+
lemma ej9: "p ⟶ q (q ⟶ r) ⟶ (p ⟶ r)"
  assumes "p ⟶ q"
+
  oops
  shows  "(q ⟶ r) ⟶ (p ⟶ r)"
 
oops
 
  
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
Línea 146: Línea 122:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_10:
+
lemma ej10: "p ⟶ (q ⟶ (r ⟶ s)) r ⟶ (q ⟶ (p ⟶ s))"
  assumes "p ⟶ (q ⟶ (r ⟶ s))"
+
  oops
  shows  "r ⟶ (q ⟶ (p ⟶ s))"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 11. Demostrar
 
   Ejercicio 11. Demostrar
Línea 156: Línea 130:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_11:
+
lemma ej11: "(p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))"
  "(p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))"
+
  oops
oops
+
   
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 12. Demostrar
 
   Ejercicio 12. Demostrar
Línea 165: Línea 138:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_12:
+
lemma ej12: "(p ⟶ q) ⟶ r p ⟶ (q ⟶ r)"
  assumes "(p ⟶ q) ⟶ r"
+
  oops
  shows  "p ⟶ (q ⟶ r)"
+
 
oops
 
 
 
 
section {* Conjunciones *}
 
section {* Conjunciones *}
  
Línea 177: Línea 148:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_13:
+
lemma ej13: "⟦p; q⟧ ⟹ p q"
  assumes "p"
+
   oops
          "q"  
+
   
   shows "p ∧ q"
 
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 14. Demostrar
 
   Ejercicio 14. Demostrar
Línea 188: Línea 156:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_14:
+
lemma ej14: "p ∧ q ⟹ p"
  assumes "p ∧ q"
+
   oops
   shows  "p"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 15. Demostrar
 
   Ejercicio 15. Demostrar
Línea 198: Línea 164:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_15:
+
lemma ej15: "p ∧ q ⟹ q"
  assumes "p ∧ q"  
+
   oops
   shows  "q"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 16. Demostrar
 
   Ejercicio 16. Demostrar
Línea 208: Línea 172:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_16:
+
lemma ej16: "p ∧ (q ∧ r) (p ∧ q) ∧ r"
  assumes "p ∧ (q ∧ r)"
+
  oops
  shows  "(p ∧ q) ∧ r"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 17. Demostrar
 
   Ejercicio 17. Demostrar
Línea 218: Línea 180:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_17:
+
lemma ej17: "(p ∧ q) ∧ r p ∧ (q ∧ r)"
  assumes "(p ∧ q) ∧ r"
+
  oops
  shows  "p ∧ (q ∧ r)"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 18. Demostrar
 
   Ejercicio 18. Demostrar
Línea 228: Línea 188:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_18:
+
lemma ej18: "p ∧ q p ⟶ q"
  assumes "p ∧ q"
+
  oops
  shows  "p ⟶ q"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 19. Demostrar
 
   Ejercicio 19. Demostrar
Línea 238: Línea 196:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_19:
+
lemma ej19: "(p ⟶ q) ∧ (p ⟶ r) p ⟶ q ∧ r"
  assumes "(p ⟶ q) ∧ (p ⟶ r)"
+
  oops
  shows  "p ⟶ q ∧ r"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 20. Demostrar
 
   Ejercicio 20. Demostrar
Línea 248: Línea 204:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_20:
+
lemma ej20: "p ⟶ q ∧ r (p ⟶ q) ∧ (p ⟶ r)"
  assumes "p ⟶ q ∧ r"
+
  oops
  shows  "(p ⟶ q) ∧ (p ⟶ r)"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 21. Demostrar
 
   Ejercicio 21. Demostrar
Línea 258: Línea 212:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_21:
+
lemma ej21_1: "p ⟶ (q ⟶ r) p ∧ q ⟶ r"
  assumes "p ⟶ (q ⟶ r)"
+
  oops
  shows  "p ∧ q ⟶ r"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 22. Demostrar
 
   Ejercicio 22. Demostrar
Línea 268: Línea 220:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_22:
+
lemma ej22: "p ∧ q ⟶ r p ⟶ (q ⟶ r)"
  assumes "p ∧ q ⟶ r"
+
  oops
  shows  "p ⟶ (q ⟶ r)"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 23. Demostrar
 
   Ejercicio 23. Demostrar
Línea 278: Línea 228:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_23:
+
lemma ej23: "(p ⟶ q) ⟶ r p ∧ q ⟶ r"
  assumes "(p ⟶ q) ⟶ r"
+
  oops
  shows  "p ∧ q ⟶ r"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 24. Demostrar
 
   Ejercicio 24. Demostrar
Línea 288: Línea 236:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_24:
+
lemma ej24: "p ∧ (q ⟶ r) (p ⟶ q) ⟶ r"
  assumes "p ∧ (q ⟶ r)"
+
  oops
  shows  "(p ⟶ q) ⟶ r"
+
   
oops
 
 
 
 
section {* Disyunciones *}
 
section {* Disyunciones *}
  
Línea 300: Línea 246:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_25:
+
lemma ej25: "p p ∨ q"
  assumes "p"
+
  oops
  shows  "p ∨ q"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 26. Demostrar
 
   Ejercicio 26. Demostrar
Línea 310: Línea 254:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_26:
+
lemma ej26: "q p ∨ q"
  assumes "q"
+
  oops
  shows  "p ∨ q"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 27. Demostrar
 
   Ejercicio 27. Demostrar
Línea 320: Línea 262:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_27:
+
lemma ej27: "p ∨ q q ∨ p"
  assumes "p ∨ q"
+
  oops
  shows  "q ∨ p"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 28. Demostrar
 
   Ejercicio 28. Demostrar
Línea 330: Línea 270:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_28:
+
lemma ej28: "q ⟶ r p ∨ q ⟶ p ∨ r"
  assumes "q ⟶ r"
+
  oops
  shows  "p ∨ q ⟶ p ∨ r"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 29. Demostrar
 
   Ejercicio 29. Demostrar
Línea 340: Línea 278:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_29:
+
lemma ej29: "p ∨ p ⟹ p"
  assumes "p ∨ p"
+
   oops
   shows  "p"
 
oops
 
  
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
Línea 350: Línea 286:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_30:
+
lemma ej30: "p p ∨ p"
  assumes "p"
+
  oops
  shows  "p ∨ p"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 31. Demostrar
 
   Ejercicio 31. Demostrar
Línea 360: Línea 294:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_31:
+
lemma ej31: "p ∨ (q ∨ r) (p ∨ q) ∨ r"
  assumes "p ∨ (q ∨ r)"
+
  oops
  shows  "(p ∨ q) ∨ r"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 32. Demostrar
 
   Ejercicio 32. Demostrar
Línea 370: Línea 302:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_32:
+
lemma ej32: "(p ∨ q) ∨ r p ∨ (q ∨ r)"
  assumes "(p ∨ q) ∨ r"
+
  oops
  shows  "p ∨ (q ∨ r)"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 33. Demostrar
 
   Ejercicio 33. Demostrar
Línea 380: Línea 310:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_33:
+
lemma ej33: "p ∧ (q ∨ r) (p ∧ q) ∨ (p ∧ r)"
  assumes "p ∧ (q ∨ r)"
+
  oops
  shows  "(p ∧ q) ∨ (p ∧ r)"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 34. Demostrar
 
   Ejercicio 34. Demostrar
Línea 390: Línea 318:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_34:
+
lemma ej34: "(p ∧ q) ∨ (p ∧ r) p ∧ (q ∨ r)"
  assumes "(p ∧ q) ∨ (p ∧ r)"
+
  oops
  shows  "p ∧ (q ∨ r)"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 35. Demostrar
 
   Ejercicio 35. Demostrar
Línea 400: Línea 326:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_35:
+
lemma ej35: "p ∨ (q ∧ r) (p ∨ q) ∧ (p ∨ r)"
  assumes "p ∨ (q ∧ r)"
+
  oops
  shows  "(p ∨ q) ∧ (p ∨ r)"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 36. Demostrar
 
   Ejercicio 36. Demostrar
Línea 410: Línea 334:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_36:
+
lemma ej36: "(p ∨ q) ∧ (p ∨ r) p ∨ (q ∧ r)"
  assumes "(p ∨ q) ∧ (p ∨ r)"
+
  oops
  shows  "p ∨ (q ∧ r)"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 37. Demostrar
 
   Ejercicio 37. Demostrar
Línea 420: Línea 342:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_37:
+
lemma ej37: "(p ⟶ r) ∧ (q ⟶ r) p ∨ q ⟶ r"
  assumes "(p ⟶ r) ∧ (q ⟶ r)"
+
  oops
  shows  "p ∨ q ⟶ r"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 38. Demostrar
 
   Ejercicio 38. Demostrar
Línea 430: Línea 350:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_38:
+
lemma ej38: "p ∨ q ⟶ r (p ⟶ r) ∧ (q ⟶ r)"
  assumes "p ∨ q ⟶ r"
+
  oops
  shows  "(p ⟶ r) ∧ (q ⟶ r)"
+
   
oops
+
section {* Negación *}
 
 
section {* Negaciones *}
 
  
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
Línea 442: Línea 360:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_39:
+
lemma ej39: "p ⟹ ¬¬p"
  assumes "p"
+
   oops
   shows  "¬¬p"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 40. Demostrar
 
   Ejercicio 40. Demostrar
Línea 452: Línea 368:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_40:
+
lemma ej40: "¬p p ⟶ q"
  assumes "¬p"
+
  oops
  shows  "p ⟶ q"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 41. Demostrar
 
   Ejercicio 41. Demostrar
Línea 462: Línea 376:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_41:
+
lemma ej41: "p ⟶ q ¬q ⟶ ¬p"
  assumes "p ⟶ q"
+
  oops
  shows  "¬q ⟶ ¬p"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 42. Demostrar
 
   Ejercicio 42. Demostrar
     p∨q, ¬q ⊢ p
+
     p ∨ q, ¬q ⊢ p
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_42:
+
lemma ej42: "⟦p ∨ q; ¬q⟧ ⟹ p"
  assumes "p∨q"
+
   oops
          "¬q"  
+
   
   shows  "p"
 
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
   Ejercicio 42. Demostrar
+
   Ejercicio 43. Demostrar
 
     p ∨ q, ¬p ⊢ q
 
     p ∨ q, ¬p ⊢ q
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_43:
+
lemma ej43: "⟦p ∨ q; ¬p⟧ ⟹ q"
  assumes "p ∨ q"
+
   oops
          "¬p"  
+
   
   shows  "q"
 
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
   Ejercicio 40. Demostrar
+
   Ejercicio 44. Demostrar
 
     p ∨ q ⊢ ¬(¬p ∧ ¬q)
 
     p ∨ q ⊢ ¬(¬p ∧ ¬q)
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_44:
+
lemma ej44: "p ∨ q ¬(¬p ∧ ¬q)"
  assumes "p ∨ q"
+
  oops
  shows  "¬(¬p ∧ ¬q)"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 45. Demostrar
 
   Ejercicio 45. Demostrar
Línea 504: Línea 408:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_45:
+
lemma ej45: "p ∧ q ¬(¬p ∨ ¬q)"
  assumes "p ∧ q"
+
  oops
  shows  "¬(¬p ∨ ¬q)"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 46. Demostrar
 
   Ejercicio 46. Demostrar
Línea 514: Línea 416:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_46:
+
lemma ej46: "¬(p ∨ q) ¬p ∧ ¬q"
  assumes "¬(p ∨ q)"
+
  oops
  shows  "¬p ∧ ¬q"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 47. Demostrar
 
   Ejercicio 47. Demostrar
Línea 524: Línea 424:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_47:
+
lemma ej47: "¬p ∧ ¬q ¬(p ∨ q)"
  assumes "¬p ∧ ¬q"
+
  oops
  shows  "¬(p ∨ q)"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 48. Demostrar
 
   Ejercicio 48. Demostrar
Línea 534: Línea 432:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_48:
+
lemma ej48: "¬p ∨ ¬q ¬(p ∧ q)"
  assumes "¬p ∨ ¬q"
+
  oops
  shows  "¬(p ∧ q)"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 49. Demostrar
 
   Ejercicio 49. Demostrar
Línea 544: Línea 440:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_49:
+
lemma ej49: "¬(p ∧ ¬p)"
  "¬(p ∧ ¬p)"
+
  oops
oops
+
   
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 50. Demostrar
 
   Ejercicio 50. Demostrar
Línea 553: Línea 448:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_50:
+
lemma ej50: "p ∧ ¬p ⟹ q"
  assumes "p ∧ ¬p"  
+
   oops
   shows  "q"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 51. Demostrar
 
   Ejercicio 51. Demostrar
Línea 563: Línea 456:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_51:
+
lemma ej51: "¬¬p ⟹ p"
  assumes "¬¬p"
+
   oops
   shows  "p"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 52. Demostrar
 
   Ejercicio 52. Demostrar
Línea 573: Línea 464:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_52:
+
lemma ej52: "p ∨ ¬p"
  "p ∨ ¬p"
+
  oops
oops
+
   
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 53. Demostrar
 
   Ejercicio 53. Demostrar
Línea 582: Línea 472:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_53:
+
lemma ej53: "((p ⟶ q) ⟶ p) ⟶ p"
  "((p ⟶ q) ⟶ p) ⟶ p"
+
  oops
oops
+
   
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 54. Demostrar
 
   Ejercicio 54. Demostrar
Línea 591: Línea 480:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_54:
+
lemma ej54: "¬q ⟶ ¬p p ⟶ q"
  assumes "¬q ⟶ ¬p"
+
  oops
  shows  "p ⟶ q"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 55. Demostrar
 
   Ejercicio 55. Demostrar
Línea 601: Línea 488:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_55:
+
lemma ej55: "¬(¬p ∧ ¬q) p ∨ q"
  assumes "¬(¬p ∧ ¬q)"
+
  oops
  shows  "p ∨ q"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 56. Demostrar
 
   Ejercicio 56. Demostrar
Línea 611: Línea 496:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_56:
+
lemma ej56: "¬(¬p ∨ ¬q) p ∧ q"
  assumes "¬(¬p ∨ ¬q)"
+
  oops
  shows  "p ∧ q"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 57. Demostrar
 
   Ejercicio 57. Demostrar
Línea 621: Línea 504:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_57:
+
lemma ej57: "¬(p ∧ q) ¬p ∨ ¬q"
  assumes "¬(p ∧ q)"
+
  oops
  shows  "¬p ∨ ¬q"
+
   
oops
 
 
 
 
text {* ---------------------------------------------------------------  
 
text {* ---------------------------------------------------------------  
 
   Ejercicio 58. Demostrar
 
   Ejercicio 58. Demostrar
Línea 631: Línea 512:
 
   ------------------------------------------------------------------ *}
 
   ------------------------------------------------------------------ *}
  
lemma ejercicio_58:
+
lemma ej58: "(p ⟶ q) ∨ (q ⟶ p)"
  "(p ⟶ q) ∨ (q ⟶ p)"
+
  oops
oops
 
  
 
end
 
end
 +
  
 
</source>
 
</source>

Revisión actual del 14:29 28 mar 2019

theory R7
imports Main 
begin

text {*
  --------------------------------------------------------------------- 
  El objetivo de esta relación es escribir demostraciones usando sólo
  las reglas básicas de deducción natural de la lógica proposicional y
  los métodos rule, erule, frule, drule y assumption.

  Las reglas básicas de la deducción natural son las siguientes:
  · conjI:          ⟦P; Q⟧ ⟹ P ∧ Q
  · conjunct1:      P ∧ Q ⟹ P
  · conjunct2:      P ∧ Q ⟹ Q
  · conjE:          ⟦P ∧ Q; ⟦P; Q⟧ ⟹ R⟧ ⟹ R
  · notE:           ⟦¬P; P⟧ ⟹ R
  · notI:           (P ⟹ False) ⟹ ¬P
  · mp:             ⟦P ⟶ Q; P⟧ ⟹ Q 
  · mt:             ⟦F ⟶ G; ¬G⟧ ⟹ ¬F 
  · impI:           (P ⟹ Q) ⟹ P ⟶ Q
  · impE:           ⟦P ⟶ Q; P; Q ⟹ R⟧ ⟹ R
  · disjI1:         P ⟹ P ∨ Q
  · disjI2:         Q ⟹ P ∨ Q
  · disjE:          ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R 
  · FalseE:         False ⟹ P
  · iffI:           ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q
  · iffD1:          ⟦Q = P; Q⟧ ⟹ P 
  · iffD2:          ⟦P = Q; Q⟧ ⟹ P
  · iffE:           ⟦P = Q; ⟦P ⟶ Q; Q ⟶ P⟧ ⟹ R⟧ ⟹ R
  · notnotD:        ¬¬ P ⟹ P
  · not_not:        P = ¬¬P
  · ccontr:         (¬P ⟹ False) ⟹ P
  · excluded_midle: ¬P ∨ P
  · classical:      (¬ P ⟹ P) ⟹ P
  · contrapos_nn    ⟦¬Q; P ⟹ Q⟧ ⟹ ¬P
  --------------------------------------------------------------------- 
*}

section {* Implicaciones *}

text {* --------------------------------------------------------------- 
  Ejercicio 1. Demostrar
       p ⟶ q, p ⊢ q
  ------------------------------------------------------------------ *}

lemma ej1: "⟦p ⟶ q; p⟧ ⟹ q" 
oops

text {* --------------------------------------------------------------- 
  Ejercicio 2. Demostrar
     p ⟶ q, q ⟶ r, p ⊢ r
  ------------------------------------------------------------------ *}

lemma ej2: "⟦p ⟶ q; q ⟶ r; p⟧ ⟹ r"
  oops

text {* --------------------------------------------------------------- 
  Ejercicio 3. Demostrar
     p ⟶ (q ⟶ r), p ⟶ q, p ⊢ r
  ------------------------------------------------------------------ *}

lemma ej3a: "⟦p ⟶ (q ⟶ r); p ⟶ q; p⟧ ⟹ r"
  oops

lemma ej3b: "⟦p ⟶ (q ⟶ r); p ⟶ q; p⟧ ⟹ r"
oops

text {* --------------------------------------------------------------- 
  Ejercicio 4. Demostrar
     p ⟶ q, q ⟶ r ⊢ p ⟶ r
  ------------------------------------------------------------------ *}

-- "La demostración detallada es"
lemma ej4: "⟦p ⟶ q; q ⟶ r⟧ ⟹ p ⟶ r"
  oops

text {* --------------------------------------------------------------- 
  Ejercicio 5. Demostrar
     p ⟶ (q ⟶ r) ⊢ q ⟶ (p ⟶ r)
  ------------------------------------------------------------------ *}

lemma ej5: "p ⟶ (q ⟶ r) ⟹ q ⟶ (p ⟶ r)"
oops
  
text {* --------------------------------------------------------------- 
  Ejercicio 6. Demostrar
     p ⟶ (q ⟶ r) ⊢ (p ⟶ q) ⟶ (p ⟶ r)
  ------------------------------------------------------------------ *}

lemma ej6: "p ⟶ (q ⟶ r) ⟹ (p ⟶ q) ⟶ (p ⟶ r)"
  oops

  
text {* --------------------------------------------------------------- 
  Ejercicio 7. Demostrar
     p ⊢ q ⟶ p
  ------------------------------------------------------------------ *}

lemma ej7: "p ⟹ q ⟶ p"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 8. Demostrar
     ⊢ p ⟶ (q ⟶ p)
  ------------------------------------------------------------------ *}

lemma ej8: "p ⟶ (q ⟶ p)"
  oops
  
text {* --------------------------------------------------------------- 
  Ejercicio 9. Demostrar
     p ⟶ q ⊢ (q ⟶ r) ⟶ (p ⟶ r)
  ------------------------------------------------------------------ *}

lemma ej9: "p ⟶ q ⟹ (q ⟶ r) ⟶ (p ⟶ r)"
  oops

text {* --------------------------------------------------------------- 
  Ejercicio 10. Demostrar
     p ⟶ (q ⟶ (r ⟶ s)) ⊢ r ⟶ (q ⟶ (p ⟶ s))
  ------------------------------------------------------------------ *}

lemma ej10: "p ⟶ (q ⟶ (r ⟶ s)) ⟹ r ⟶ (q ⟶ (p ⟶ s))"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 11. Demostrar
     ⊢ (p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))
  ------------------------------------------------------------------ *}

lemma ej11: "(p ⟶ (q ⟶ r)) ⟶ ((p ⟶ q) ⟶ (p ⟶ r))"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 12. Demostrar
     (p ⟶ q) ⟶ r ⊢ p ⟶ (q ⟶ r)
  ------------------------------------------------------------------ *}

lemma ej12: "(p ⟶ q) ⟶ r ⟹ p ⟶ (q ⟶ r)"
  oops
  
section {* Conjunciones *}

text {* --------------------------------------------------------------- 
  Ejercicio 13. Demostrar
     p, q ⊢  p ∧ q
  ------------------------------------------------------------------ *}

lemma ej13: "⟦p; q⟧ ⟹ p ∧ q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 14. Demostrar
     p ∧ q ⊢ p
  ------------------------------------------------------------------ *}

lemma ej14: "p ∧ q ⟹ p"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 15. Demostrar
     p ∧ q ⊢ q
  ------------------------------------------------------------------ *}

lemma ej15: "p ∧ q ⟹ q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 16. Demostrar
     p ∧ (q ∧ r) ⊢ (p ∧ q) ∧ r
  ------------------------------------------------------------------ *}

lemma ej16: "p ∧ (q ∧ r) ⟹ (p ∧ q) ∧ r"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 17. Demostrar
     (p ∧ q) ∧ r ⊢ p ∧ (q ∧ r)
  ------------------------------------------------------------------ *}

lemma ej17: "(p ∧ q) ∧ r ⟹ p ∧ (q ∧ r)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 18. Demostrar
     p ∧ q ⊢ p ⟶ q
  ------------------------------------------------------------------ *}

lemma ej18: "p ∧ q ⟹ p ⟶ q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 19. Demostrar
     (p ⟶ q) ∧ (p ⟶ r) ⊢ p ⟶ q ∧ r   
  ------------------------------------------------------------------ *}

lemma ej19: "(p ⟶ q) ∧ (p ⟶ r) ⟹ p ⟶ q ∧ r"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 20. Demostrar
     p ⟶ q ∧ r ⊢ (p ⟶ q) ∧ (p ⟶ r)
  ------------------------------------------------------------------ *}

lemma ej20: "p ⟶ q ∧ r ⟹ (p ⟶ q) ∧ (p ⟶ r)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 21. Demostrar
     p ⟶ (q ⟶ r) ⊢ p ∧ q ⟶ r
  ------------------------------------------------------------------ *}

lemma ej21_1: "p ⟶ (q ⟶ r) ⟹ p ∧ q ⟶ r"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 22. Demostrar
     p ∧ q ⟶ r ⊢ p ⟶ (q ⟶ r)
  ------------------------------------------------------------------ *}

lemma ej22: "p ∧ q ⟶ r ⟹ p ⟶ (q ⟶ r)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 23. Demostrar
     (p ⟶ q) ⟶ r ⊢ p ∧ q ⟶ r
  ------------------------------------------------------------------ *}

lemma ej23: "(p ⟶ q) ⟶ r ⟹ p ∧ q ⟶ r"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 24. Demostrar
     p ∧ (q ⟶ r) ⊢ (p ⟶ q) ⟶ r
  ------------------------------------------------------------------ *}

lemma ej24: "p ∧ (q ⟶ r) ⟹ (p ⟶ q) ⟶ r"
  oops
    
section {* Disyunciones *}

text {* --------------------------------------------------------------- 
  Ejercicio 25. Demostrar
     p ⊢ p ∨ q
  ------------------------------------------------------------------ *}

lemma ej25: "p ⟹ p ∨ q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 26. Demostrar
     q ⊢ p ∨ q
  ------------------------------------------------------------------ *}

lemma ej26: "q ⟹ p ∨ q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 27. Demostrar
     p ∨ q ⊢ q ∨ p
  ------------------------------------------------------------------ *}

lemma ej27: "p ∨ q ⟹ q ∨ p"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 28. Demostrar
     q ⟶ r ⊢ p ∨ q ⟶ p ∨ r
  ------------------------------------------------------------------ *}

lemma ej28: "q ⟶ r ⟹ p ∨ q ⟶ p ∨ r"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 29. Demostrar
     p ∨ p ⊢ p
  ------------------------------------------------------------------ *}

lemma ej29: "p ∨ p ⟹ p"
  oops

text {* --------------------------------------------------------------- 
  Ejercicio 30. Demostrar
     p ⊢ p ∨ p
  ------------------------------------------------------------------ *}

lemma ej30: "p ⟹ p ∨ p"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 31. Demostrar
     p ∨ (q ∨ r) ⊢ (p ∨ q) ∨ r
  ------------------------------------------------------------------ *}

lemma ej31: "p ∨ (q ∨ r) ⟹ (p ∨ q) ∨ r"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 32. Demostrar
     (p ∨ q) ∨ r ⊢ p ∨ (q ∨ r)
  ------------------------------------------------------------------ *}

lemma ej32: "(p ∨ q) ∨ r ⟹ p ∨ (q ∨ r)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 33. Demostrar
     p ∧ (q ∨ r) ⊢ (p ∧ q) ∨ (p ∧ r)
  ------------------------------------------------------------------ *}

lemma ej33: "p ∧ (q ∨ r) ⟹ (p ∧ q) ∨ (p ∧ r)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 34. Demostrar
     (p ∧ q) ∨ (p ∧ r) ⊢ p ∧ (q ∨ r)
  ------------------------------------------------------------------ *}

lemma ej34: "(p ∧ q) ∨ (p ∧ r) ⟹ p ∧ (q ∨ r)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 35. Demostrar
     p ∨ (q ∧ r) ⊢ (p ∨ q) ∧ (p ∨ r)
  ------------------------------------------------------------------ *}

lemma ej35: "p ∨ (q ∧ r) ⟹ (p ∨ q) ∧ (p ∨ r)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 36. Demostrar
     (p ∨ q) ∧ (p ∨ r) ⊢ p ∨ (q ∧ r)
  ------------------------------------------------------------------ *}

lemma ej36: "(p ∨ q) ∧ (p ∨ r) ⟹ p ∨ (q ∧ r)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 37. Demostrar
     (p ⟶ r) ∧ (q ⟶ r) ⊢ p ∨ q ⟶ r
  ------------------------------------------------------------------ *}

lemma ej37: "(p ⟶ r) ∧ (q ⟶ r) ⟹ p ∨ q ⟶ r"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 38. Demostrar
     p ∨ q ⟶ r ⊢ (p ⟶ r) ∧ (q ⟶ r)
  ------------------------------------------------------------------ *}

lemma ej38: "p ∨ q ⟶ r ⟹ (p ⟶ r) ∧ (q ⟶ r)"
  oops
    
section {* Negación *}

text {* --------------------------------------------------------------- 
  Ejercicio 39. Demostrar
     p ⊢ ¬¬p
  ------------------------------------------------------------------ *}

lemma ej39: "p ⟹ ¬¬p"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 40. Demostrar
     ¬p ⊢ p ⟶ q
  ------------------------------------------------------------------ *}

lemma ej40: "¬p ⟹ p ⟶ q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 41. Demostrar
     p ⟶ q ⊢ ¬q ⟶ ¬p
  ------------------------------------------------------------------ *}

lemma ej41: "p ⟶ q ⟹ ¬q ⟶ ¬p"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 42. Demostrar
     p ∨ q, ¬q ⊢ p
  ------------------------------------------------------------------ *}

lemma ej42: "⟦p ∨ q; ¬q⟧ ⟹ p"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 43. Demostrar
     p ∨ q, ¬p ⊢ q
  ------------------------------------------------------------------ *}

lemma ej43: "⟦p ∨ q; ¬p⟧ ⟹ q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 44. Demostrar
     p ∨ q ⊢ ¬(¬p ∧ ¬q)
  ------------------------------------------------------------------ *}

lemma ej44: "p ∨ q ⟹ ¬(¬p ∧ ¬q)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 45. Demostrar
     p ∧ q ⊢ ¬(¬p ∨ ¬q)
  ------------------------------------------------------------------ *}

lemma ej45: "p ∧ q ⟹ ¬(¬p ∨ ¬q)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 46. Demostrar
     ¬(p ∨ q) ⊢ ¬p ∧ ¬q
  ------------------------------------------------------------------ *}

lemma ej46: "¬(p ∨ q) ⟹ ¬p ∧ ¬q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 47. Demostrar
     ¬p ∧ ¬q ⊢ ¬(p ∨ q)
  ------------------------------------------------------------------ *}

lemma ej47: "¬p ∧ ¬q ⟹ ¬(p ∨ q)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 48. Demostrar
     ¬p ∨ ¬q ⊢ ¬(p ∧ q)
  ------------------------------------------------------------------ *}

lemma ej48: "¬p ∨ ¬q ⟹ ¬(p ∧ q)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 49. Demostrar
     ⊢ ¬(p ∧ ¬p)
  ------------------------------------------------------------------ *}

lemma ej49: "¬(p ∧ ¬p)"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 50. Demostrar
     p ∧ ¬p ⊢ q
  ------------------------------------------------------------------ *}

lemma ej50: "p ∧ ¬p ⟹ q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 51. Demostrar
     ¬¬p ⊢ p
  ------------------------------------------------------------------ *}

lemma ej51: "¬¬p ⟹ p"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 52. Demostrar
     ⊢ p ∨ ¬p
  ------------------------------------------------------------------ *}

lemma ej52: "p ∨ ¬p"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 53. Demostrar
     ⊢ ((p ⟶ q) ⟶ p) ⟶ p
  ------------------------------------------------------------------ *}

lemma ej53: "((p ⟶ q) ⟶ p) ⟶ p"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 54. Demostrar
     ¬q ⟶ ¬p ⊢ p ⟶ q
  ------------------------------------------------------------------ *}

lemma ej54: "¬q ⟶ ¬p ⟹ p ⟶ q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 55. Demostrar
     ¬(¬p ∧ ¬q) ⊢ p ∨ q
  ------------------------------------------------------------------ *}

lemma ej55: "¬(¬p ∧ ¬q) ⟹ p ∨ q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 56. Demostrar
     ¬(¬p ∨ ¬q) ⊢ p ∧ q
  ------------------------------------------------------------------ *}

lemma ej56: "¬(¬p ∨ ¬q) ⟹ p ∧ q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 57. Demostrar
     ¬(p ∧ q) ⊢ ¬p ∨ ¬q
  ------------------------------------------------------------------ *}

lemma ej57: "¬(p ∧ q) ⟹ ¬p ∨ ¬q"
  oops
    
text {* --------------------------------------------------------------- 
  Ejercicio 58. Demostrar
     ⊢ (p ⟶ q) ∨ (q ⟶ p)
  ------------------------------------------------------------------ *}

lemma ej58: "(p ⟶ q) ∨ (q ⟶ p)"
  oops

end