let prove log w = Coq.prove log w >>= function | Unknown | Invalid -> Coq.proof log w (Coq.script_for w) >>= run_coqide log w | Valid -> Task.return Valid