New trivial rewrites
authorpaulson
Fri, 17 Oct 1997 11:00:50 +0200
changeset 3913 96e28b16861c
parent 3912 4ed64ad7fb42
child 3914 9e393b363c71
New trivial rewrites
src/HOL/simpdata.ML
--- a/src/HOL/simpdata.ML	Fri Oct 17 11:00:00 1997 +0200
+++ b/src/HOL/simpdata.ML	Fri Oct 17 11:00:50 1997 +0200
@@ -103,9 +103,11 @@
    "(P & True) = P", "(True & P) = P", 
    "(P & False) = False", "(False & P) = False",
    "(P & P) = P", "(P & (P & Q)) = (P & Q)",
+   "(P & ~P) = False",    "(~P & P) = False",
    "(P | True) = True", "(True | P) = True", 
    "(P | False) = P", "(False | P) = P",
    "(P | P) = P", "(P | (P | Q)) = (P | Q)",
+   "(P | ~P) = True",    "(~P | P) = True",
    "((~P) = (~Q)) = (P=Q)",
    "(!x. P) = P", "(? x. P) = P", "? x. x=t", "? x. t=x", 
    "(? x. x=t & P(x)) = P(t)",
@@ -312,6 +314,10 @@
                    "(if P then Q else R) = ((P-->Q) & (~P-->R))"
                    (fn _ => [rtac expand_if 1]);
 
+
+
+(** Case splitting **)
+
 local val mktac = mk_case_split_tac (meta_eq_to_obj_eq RS iffD2)
 in
 fun split_tac splits = mktac (map mk_meta_eq splits)