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