src/HOL/Tools/datatype_realizer.ML
changeset 15531 08c8dad8e399
parent 15256 9237f388fbb1
child 15570 8d8c70b41bab
--- a/src/HOL/Tools/datatype_realizer.ML	Fri Feb 11 18:51:00 2005 +0100
+++ b/src/HOL/Tools/datatype_realizer.ML	Sun Feb 13 17:15:14 2005 +0100
@@ -24,7 +24,7 @@
 
 fun forall_intr_prf (t, prf) =
   let val (a, T) = (case t of Var ((a, _), T) => (a, T) | Free p => p)
-  in Abst (a, Some T, Proofterm.prf_abstract_over t prf) end;
+  in Abst (a, SOME T, Proofterm.prf_abstract_over t prf) end;
 
 fun prf_of thm =
   let val {sign, prop, der = (_, prf), ...} = rep_thm thm
@@ -108,9 +108,9 @@
         (descr ~~ recTs ~~ rec_result_Ts ~~ rec_names);
     val r = if null is then Extraction.nullt else
       foldr1 HOLogic.mk_prod (mapfilter (fn (((((i, _), T), U), s), tname) =>
-        if i mem is then Some
+        if i mem is then SOME
           (list_comb (Const (s, fTs ---> T --> U), rec_fns) $ Free (tname, T))
-        else None) (descr ~~ recTs ~~ rec_result_Ts ~~ rec_names ~~ tnames));
+        else NONE) (descr ~~ recTs ~~ rec_result_Ts ~~ rec_names ~~ tnames));
     val concl = HOLogic.mk_Trueprop (foldr1 (HOLogic.mk_binop "op &")
       (map (fn ((((i, _), T), U), tname) =>
         make_pred i U T (mk_proj i is r) (Free (tname, T)))
@@ -149,10 +149,10 @@
         (case head_of (strip_abs_body f) of
            Free (s, T) =>
              let val T' = Type.varifyT T
-             in Abst (s, Some T', Proofterm.prf_abstract_over
-               (Var ((s, 0), T')) (AbsP ("H", Some p, prf)))
+             in Abst (s, SOME T', Proofterm.prf_abstract_over
+               (Var ((s, 0), T')) (AbsP ("H", SOME p, prf)))
              end
-         | _ => AbsP ("H", Some p, prf)))
+         | _ => AbsP ("H", SOME p, prf)))
            (rec_fns ~~ prems_of thm, Proofterm.proof_combP
              (prf_of thm', map PBound (length prems - 1 downto 0))));
 
@@ -183,7 +183,7 @@
             list_comb (r, free_ts)))))
       end;
 
-    val Some (_, _, constrs) = assoc (descr, index);
+    val SOME (_, _, constrs) = assoc (descr, index);
     val T = nth_elem (index, get_rec_types descr sorts);
     val (rs, prems) = split_list (map (make_casedist_prem T) constrs);
     val r = Const (case_name, map fastype_of rs ---> T --> rT);
@@ -210,7 +210,7 @@
     val P = Var (("P", 0), rT' --> HOLogic.boolT);
     val prf = forall_intr_prf (y, forall_intr_prf (P,
       foldr (fn ((p, r), prf) =>
-        forall_intr_prf (Logic.varify r, AbsP ("H", Some (Logic.varify p),
+        forall_intr_prf (Logic.varify r, AbsP ("H", SOME (Logic.varify p),
           prf))) (prems ~~ rs, Proofterm.proof_combP (prf_of thm',
             map PBound (length prems - 1 downto 0)))));
     val r' = Logic.varify (Abs ("y", Type.varifyT T,