# HG changeset patch # User wenzelm # Date 1139674667 -3600 # Node ID 2577ac76cdc62c129bae424172a238d368778d52 # Parent d1c3294ca41788431f5277cd93a995115e86eba5 tuned; diff -r d1c3294ca417 -r 2577ac76cdc6 src/Pure/Isar/rule_cases.ML --- a/src/Pure/Isar/rule_cases.ML Sat Feb 11 17:17:45 2006 +0100 +++ b/src/Pure/Isar/rule_cases.ML Sat Feb 11 17:17:47 2006 +0100 @@ -81,12 +81,12 @@ fun extract_fixes NONE prop = (strip_params prop, []) | extract_fixes (SOME outline) prop = - splitAt (length (Logic.strip_params outline), strip_params prop); + chop (length (Logic.strip_params outline)) (strip_params prop); fun extract_assumes _ NONE prop = ([("", Logic.strip_assums_hyp prop)], []) | extract_assumes qual (SOME outline) prop = let val (hyps, prems) = - splitAt (length (Logic.strip_assums_hyp outline), Logic.strip_assums_hyp prop) + chop (length (Logic.strip_assums_hyp outline)) (Logic.strip_assums_hyp prop) in ([(qual case_hypsN, hyps)], [(qual case_premsN, prems)]) end; fun extract_case is_open thy (case_outline, raw_prop) name concls = diff -r d1c3294ca417 -r 2577ac76cdc6 src/Pure/Syntax/syn_ext.ML --- a/src/Pure/Syntax/syn_ext.ML Sat Feb 11 17:17:45 2006 +0100 +++ b/src/Pure/Syntax/syn_ext.ML Sat Feb 11 17:17:47 2006 +0100 @@ -298,7 +298,7 @@ err_in_mfix "Missing structure argument for indexed syntax" mfix; val xs = map Ast.Variable (Term.invent_names [] "xa" (length args - 1)); - val (xs1, xs2) = Library.splitAt (Library.find_index is_index args, xs); + val (xs1, xs2) = chop (find_index is_index args) xs; val i = Ast.Variable "i"; val lhs = Ast.mk_appl (Ast.Constant indexed_const) (xs1 @ [Ast.mk_appl (Ast.Constant "_index") [i]] @ xs2); diff -r d1c3294ca417 -r 2577ac76cdc6 src/Pure/Thy/thm_database.ML --- a/src/Pure/Thy/thm_database.ML Sat Feb 11 17:17:45 2006 +0100 +++ b/src/Pure/Thy/thm_database.ML Sat Feb 11 17:17:47 2006 +0100 @@ -92,7 +92,7 @@ else NONE; val names = NameSpace.unpack name; in - (case #2 (splitAt (length names - 2, names)) of + (case #2 (chop (length names - 2) names) of [bname] => result "" bname | [prfx, bname] => result (if prfx = thy_name then "" else prfx) bname | _ => NONE) diff -r d1c3294ca417 -r 2577ac76cdc6 src/Pure/proofterm.ML --- a/src/Pure/proofterm.ML Sat Feb 11 17:17:45 2006 +0100 +++ b/src/Pure/proofterm.ML Sat Feb 11 17:17:47 2006 +0100 @@ -913,7 +913,7 @@ val prop = (case prf of PThm (_, _, prop, _) => prop | PAxm (_, prop, _) => prop | Oracle (_, prop, _) => prop | _ => error "shrink: proof not in normal form"); val vs = vars_of prop; - val (ts', ts'') = splitAt (length vs, ts) + val (ts', ts'') = chop (length vs) ts; val insts = Library.take (length ts', map (fst o dest_Var) vs) ~~ ts'; val nvs = Library.foldl (fn (ixns', (ixn, ixns)) => insert (op =) ixn (case AList.lookup (op =) insts ixn of diff -r d1c3294ca417 -r 2577ac76cdc6 src/Pure/thm.ML --- a/src/Pure/thm.ML Sat Feb 11 17:17:45 2006 +0100 +++ b/src/Pure/thm.ML Sat Feb 11 17:17:47 2006 +0100 @@ -1219,7 +1219,7 @@ val Bi' = if 0 = m orelse m = n then Bi else if 0 < m andalso m < n then - let val (ps, qs) = splitAt (m, asms) + let val (ps, qs) = chop m asms in list_all (params, Logic.list_implies (qs @ ps, concl)) end else raise THM ("rotate_rule", k, [state]); in @@ -1249,7 +1249,7 @@ val prop' = if 0 = m orelse m = n_j then prop else if 0 < m andalso m < n_j then - let val (ps, qs) = splitAt (m, moved_prems) + let val (ps, qs) = chop m moved_prems in Logic.list_implies (fixed_prems @ qs @ ps, concl) end else raise THM ("permute_prems: k", k, [rl]); in diff -r d1c3294ca417 -r 2577ac76cdc6 src/Pure/type_infer.ML --- a/src/Pure/type_infer.ML Sat Feb 11 17:17:45 2006 +0100 +++ b/src/Pure/type_infer.ML Sat Feb 11 17:17:47 2006 +0100 @@ -342,7 +342,7 @@ fun prep_output bs ts Ts = let val (Ts_bTs', ts') = typs_terms_of [] PTFree "??" (Ts @ map snd bs, ts); - val (Ts',Ts'') = Library.splitAt(length Ts, Ts_bTs'); + val (Ts', Ts'') = chop (length Ts) Ts_bTs'; val xs = map Free (map fst bs ~~ Ts''); val ts'' = map (fn t => subst_bounds (xs, t)) ts'; in (ts'', Ts') end;