module Driver:sig..end
Managing the drivers for external provers
type driver
Loading drivers
val load_driver_file_and_extras : Whyconf.main ->
Env.env ->
extra_dir:string option ->
string -> (string * string list) list -> driverload_driver_file_and_extras main env ~extra_dir file extras
loads the driver in file file and with additional drivers in list
extras, in the context of the configuration main and
environment env. When not None, extra_dir is an additional
directory where to look for file
val load_driver_for_prover : Whyconf.main -> Env.env -> Whyconf.config_prover -> driverload_driver main env p loads the driver for prover p, in the
context of the configuration main and environment env.
val resolve_driver_name : Whyconf.main -> string -> extra_dir:string option -> string -> stringresolve_driver_name main dir ?extra_dir name resolves the driver
name name into a file name. dir is the name of the subdirectory
of DATADIR where driver files are expected to be. extra_dir is
an optional extra directory to search into.
val file_of_task : driver -> string -> string -> Task.task -> stringfile_of_task d f th t produces a filename
for the prover of driver d, for a task t generated
from a goal in theory named th of filename f
val file_of_theory : driver -> string -> Theory.theory -> stringfile_of_theory d f th produces a filename
for the prover of driver d, for a theory th from filename f
val get_filename : driver ->
input_file:string -> theory_name:string -> goal_name:string -> stringMangles a filename for the prover of the given driver
val print_task : ?old:Stdlib.in_channel ->
driver -> Stdlib.Format.formatter -> Task.task -> unitPrepare the task for the prover and prints it
val print_theory : ?old:Stdlib.in_channel ->
driver -> Stdlib.Format.formatter -> Theory.theory -> unitproduce a realization of the given theory using the given driver
val prove_task : command:string ->
config:Whyconf.main ->
limits:Call_provers.resource_limits ->
?old:string ->
?inplace:bool ->
?interactive:bool -> driver -> Task.task -> Call_provers.prover_callSplit the previous function in two simpler functions
val prepare_task : driver -> Task.task -> Task.taskApply driver's transformations to the task
val print_task_prepared : ?old:Stdlib.in_channel ->
driver ->
Stdlib.Format.formatter -> Task.task -> Printer.printing_info
val prove_task_prepared : command:string ->
config:Whyconf.main ->
limits:Call_provers.resource_limits ->
?old:string ->
?inplace:bool ->
?interactive:bool -> driver -> Task.task -> Call_provers.prover_callCall prover on a task prepared by prepare_task.
val prove_buffer_prepared : command:string ->
config:Whyconf.main ->
limits:Call_provers.resource_limits ->
?input_file:string ->
?theory_name:string ->
?goal_name:string ->
?get_model:Printer.printing_info ->
driver -> Stdlib.Buffer.t -> Call_provers.prover_callCall prover on a task already prepared and printed in the buffer.
The task shall be prepared by prepare_task and printed with
print_task_prepared; the buffer shall contain nothing else.
Parameters input_file, theory_name and goal_name are used
to generate canonical temporary files for the prover according to its driver
definition. They are purely informative and their respective default
values are "f", "T" and "vc".
Parameter get_model shall be passed to obtain couter examples.
The printing-infos are those obtained from task preparation.
Traverse all metas from a driver
val syntax_map : driver -> Printer.syntax_mapInformation on counterexample generation
val meta_get_counterexmp : Theory.metaSet in drivers that generate counterexamples
val get_counterexmp : Task.task -> boolReturns true if counterexample should be get for the task (according to
meta_get_counterexmp.