+let explain = function
+ | StatefulProofEngine.Tactic_failure exn ->
+ sprintf "Tactic failed: %s"(Printexc.to_string exn)
+ | StatefulProofEngine.Observer_failures exns ->
+ String.concat "\n"
+ (List.map (fun (_, exn) -> Printexc.to_string exn) exns)
+ | CicTextualParser2.Parse_error (floc, msg) ->
+ let (x, y) = CicAst.loc_of_floc floc in
+ sprintf "parse error at character %d-%d: %s" x y msg
+ | CicEnvironment.Object_not_found uri ->
+ sprintf "object not found: %s" (UriManager.string_of_uri uri)
+ | exn -> sprintf "Uncaught exception: %s" (Printexc.to_string exn)
+
+exception No_proof
+
+exception Cancel
+exception Unbound_identifier of string
+
+(*