# HG changeset patch # User wenzelm # Date 1129327690 -7200 # Node ID 28d3483afbbc09880a464cced3dcfeaaaff60004 # Parent b4cf247ea0d2dde82d67be58e98fffff1483a21e export strip_params; diff -r b4cf247ea0d2 -r 28d3483afbbc src/Pure/Isar/rule_cases.ML --- a/src/Pure/Isar/rule_cases.ML Sat Oct 15 00:08:09 2005 +0200 +++ b/src/Pure/Isar/rule_cases.ML Sat Oct 15 00:08:10 2005 +0200 @@ -15,6 +15,7 @@ val get: thm -> string list * int val add: thm -> thm * (string list * int) type T + val strip_params: term -> (string * typ) list val make: bool -> term option -> theory * term -> string list -> (string * T option) list val simple: bool -> theory * term -> string -> string * T option val rename_params: string list list -> thm -> thm @@ -95,14 +96,14 @@ assumes: (string * term list) list, binds: (indexname * term option) list}; -fun unskolem x = - (case try Syntax.dest_skolem x of SOME x' => x' | NONE => x); +val strip_params = + Logic.strip_params #> map (fn (x, T) => (the_default x (try Syntax.dest_skolem x), T)); fun prep_case is_open thy (split, raw_prop) name = let val prop = Drule.norm_hhf thy raw_prop; - val xs = map (apfst unskolem) (Logic.strip_params prop); + val xs = strip_params prop; val rename = if is_open then I else map (apfst Syntax.internal); val named_xs = (case split of