Instruct the prover to shutdown.
Instruct the prover to shutdown.
Includes orderly cancellation of all running operations. Pending futures will be marked as failed.
It is guaranteed that when the returned future succeeds, the prover has been shut down propertly.
Calling anything after dispose
is undefined. The object should not be used
afterwards.
Invoke an operation on the prover, that is, encode the input argument, send it to the prover and stream the results to the observer of the operation.
Invoke an operation on the prover, that is, encode the input argument, send it to the prover and stream the results to the observer of the operation.
The returned future gets fulfilled when the
observer transitions into either
Success
or
Failure
state.
In addition to that, the transaction can be cancelled via the cancel
method of the CancelableFuture
. Cancellation entails marking the future
as failed and signalling the prover that the operation should be
interrupted.
Any well-formed response, even if it is an "error", is treated as a success. Only ill-formed responses, e.g. due to decoding errors, will mark the future as failed. Custom observers may deviate from this, but it is generally safe to assume that a failed future represents an internal error (e.g. due to a wrong codec), whereas a successful future may contain expected errors (e.g. due to a wrong input argument or a failing proof).
The scheduler used internally for bi-directional communication with the prover.
The scheduler used internally for bi-directional communication with the prover.
Guaranteed to be the same scheduler as the one of the environment used to create this system.
It is fine to use this scheduler for other purposes, for example to
transform the futures produced by
invoking operations (note that Scheduler
is a subtype of
ExecutionContext
).
Since it is marked as implicit
, it can be readily imported and used.
A running instance of a prover.
This class is thread-safe, that is, running multiple operations at the same time is expected and safe.
info.hupel.isabelle.setup.Setup