Acciones

Diferencia entre revisiones de «Relación 9»

De Razonamiento automático (2010-11)

Línea 1: Línea 1:
<source lang="isar">
+
<source lang=isar">
 
theory Relacion_9
 
theory Relacion_9
 
imports Main  
 
imports Main  
Línea 42: Línea 42:
 
qed
 
qed
  
lemma ejercicio_1:
+
lemma ejercicio_1b:
 
   assumes 1: "p ⟶ q" and
 
   assumes 1: "p ⟶ q" and
                2: "p"
+
          2: "p"
 
   shows "q"   
 
   shows "q"   
 
proof -
 
proof -
Línea 61: Línea 61:
 
   from 5 show "r" by simp
 
   from 5 show "r" by simp
 
qed
 
qed
 
  
 
lemma ejercicio_3:
 
lemma ejercicio_3:
Línea 83: Línea 82:
 
   from r show "r" by simp
 
   from r show "r" by simp
 
qed
 
qed
 
text {* el 5 no me sale no entiendo como pasar de p a q dandole la vuelta*}
 
  
 
lemma ejercicio_5:
 
lemma ejercicio_5:
   "p⟶(q⟶r) q⟶(p⟶r)"
+
   assumes 1: "p⟶(q⟶r)"
by simp
+
  shows "q⟶(p⟶r)"
 +
oops
  
 
lemma ejercicio_6:
 
lemma ejercicio_6:
   "p⟶(q⟶r) (p⟶q)⟶(p⟶r)"
+
   assumes 1: "p⟶(q⟶r)"
by simp
+
  shows "(p⟶q)⟶(p⟶r)"
 +
oops
  
 
lemma ejercicio_7:
 
lemma ejercicio_7:
   "p q⟶p"
+
   assumes 1: "p"
by simp
+
  shows "q⟶p"
 +
oops
  
 
lemma ejercicio_8:
 
lemma ejercicio_8:
 
   "p⟶(q⟶p)"
 
   "p⟶(q⟶p)"
by simp
+
oops
  
 
lemma ejercicio_9:
 
lemma ejercicio_9:
   "p⟶q (q⟶r)⟶(p⟶r)"
+
   assumes 1: "p⟶q
by simp
+
  shows "(q⟶r)⟶(p⟶r)"
 +
oops
  
 
lemma ejercicio_10:
 
lemma ejercicio_10:
   "p⟶(q⟶(r⟶s)) r⟶(q⟶(p⟶s))"
+
   assumes 1: "p⟶(q⟶(r⟶s))"
by simp
+
  shows "r⟶(q⟶(p⟶s))"
 +
oops
  
 
lemma ejercicio_11:
 
lemma ejercicio_11:
 
   "(p⟶(q⟶r))⟶((p⟶q)⟶(p⟶r))"
 
   "(p⟶(q⟶r))⟶((p⟶q)⟶(p⟶r))"
by simp
+
oops
  
 
lemma ejercicio_12:
 
lemma ejercicio_12:
   "(p⟶q)⟶r p⟶(q⟶r)"
+
   assumes 1: "(p⟶q)⟶r"
by simp
+
  shows "p⟶(q⟶r)"
 +
oops
  
 
lemma ejercicio_13:
 
lemma ejercicio_13:
   "⟦p; q⟧ ⟹ p∧q"
+
   assumes 1: "p" and 
by simp
+
          2: "q"
 
+
   shows "p∧q"
lemma ejercicio_13a:
+
oops
   "⟦p; q⟧ ⟹ p∧q"
 
by (rule conjI)
 
 
 
  
 
lemma ejercicio_14:
 
lemma ejercicio_14:
   "p∧q ⟹ p"
+
   assumes 1: "p∧q"  
by simp
+
   shows "p"
 
+
oops
lemma ejercicio_14a:
 
   "p∧q ⟹ p"
 
by (rule conjunct1)
 
  
 
lemma ejercicio_15:
 
lemma ejercicio_15:
   "p∧q ⟹ q"
+
   assumes 1: "p∧q"  
