src/HOL/Set.ML
changeset 3912 4ed64ad7fb42
parent 3909 e48e2fb8b895
child 3919 c036caebfc75
equal deleted inserted replaced
3911:0165b805fe09 3912:4ed64ad7fb42
   643 
   643 
   644 
   644 
   645 (*** Set reasoning tools ***)
   645 (*** Set reasoning tools ***)
   646 
   646 
   647 
   647 
       
   648 (** Rewrite rules for boolean case-splitting: faster than 
       
   649 	setloop split_tac[expand_if]
       
   650 **)
       
   651 
       
   652 bind_thm ("expand_if_eq1", read_instantiate [("P", "%x. x = ?b")] expand_if);
       
   653 bind_thm ("expand_if_eq2", read_instantiate [("P", "%x. ?a = x")] expand_if);
       
   654 
       
   655 bind_thm ("expand_if_mem1", 
       
   656     read_instantiate_sg (sign_of Set.thy) [("P", "%x. x : ?b")] expand_if);
       
   657 bind_thm ("expand_if_mem2", 
       
   658     read_instantiate_sg (sign_of Set.thy) [("P", "%x. ?a : x")] expand_if);
       
   659 
       
   660 val expand_ifs = [if_bool_eq, expand_if_eq1, expand_if_eq2,
       
   661 		  expand_if_mem1, expand_if_mem2];
       
   662 
       
   663 
   648 (*Each of these has ALREADY been added to !simpset above.*)
   664 (*Each of these has ALREADY been added to !simpset above.*)
   649 val mem_simps = [insert_iff, empty_iff, Un_iff, Int_iff, Compl_iff, Diff_iff, 
   665 val mem_simps = [insert_iff, empty_iff, Un_iff, Int_iff, Compl_iff, Diff_iff, 
   650                  mem_Collect_eq, 
   666                  mem_Collect_eq, 
   651 		 UN_iff, UN1_iff, Union_iff, 
   667 		 UN_iff, UN1_iff, Union_iff, 
   652 		 INT_iff, INT1_iff, Inter_iff];
   668 		 INT_iff, INT1_iff, Inter_iff];