src/HOL/Tools/Sledgehammer/sledgehammer_util.ML
changeset 78708 72d2693fb0ec
parent 77866 3bd1aa2f3517
equal deleted inserted replaced
78707:0b794165e9d4 78708:72d2693fb0ec
    10   val log2 : real -> real
    10   val log2 : real -> real
    11   val app_hd : ('a -> 'a) -> 'a list -> 'a list
    11   val app_hd : ('a -> 'a) -> 'a list -> 'a list
    12   val plural_s : int -> string
    12   val plural_s : int -> string
    13   val serial_commas : string -> string list -> string list
    13   val serial_commas : string -> string list -> string list
    14   val simplify_spaces : string -> string
    14   val simplify_spaces : string -> string
    15   val with_cleanup : ('a -> unit) -> ('a -> 'b) -> 'a -> 'b
       
    16   val parse_bool_option : bool -> string -> string -> bool option
    15   val parse_bool_option : bool -> string -> string -> bool option
    17   val parse_time : string -> string -> Time.time
    16   val parse_time : string -> string -> Time.time
    18   val subgoal_count : Proof.state -> int
    17   val subgoal_count : Proof.state -> int
    19   val thms_in_proof : int -> (string Symtab.table * string Symtab.table) option -> thm ->
    18   val thms_in_proof : int -> (string Symtab.table * string Symtab.table) option -> thm ->
    20     string list option
    19     string list option
    39 
    38 
    40 fun plural_s n = if n = 1 then "" else "s"
    39 fun plural_s n = if n = 1 then "" else "s"
    41 
    40 
    42 val serial_commas = Try.serial_commas
    41 val serial_commas = Try.serial_commas
    43 val simplify_spaces = strip_spaces false (K true)
    42 val simplify_spaces = strip_spaces false (K true)
    44 
       
    45 fun with_cleanup clean_up f x =
       
    46   Exn.capture f x
       
    47   |> tap (fn _ => clean_up x)
       
    48   |> Exn.release
       
    49 
    43 
    50 fun parse_bool_option option name s =
    44 fun parse_bool_option option name s =
    51   (case s of
    45   (case s of
    52      "smart" => if option then NONE else raise Option.Option
    46      "smart" => if option then NONE else raise Option.Option
    53    | "false" => SOME false
    47    | "false" => SOME false