src/HOL/Product_Type.thy
changeset 16121 a80aa66d2271
parent 15570 8d8c70b41bab
child 16417 9bc16273c2d4
--- a/src/HOL/Product_Type.thy	Tue May 31 11:53:11 2005 +0200
+++ b/src/HOL/Product_Type.thy	Tue May 31 11:53:12 2005 +0200
@@ -258,7 +258,7 @@
 lemma PairE [cases type: *]: "(!!x y. p = (x, y) ==> Q) ==> Q"
   by (insert PairE_lemma [of p]) blast
 
-ML_setup {*
+ML {*
   local val PairE = thm "PairE" in
     fun pair_tac s =
       EVERY' [res_inst_tac [("p", s)] PairE, hyp_subst_tac, K prune_params_tac];
@@ -298,17 +298,17 @@
   ?P(a, b)"} which cannot be solved by reflexivity.
 *}
 
-ML_setup "
+ML_setup {*
   (* replace parameters of product type by individual component parameters *)
   val safe_full_simp_tac = generic_simp_tac true (true, false, false);
   local (* filtering with exists_paired_all is an essential optimization *)
-    fun exists_paired_all (Const (\"all\", _) $ Abs (_, T, t)) =
+    fun exists_paired_all (Const ("all", _) $ Abs (_, T, t)) =
           can HOLogic.dest_prodT T orelse exists_paired_all t
       | exists_paired_all (t $ u) = exists_paired_all t orelse exists_paired_all u
       | exists_paired_all (Abs (_, _, t)) = exists_paired_all t
       | exists_paired_all _ = false;
     val ss = HOL_basic_ss
-      addsimps [thm \"split_paired_all\", thm \"unit_all_eq2\", thm \"unit_abs_eta_conv\"]
+      addsimps [thm "split_paired_all", thm "unit_all_eq2", thm "unit_abs_eta_conv"]
       addsimprocs [unit_eq_proc];
   in
     val split_all_tac = SUBGOAL (fn (t, i) =>
@@ -319,8 +319,8 @@
    if exists_paired_all (#prop (Thm.rep_thm th)) then full_simplify ss th else th;
   end;
 
-claset_ref() := claset() addSbefore (\"split_all_tac\", split_all_tac);
-"
+claset_ref() := claset() addSbefore ("split_all_tac", split_all_tac);
+*}
 
 lemma split_paired_All [simp]: "(ALL x. P x) = (ALL a b. P (a, b))"
   -- {* @{text "[iff]"} is not a good idea because it makes @{text blast} loop *}
@@ -515,21 +515,21 @@
 declare mem_splitI2 [intro!] mem_splitI [intro!] splitI2' [intro!] splitI2 [intro!] splitI [intro!]
 declare mem_splitE [elim!] splitE' [elim!] splitE [elim!]
 
-ML_setup "
+ML_setup {*
 local (* filtering with exists_p_split is an essential optimization *)
-  fun exists_p_split (Const (\"split\",_) $ _ $ (Const (\"Pair\",_)$_$_)) = true
+  fun exists_p_split (Const ("split",_) $ _ $ (Const ("Pair",_)$_$_)) = true
     | exists_p_split (t $ u) = exists_p_split t orelse exists_p_split u
     | exists_p_split (Abs (_, _, t)) = exists_p_split t
     | exists_p_split _ = false;
-  val ss = HOL_basic_ss addsimps [thm \"split_conv\"];
+  val ss = HOL_basic_ss addsimps [thm "split_conv"];
 in
 val split_conv_tac = SUBGOAL (fn (t, i) =>
     if exists_p_split t then safe_full_simp_tac ss i else no_tac);
 end;
 (* This prevents applications of splitE for already splitted arguments leading
    to quite time-consuming computations (in particular for nested tuples) *)
-claset_ref() := claset() addSbefore (\"split_conv_tac\", split_conv_tac);
-"
+claset_ref() := claset() addSbefore ("split_conv_tac", split_conv_tac);
+*}
 
 lemma split_eta_SetCompr [simp]: "(%u. EX x y. u = (x, y) & P (x, y)) = P"
 by (rule ext, fast)