File ‹Tools/SMT/smt_failure.ML›
signature SMT_FAILURE =
sig
datatype failure =
Counterexample of bool |
Time_Out of string |
Out_Of_Memory |
Abnormal_Termination of int |
Unknown |
Replay of (string * exn) |
Other_Failure of string
val string_of_failure: failure -> string
exception SMT of failure
end;
structure SMT_Failure: SMT_FAILURE =
struct
datatype failure =
Counterexample of bool |
Time_Out of string |
Out_Of_Memory |
Abnormal_Termination of int |
Unknown |
Replay of (string * exn) |
Other_Failure of string
fun string_of_failure (Counterexample genuine) =
if genuine then "Counterexample found (possibly spurious)"
else "Potential counterexample found"
| string_of_failure (Time_Out s) = "Timed out " ^ s
| string_of_failure Out_Of_Memory = "Ran out of memory"
| string_of_failure (Abnormal_Termination err) =
"Solver terminated abnormally with error code " ^ string_of_int err
| string_of_failure Unknown = "Solver answered unknown"
| string_of_failure (Replay (rule, _)) =
"Isabelle could not replay step " ^ rule
| string_of_failure (Other_Failure msg) = msg
exception SMT of failure
end;