src/Pure/Isar/locale.ML
changeset 13629 a46362d2b19b
parent 13460 ced7a699282b
child 14215 ebf291f3b449
--- a/src/Pure/Isar/locale.ML	Fri Oct 04 15:57:32 2002 +0200
+++ b/src/Pure/Isar/locale.ML	Mon Oct 07 19:01:51 2002 +0200
@@ -405,11 +405,11 @@
   | activate_elem _ ((ctxt, axs), Assumes asms) =
       let
         val ts = flat (map (map #1 o #2) asms);
-        val n = length ts;
+        val (ps,qs) = splitAt (length ts, axs)
         val (ctxt', _) =
           ctxt |> ProofContext.fix_frees ts
-          |> ProofContext.assume_i (export_axioms (Library.take (n, axs))) asms;
-      in ((ctxt', Library.drop (n, axs)), []) end
+          |> ProofContext.assume_i (export_axioms ps) asms;
+      in ((ctxt', qs), []) end
   | activate_elem _ ((ctxt, axs), Defines defs) =
       let val (ctxt', _) =
         ctxt |> ProofContext.assume_i ProofContext.export_def
@@ -627,9 +627,7 @@
 
     val all_propp' = map2 (op ~~)
       (#1 (#2 (ProofContext.bind_propp_schematic_i (ctxt, all_propp))), map (map snd) all_propp);
-    val n = length raw_concl;
-    val concl = Library.take (n, all_propp');
-    val propp = Library.drop (n, all_propp');
+    val (concl, propp) = splitAt(length raw_concl, all_propp');
     val propps = unflat raw_propps propp;
     val proppss = map (uncurry unflat) (raw_proppss ~~ propps);
 
@@ -695,11 +693,11 @@
     val ((parms, all_elemss, concl), (spec, (_, _, defs))) = prep_elemss do_close
       context fixed_params (raw_import_elemss @ raw_elemss) raw_concl;
 
-    val n = length raw_import_elemss;
+    val (ps,qs) = splitAt(length raw_import_elemss, all_elemss)
     val ((import_ctxt, axioms'), (import_elemss, _)) =
-      activate_facts prep_facts ((context, axioms), Library.take (n, all_elemss));
+      activate_facts prep_facts ((context, axioms), ps);
     val ((ctxt, _), (elemss, _)) =
-      activate_facts prep_facts ((import_ctxt, axioms'), Library.drop (n, all_elemss));
+      activate_facts prep_facts ((import_ctxt, axioms'), qs);
   in
     ((((import_ctxt, import_elemss), (ctxt, elemss)), (parms, spec, defs)), concl)
   end;
@@ -899,8 +897,8 @@
 
 fun change_elem _ (axms, Assumes asms) =
       apsnd Notes ((axms, asms) |> foldl_map (fn (axs, (a, spec)) =>
-        let val n = length spec
-        in (Library.drop (n, axs), (a, [(Library.take (n, axs), [])])) end))
+        let val (ps,qs) = splitAt(length spec, axs)
+        in (qs, (a, [(ps, [])])) end))
   | change_elem f (axms, Notes facts) = (axms, Notes (map (apsnd (map (apfst (map f)))) facts))
   | change_elem _ e = e;