by simp
+
   shows "q"
 
+
oops
lemma ejercicio_15a:
 
   "p∧q ⟹ q"
 
by (rule conjunct2)
 
 
 
  
 
lemma ejercicio_16:
 
lemma ejercicio_16:
   "p∧(q∧r) ⟹ (p∧q)∧r"
+
   assumes 1: "p∧(q∧r)"
by simp
+
   shows "(p∧q)∧r"
 
+
oops
text {* no entiendo por que no es capaz de resolverlo si ya lo tengo calculado en pyqyr*}
 
 
 
lemma ejercicio_16a:
 
   "p∧(q∧r) ⟹ (p∧q)∧r"
 
proof -
 
assume p:"p"
 
assume q:"q"
 
assume qr:"q∧r"
 
assume pqr:"p∧(q∧r)"
 
 
 
from qr have r:"r" by (rule ejercicio_15a)
 
from pqr have pqr2:"(p∧q)∧r" by simp
 
from pqr2 have pyq:"(p∧q)" by (rule ejercicio_14a)
 
from pyq and r have pyqyr:"(p∧q)∧r" by (rule ejercicio_13a)
 
from pyqyr show "(p∧q)∧r" by simp
 
qed
 
 
 
 
 
  
 
lemma ejercicio_17:
 
lemma ejercicio_17:
   "(p∧q)∧r p∧(q∧r)"
+
   assumes 1: "(p∧q)∧r"
by simp
+
  shows "p∧(q∧r)"
 +
oops
  
 
lemma ejercicio_18:
 
lemma ejercicio_18:
   "p∧q p⟶q"
+
   assumes 1: "p∧q"
by simp
+
  shows "p⟶q"
 +
oops
  
 
lemma ejercicio_19:
 
lemma ejercicio_19:
   "(p⟶q)∧(p⟶r) p⟶q∧r"
+
   assumes 1: "(p⟶q)∧(p⟶r)"
by simp
+
  shows "p⟶q∧r"
 +
oops
  
 
lemma ejercicio_20:
 
lemma ejercicio_20:
   "p⟶q∧r (p⟶q)∧(p⟶r)"
+
   assumes 1: "p⟶q∧r"
by simp
+
  shows "(p⟶q)∧(p⟶r)"
 +
oops
  
 
lemma ejercicio_21:
 
lemma ejercicio_21:
   "p⟶(q⟶r) p∧q⟶r"
+
   assumes 1: "p⟶(q⟶r)"
by simp
+
  shows "p∧q⟶r"
 +
oops
  
 
lemma ejercicio_22:
 
lemma ejercicio_22:
   "p∧q⟶r p⟶(q⟶r)"
+
   assumes 1: "p∧q⟶r
by simp
+
  shows "p⟶(q⟶r)"
 +
oops
  
 
lemma ejercicio_23:
 
lemma ejercicio_23:
   "(p⟶q)⟶r p∧q⟶r"
+
   assumes 1: "(p⟶q)⟶r"
by simp
+
  shows "p∧q⟶r"
 +
oops
  
 
lemma ejercicio_24:
 
lemma ejercicio_24:
   "p∧(q⟶r) (p⟶q)⟶r"
+
   assumes 1: "p∧(q⟶r)
by simp
+
  shows "(p⟶q)⟶r"
 +
oops
  
 
lemma ejercicio_25:
 
lemma ejercicio_25:
   "p p∨q"
+
   assumes 1: "p"
by simp
+
  shows "p∨q"
 +
oops
  
 
lemma ejercicio_26:
 
lemma ejercicio_26:
   "q p∨q"
+
   assumes 1: "q
by simp
+
  shows "p∨q"
 +
oops
  
 
lemma ejercicio_27:
 
lemma ejercicio_27:
   "p∨q q∨p"
+
   assumes 1: "p∨q"
 +
  shows "q∨p"
 
oops
 
oops
  
 
lemma ejercicio_28:
 
lemma ejercicio_28:
   "q⟶r p∨q⟶p∨r"
