| 74516 |      1 | (*  Title:      HOL/Mirabelle/Tools/mirabelle_presburger.ML
 | 
|  |      2 |     Author:     Martin Desharnais, MPI-INF Saarbrücken
 | 
|  |      3 | 
 | 
|  |      4 | Mirabelle action: "presburger".
 | 
|  |      5 | *)
 | 
|  |      6 | 
 | 
|  |      7 | structure Mirabelle_Presburger: MIRABELLE_ACTION =
 | 
|  |      8 | struct
 | 
|  |      9 | 
 | 
|  |     10 | fun make_action ({timeout, ...} : Mirabelle.action_context) =
 | 
|  |     11 |   let
 | 
|  |     12 |     val _ = Timing.timing
 | 
|  |     13 |     fun run_action ({pre, ...} : Mirabelle.command) =
 | 
|  |     14 |       (case Timing.timing (Mirabelle.can_apply timeout (Cooper.tac true [] [])) pre of
 | 
|  |     15 |         ({cpu, ...}, true) => "succeeded (" ^ Time.toString cpu ^ " s)"
 | 
|  |     16 |       | (_, false) => "failed")
 | 
|  |     17 |   in {run_action = run_action, finalize = K ""} end
 | 
|  |     18 | 
 | 
|  |     19 | val () = Mirabelle.register_action "presburger" make_action
 | 
|  |     20 | 
 | 
|  |     21 | end
 |