# HG changeset patch # User paulson # Date 1064324521 -7200 # Node ID 7ad7ab89c4026e6ad902b4728c9d0511f55d4bad # Parent d8598e24f8fa793943f3945198fcff96f8f0cf50 some basic new lemmas diff -r d8598e24f8fa -r 7ad7ab89c402 src/HOL/HOL.thy --- a/src/HOL/HOL.thy Tue Sep 23 15:41:33 2003 +0200 +++ b/src/HOL/HOL.thy Tue Sep 23 15:42:01 2003 +0200 @@ -380,6 +380,18 @@ -- {* Miniscoping: pushing in universal quantifiers. *} by (rules | blast)+ +lemma disj_absorb: "(A | A) = A" + by blast + +lemma disj_left_absorb: "(A | (A | B)) = (A | B)" + by blast + +lemma conj_absorb: "(A & A) = A" + by blast + +lemma conj_left_absorb: "(A & (A & B)) = (A & B)" + by blast + lemma eq_ac: shows eq_commute: "(a=b) = (b=a)" and eq_left_commute: "(P=(Q=R)) = (Q=(P=R))" @@ -514,11 +526,15 @@ lemma Eq_TrueI: "P ==> P == True" by (unfold atomize_eq) rules lemma Eq_FalseI: "~P ==> P == False" by (unfold atomize_eq) rules +subsubsection {* Actual Installation of the Simplifier *} + use "simpdata.ML" setup Simplifier.setup setup "Simplifier.method_setup Splitter.split_modifiers" setup simpsetup setup Splitter.setup setup Clasimp.setup +declare disj_absorb [simp] conj_absorb [simp] + lemma ex1_eq[iff]: "EX! x. x = t" "EX! x. t = x" by blast+