+
   assumes 1: "q⟶r"
 +
  shows "p∨q⟶p∨r"
 
oops
 
oops
  
 
lemma ejercicio_29:
 
lemma ejercicio_29:
   "p∨p p"
+
   assumes 1: "p∨p"
 +
  shows "p"
 
oops
 
oops
  
 
lemma ejercicio_30:
 
lemma ejercicio_30:
   "p p∨p"
+
   assumes 1: "p"
 +
  shows "p∨p"
 
oops
 
oops
  
 
lemma ejercicio_31:
 
lemma ejercicio_31:
   "p∨(q∨r) (p∨q)∨r"
+
   assumes 1: "p∨(q∨r)"
 +
  shows "(p∨q)∨r"
 
oops
 
oops
  
 
lemma ejercicio_32:
 
lemma ejercicio_32:
   "(p∨q)∨r p∨(q∨r)"
+
   assumes 1: "(p∨q)∨r"
 +
  shows "p∨(q∨r)"
 
oops
 
oops
  
 
lemma ejercicio_33:
 
lemma ejercicio_33:
   "p∧(q∨r) (p∧q)∨(p∧r)"
+
   assumes 1: "p∧(q∨r)"
 +
  shows "(p∧q)∨(p∧r)"
 
oops
 
oops
  
 
lemma ejercicio_34:
 
lemma ejercicio_34:
   "(p∧q)∨(p∧r) p∧(q∨r)"
+
   assumes 1: "(p∧q)∨(p∧r)"
 +
  shows "p∧(q∨r)"
 
oops
 
oops
  
 
lemma ejercicio_35:
 
lemma ejercicio_35:
   "p∨(q∧r) (p∨q)∧(p∨r)"
+
   assumes 1: "p∨(q∧r)"
 +
  shows "(p∨q)∧(p∨r)"
 
oops
 
oops
  
 
lemma ejercicio_36:
 
lemma ejercicio_36:
   "(p∨q)∧(p∨r) p∨(q∧r)"
+
   assumes 1: "(p∨q)∧(p∨r)"
 +
  shows "p∨(q∧r)"
 
oops
 
oops
  
 
lemma ejercicio_37:
 
lemma ejercicio_37:
   "(p⟶r)∧(q⟶r) p∨q⟶r"
+
   assumes 1: "(p⟶r)∧(q⟶r)"
 +
  shows "p∨q⟶r"
 
oops
 
oops
  
 
lemma ejercicio_38:
 
lemma ejercicio_38:
   "p∨q⟶r (p⟶r)∧(q⟶r)"
+
   assumes 1: "p∨q⟶r
 +
  shows "(p⟶r)∧(q⟶r)"
 
oops
 
oops
  
 
lemma ejercicio_39:
 
lemma ejercicio_39:
   "p ¬¬p"
+
   assumes 1: "p"
 +
  shows "¬¬p"
 
oops
 
oops
  
 
lemma ejercicio_40:
 
lemma ejercicio_40:
   "¬p p⟶q"
+
   assumes 1: "¬p
 +
  shows "p⟶q"
 
oops
 
oops
  
 
lemma ejercicio_41:
 
lemma ejercicio_41:
   "p⟶q ¬q⟶¬p"
+
   assumes 1: "p⟶q"
 +
  shows "¬q⟶¬p"
 
oops
 
oops
  
 
lemma ejercicio_42:
 
lemma ejercicio_42:
   "⟦p∨q; ¬q⟧ ⟹ p"
+
   assumes 1: "p∨q" and
 +
          2: "¬q"
 +
  shows "p"
 
oops
 
oops
  
 
lemma ejercicio_43:
 
lemma ejercicio_43:
   "⟦p∨q; ¬p⟧ ⟹ q"
+
   assumes 1: "p∨q" and
 +
          2: "¬p"
 +
  shows "q"
 
oops
 
oops
  
 
lemma ejercicio_44:
 
lemma ejercicio_44:
   "p∨q ¬(¬p∧¬q)"
