equal
deleted
inserted
replaced
485 |> Output.urgent_message |
485 |> Output.urgent_message |
486 else |
486 else |
487 () |
487 () |
488 val birth = Timer.checkRealTimer timer |
488 val birth = Timer.checkRealTimer timer |
489 val _ = |
489 val _ = |
490 if debug then |
490 if debug then Output.urgent_message "Invoking SMT solver..." else () |
491 Output.urgent_message "Invoking SMT solver..." |
|
492 else |
|
493 () |
|
494 val (outcome, used_facts) = |
491 val (outcome, used_facts) = |
495 SMT_Solver.smt_filter remote iter_timeout state facts i |
492 SMT_Solver.smt_filter remote iter_timeout state facts i |
496 |> (fn {outcome, used_facts, ...} => (outcome, used_facts)) |
493 |> (fn {outcome, used_facts, ...} => (outcome, used_facts)) |
497 handle exn => if Exn.is_interrupt exn then |
494 handle exn => if Exn.is_interrupt exn then |
498 reraise exn |
495 reraise exn |
523 |> warning |
520 |> warning |
524 else |
521 else |
525 (); |
522 (); |
526 true (* kind of *)) |
523 true (* kind of *)) |
527 | SOME SMT_Failure.Out_Of_Memory => true |
524 | SOME SMT_Failure.Out_Of_Memory => true |
528 | SOME _ => true |
525 | SOME (SMT_Failure.Other_Failure _) => true |
529 val timeout = Time.- (timeout, Timer.checkRealTimer timer) |
526 val timeout = Time.- (timeout, Timer.checkRealTimer timer) |
530 in |
527 in |
531 if too_many_facts_perhaps andalso iter_num < !smt_max_iter andalso |
528 if too_many_facts_perhaps andalso iter_num < !smt_max_iter andalso |
532 num_facts > 0 andalso Time.> (timeout, Time.zeroTime) then |
529 num_facts > 0 andalso Time.> (timeout, Time.zeroTime) then |
533 let |
530 let |