let prove
?(callin=fun _ _ -> ())
?(callout=fun _ _ _ -> ())
wpo ~interactive prover
=
Task.todo
begin
fun () ->
callin wpo prover ;
let log = Log.create wpo in
task_for interactive prover log wpo
>>! fun s ->
let r = result s in
Log.close log ;
Wpo.set_result wpo prover r ;
callout wpo prover r
end