+
   assumes 1: "p∨q"
 +
  shows "¬(¬p∧¬q)"
 
oops
 
oops
  
 
lemma ejercicio_45:
 
lemma ejercicio_45:
   "p∧q ¬(¬p∨¬q)"
+
   assumes 1: "p∧q"
 +
  shows "¬(¬p∨¬q)"
 
oops
 
oops
  
 
lemma ejercicio_46:
 
lemma ejercicio_46:
   "¬(p∨q) ¬p∧¬q"
+
   assumes 1: "¬(p∨q)"
 +
  shows "¬p∧¬q"
 
oops
 
oops
  
 
lemma ejercicio_47:
 
lemma ejercicio_47:
   "¬p∧¬q ¬(p∨q)"
+
   assumes 1: "¬p∧¬q
 +
  shows "¬(p∨q)"
 
oops
 
oops
  
 
lemma ejercicio_48:
 
lemma ejercicio_48:
   "¬p∨¬q ¬(p∧q)"
+
   assumes 1: "¬p∨¬q"
 +
  shows "¬(p∧q)"
 
oops
 
oops
  
Línea 300: Línea 309:
  
 
lemma ejercicio_50:
 
lemma ejercicio_50:
   "p∧¬p q"
+
   assumes 1: "p∧¬p"
 +
  shows "q"
 
oops
 
oops
  
 
lemma ejercicio_51:
 
lemma ejercicio_51:
   "¬¬p p"
+
   assumes 1: "¬¬p"
 +
  shows "p"
 
oops
 
oops
  
Línea 316: Línea 327:
  
 
lemma ejercicio_54:
 
lemma ejercicio_54:
   "¬q⟶¬p p⟶q"
+
   assumes 1: "¬q⟶¬p"
 +
  shows "p⟶q"
 
oops
 
oops
  
 
lemma ejercicio_55:
 
lemma ejercicio_55:
   "¬(¬p∧¬q) p∨q"
+
   assumes 1: "¬(¬p∧¬q)"
 +
  shows "p∨q"
 
oops
 
oops
  
 
lemma ejercicio_56:
 
lemma ejercicio_56:
   "¬(¬p∨¬q) p∧q"
+
   assumes 1: "¬(¬p∨¬q)"
 +
  shows "p∧q"
 
oops
 
oops
  
 
lemma ejercicio_57:
 
lemma ejercicio_57:
   "¬(p∧q) ¬p∨¬q"
+
   assumes 1: "¬(p∧q)"
 +
  shows "¬p∨¬q"
 
oops
 
oops
  
lemma ejercicio_58:"(p⟶q)∨(q⟶p)"
+
lemma ejercicio_58:
 +
  "(p⟶q)∨(q⟶p)"
 
oops
 
oops
  
 
end  
 
end  
 
</source>
 
</source>

Revisión del 11:38 24 mar 2011

theory Relacion_9
imports Main 
begin 

section {* Deducción natural proposicional *}

text {* Los ejercicios de esta relación deben de resolverse usando sólo
  las reglas básicas de la deducción natural proposicional: 
  · conjI:      ⟦P; Q⟧ ⟹ P ∧ Q
  · conjunct1:  P ∧ Q ⟹ P
  · conjunct2:  P ∧ Q ⟹ Q  
  · notnotD:    ¬¬ P ⟹ P
  . notnotI:    P ⟹ ¬¬ P
  · mp:         ⟦P ⟶ Q; P⟧ ⟹ Q 
  · mt:         ⟦F ⟶ G; ¬G⟧ ⟹ ¬F 
  · impI:       (P ⟹ Q) ⟹ P ⟶ Q
  · disjI1:     P ⟹ P ∨ Q
  · disjI2:     Q ⟹ P ∨ Q
  · disjE:      ⟦P ∨ Q; P ⟹ R; Q ⟹ R⟧ ⟹ R 
  · FalseE:     False ⟹ P
  · notE:       ⟦¬P; P⟧ ⟹ R
  · notI:       (P ⟹ False) ⟹ ¬P
  · iffI:       ⟦P ⟹ Q; Q ⟹ P⟧ ⟹ P = Q
  · iffD1:      ⟦Q = P; Q⟧ ⟹ P 
  · iffD2:      ⟦P = Q; Q⟧ ⟹ P
  · ccontr:     (¬P ⟹ False) ⟹ P
*}

