let prove logs w =
let timeout = Wp_parameters.Timeout.get () in
let stdout = Buffer.create 80 in
let goal = PO.make L_altergo w in
Logs.add_file logs goal ;
let args =
if Wp_parameters.ProofTrace.get ()
then [| "-proof" ; goal |]
else [| goal |]
in
Logs.command logs "alt-ergo" args ;
Task.command ~timeout ~stdout "alt-ergo" args
>>? Logs.output logs stdout
>>= fun s ->
if s=0 then
let response = Buffer.contents stdout in
try
ignore (Str.search_forward valid response 0) ;
Task.return Valid
with Not_found ->
Task.return Unknown
else
Task.failed "Alt-Ergo exit %d" s