let prove
?(callin=fun _ _ -> ())
?(callout=fun _ _ _ -> ())
wpo ~interactive prover
=
Task.todo
begin
fun () ->
let logf = Wpo.file_for_log_proof ~gid:wpo.po_gid prover in
let logs = Logs.create wpo logf in
(callin wpo prover ;
task_for interactive prover logs wpo)
>>! fun s ->
let r = result s in
Logs.close logs ;
Wpo.set_result wpo prover r ;
callout wpo prover r
end