Acciones

Relación 9

De Razonamiento automático (2010-11)

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