src/FOL/FOL.thy
changeset 14085 8dc3e532959a
parent 13550 5a176b8dda84
child 14156 2072802ab0e3
equal deleted inserted replaced
14084:ccb48f3239f7 14085:8dc3e532959a
    40 use "simpdata.ML"
    40 use "simpdata.ML"
    41 setup simpsetup
    41 setup simpsetup
    42 setup "Simplifier.method_setup Splitter.split_modifiers"
    42 setup "Simplifier.method_setup Splitter.split_modifiers"
    43 setup Splitter.setup
    43 setup Splitter.setup
    44 setup Clasimp.setup
    44 setup Clasimp.setup
       
    45 
       
    46 subsection {* Other simple lemmas *}
       
    47 
       
    48 lemma [simp]: "((P-->R) <-> (Q-->R)) <-> ((P<->Q) | R)"
       
    49 by blast
       
    50 
       
    51 lemma [simp]: "((P-->Q) <-> (P-->R)) <-> (P --> (Q<->R))"
       
    52 by blast
       
    53 
       
    54 lemma not_disj_iff_imp: "~P | Q <-> (P-->Q)"
       
    55 by blast
       
    56 
       
    57 (** Monotonicity of implications **)
       
    58 
       
    59 lemma conj_mono: "[| P1-->Q1; P2-->Q2 |] ==> (P1&P2) --> (Q1&Q2)"
       
    60 by fast (*or (IntPr.fast_tac 1)*)
       
    61 
       
    62 lemma disj_mono: "[| P1-->Q1; P2-->Q2 |] ==> (P1|P2) --> (Q1|Q2)"
       
    63 by fast (*or (IntPr.fast_tac 1)*)
       
    64 
       
    65 lemma imp_mono: "[| Q1-->P1; P2-->Q2 |] ==> (P1-->P2)-->(Q1-->Q2)"
       
    66 by fast (*or (IntPr.fast_tac 1)*)
       
    67 
       
    68 lemma imp_refl: "P-->P"
       
    69 by (rule impI, assumption)
       
    70 
       
    71 (*The quantifier monotonicity rules are also intuitionistically valid*)
       
    72 lemma ex_mono: "(!!x. P(x) --> Q(x)) ==> (EX x. P(x)) --> (EX x. Q(x))"
       
    73 by blast
       
    74 
       
    75 lemma all_mono: "(!!x. P(x) --> Q(x)) ==> (ALL x. P(x)) --> (ALL x. Q(x))"
       
    76 by blast
    45 
    77 
    46 
    78 
    47 subsection {* Proof by cases and induction *}
    79 subsection {* Proof by cases and induction *}
    48 
    80 
    49 text {* Proper handling of non-atomic rule statements. *}
    81 text {* Proper handling of non-atomic rule statements. *}