src/HOL/simpdata.ML
changeset 7127 48e235179ffb
parent 7031 972b5f62f476
child 7213 08a354bbc34c
--- a/src/HOL/simpdata.ML	Wed Jul 28 22:01:58 1999 +0200
+++ b/src/HOL/simpdata.ML	Thu Jul 29 12:44:57 1999 +0200
@@ -285,11 +285,11 @@
 by (Blast_tac 1);
 qed "if_False";
 
-Goalw [if_def] "!!P. P ==> (if P then x else y) = x";
+Goalw [if_def] "P ==> (if P then x else y) = x";
 by (Blast_tac 1);
 qed "if_P";
 
-Goalw [if_def] "!!P. ~P ==> (if P then x else y) = y";
+Goalw [if_def] "~P ==> (if P then x else y) = y";
 by (Blast_tac 1);
 qed "if_not_P";
 
@@ -319,8 +319,7 @@
 qed "if_eq_cancel";
 
 (*This form is useful for expanding IFs on the RIGHT of the ==> symbol*)
-Goal
-    "(if P then Q else R) = ((P-->Q) & (~P-->R))";
+Goal "(if P then Q else R) = ((P-->Q) & (~P-->R))";
 by (rtac split_if 1);
 qed "if_bool_eq_conj";
 
@@ -398,8 +397,6 @@
 val Addsplits        = Splitter.Addsplits;
 val Delsplits        = Splitter.Delsplits;
 
-(** 'if' congruence rules: neither included by default! *)
-
 (*In general it seems wrong to add distributive laws by default: they
   might cause exponential blow-up.  But imp_disjL has been in for a while
   and cannot be removed without affecting existing proofs.  Moreover, 
@@ -464,7 +461,8 @@
 by (asm_simp_tac (HOL_ss addsimps prems) 1);
 qed "if_cong";
 
-(*Prevents simplification of x and y: much faster*)
+(*Prevents simplification of x and y: faster and allows the execution
+  of functional programs. NOW THE DEFAULT.*)
 Goal "b=c ==> (if b then x else y) = (if c then x else y)";
 by (etac arg_cong 1);
 qed "if_weak_cong";