lemma notnotI: "P ⟹ ¬¬ P"
by auto

lemma mt: "⟦F ⟶ G; ¬G⟧ ⟹ ¬F"
by auto

lemma ejercicio_1:
  assumes 1: "p ⟶ q" and
          2: "p"
  shows "q"  
proof -
from 1 and 2 show "q" by (rule mp)
qed

lemma ejercicio_1b:
  assumes 1: "p ⟶ q" and
          2: "p"
  shows "q"  
proof -
  from 1 and 2 have q: "q" by (rule mp)
  from q show "q" by simp
qed

lemma ejercicio_2:
  assumes 1: "p⟶q" and 
          2: "q⟶r" and 
          3: "p" 
  shows "r"
proof -
  from 1 and 3 have 4:"q" by (rule ejercicio_1)
  from 2 and 4 have 5:"r" by (rule ejercicio_1)
  from 5 show "r" by simp
qed

lemma ejercicio_3:
  assumes 1: "p⟶(q⟶r)" and 
          2: "p⟶q" and  
          3: "p"
  shows "r"
proof -
  from 1 and 3 have qr:"q⟶r" by (rule ejercicio_1)
  from 2 and qr and 3 have r:"r" by (rule ejercicio_2)
  from r show "r" by simp
qed

lemma ejercicio_4:
  assumes 1: "p⟶q" and 
          2: "q⟶r" 
  shows "p⟶r"
proof (rule impI)
  assume p:"p"
  from 1 and 2 and p have r:"r" by (rule ejercicio_2)
  from r show "r" by simp
qed

lemma ejercicio_5:
  assumes 1: "p⟶(q⟶r)"
  shows "q⟶(p⟶r)"
oops

lemma ejercicio_6:
  assumes 1: "p⟶(q⟶r)" 
  shows "(p⟶q)⟶(p⟶r)"
oops

lemma ejercicio_7:
  assumes 1: "p" 
  shows "q⟶p"
oops

lemma ejercicio_8:
  "p⟶(q⟶p)"
oops

lemma ejercicio_9:
  assumes 1: "p⟶q"  
  shows "(q⟶r)⟶(p⟶r)"
oops

lemma ejercicio_10:
  assumes 1: "p⟶(q⟶(r⟶s))"
  shows "r⟶(q⟶(p⟶s))"
oops

lemma ejercicio_11:
  "(p⟶(q⟶r))⟶((p⟶q)⟶(p⟶r))"
oops

lemma ejercicio_12:
  assumes 1: "(p⟶q)⟶r" 
  shows "p⟶(q⟶r)"
oops

lemma ejercicio_13:
  assumes 1: "p" and  
          2: "q" 
  shows "p∧q"
oops

lemma ejercicio_14:
  assumes 1: "p∧q" 
  shows "p"
oops

lemma ejercicio_15:
  assumes 1: "p∧q" 
  shows "q"
oops

lemma ejercicio_16:
  assumes 1: "p∧(q∧r)"
  shows "(p∧q)∧r"
oops

lemma ejercicio_17:
  assumes 1: "(p∧q)∧r"
  shows "p∧(q∧r)"
oops

lemma ejercicio_18:
  assumes 1: "p∧q"
  shows "p⟶q"
oops

lemma ejercicio_19:
  assumes 1: "(p⟶q)∧(p⟶r)" 
  shows "p⟶q∧r"
oops

lemma ejercicio_20:
  assumes 1: "p⟶q∧r" 
  shows "(p⟶q)∧(p⟶r)"
oops

lemma ejercicio_21:
  assumes 1: "p⟶(q⟶r)" 
  shows "p∧q⟶r"
oops

lemma ejercicio_22:
  assumes 1: "p∧q⟶r"  
  shows "p⟶(q⟶r)"
oops

lemma ejercicio_23:
  assumes 1: "(p⟶q)⟶r" 
  shows "p∧q⟶r"
oops

lemma ejercicio_24:
  assumes 1: "p∧(q⟶r)"  
  shows "(p⟶q)⟶r"
oops

lemma ejercicio_25:
  assumes 1: "p" 
  shows "p∨q"
oops

lemma ejercicio_26:
  assumes 1: "q"  
  shows "p∨q"
oops

lemma ejercicio_27:
  assumes 1: "p∨q" 
  shows "q∨p"
oops

lemma ejercicio_28:
  assumes 1: "q⟶r" 
  shows "p∨q⟶p∨r"
oops

lemma ejercicio_29:
  assumes 1: "p∨p" 
  shows "p"
oops

lemma ejercicio_30:
  assumes 1: "p" 
  shows "p∨p"
oops

lemma ejercicio_31:
  assumes 1: "p∨(q∨r)"
  shows "(p∨q)∨r"
oops

lemma ejercicio_32:
  assumes 1: "(p∨q)∨r"
  shows "p∨(q∨r)"
oops

lemma ejercicio_33:
  assumes 1: "p∧(q∨r)" 
  shows "(p∧q)∨(p∧r)"
oops

lemma ejercicio_34:
  assumes 1: "(p∧q)∨(p∧r)" 
  shows "p∧(q∨r)"
oops

lemma ejercicio_35:
  assumes 1: "p∨(q∧r)"
  shows "(p∨q)∧(p∨r)"
oops

lemma ejercicio_36:
  assumes 1: "(p∨q)∧(p∨r)"
  shows "p∨(q∧r)"
oops

lemma ejercicio_37:
  assumes 1: "(p⟶r)∧(q⟶r)" 
  shows "p∨q⟶r"
oops

lemma ejercicio_38:
  assumes 1: "p∨q⟶r"  
  shows "(p⟶r)∧(q⟶r)"
oops

lemma ejercicio_39:
  assumes 1: "p"
  shows "¬¬p"
oops

lemma ejercicio_40:
  assumes 1: "¬p"  
  shows "p⟶q"
oops

lemma ejercicio_41:
  assumes 1: "p⟶q"
  shows "¬q⟶¬p"
oops

lemma ejercicio_42:
  assumes 1: "p∨q" and
          2: "¬q" 
  shows "p"
oops

lemma ejercicio_43:
  assumes 1: "p∨q" and
          2: "¬p" 
  shows "q"
oops

lemma ejercicio_44:
  assumes 1: "p∨q"
  shows "¬(¬p∧¬q)"
oops

lemma ejercicio_45:
  assumes 1: "p∧q"
  shows "¬(¬p∨¬q)"
oops

lemma ejercicio_46:
  assumes 1: "¬(p∨q)"
  shows "¬p∧¬q"
oops

lemma ejercicio_47:
  assumes 1: "¬p∧¬q"  
  shows "¬(p∨q)"
oops

lemma ejercicio_48:
  assumes 1: "¬p∨¬q"
  shows "¬(p∧q)"
oops

lemma ejercicio_49:
  "¬(p∧¬p)"
oops

lemma ejercicio_50:
  assumes 1: "p∧¬p"
  shows "q"
oops

lemma ejercicio_51:
  assumes 1: "¬¬p"
  shows "p"
oops

lemma ejercicio_52:
  "p∨¬p"
oops

lemma ejercicio_53:
  "((p⟶q)⟶p)⟶p"
oops

lemma ejercicio_54:
  assumes 1: "¬q⟶¬p"
  shows "p⟶q"
oops

lemma ejercicio_55:
  assumes 1: "¬(¬p∧¬q)"
  shows "p∨q"
oops

lemma ejercicio_56:
  assumes 1: "¬(¬p∨¬q)"
  shows "p∧q"
oops

lemma ejercicio_57:
  assumes 1: "¬(p∧q)"
  shows "¬p∨¬q"
oops

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

end