package lambdapi
Install
dune-project
Dependency
Authors
Maintainers
Sources
sha256=66d7d29f7a0d10493b8178c4c3aeb247971e24fab3eba1c54887e1b9a82fe005
sha512=69ecf2406e4c7225ab7f8ebe11624db5d2ab989c8f30f5b6e5d426fd8ef9102f142a2840af16fb9103bb712ebcf7d314635f8b413a05df66e7b7a38548867032
doc/lambdapi.handle/Handle/Why3_tactic/index.html
Module Handle.Why3_tacticSource
Calling a prover using Why3.
default_prover contains the name of the current prover. Note that it can be changed by using the "set prover <string>" command.
timeout is the current time limit (in seconds) for a Why3 prover to find a proof. It can be changed with "set prover <int>".
why3_config is the Why3 configuration read from the configuration file ("~/.why3.conf" usually). For more information, visit the Why3 documentation at http://why3.lri.fr/api/Whyconf.html.
why3_main is the main section of the Why3 configuration.
why3_env is the initialized Why3 environment.
type config = {symb_P : Core.Term.sym;(*Encoding of propositions.
*)symb_T : Core.Term.sym;(*Encoding of types.
*)symb_or : Core.Term.sym;(*Disjunction(∨) symbol.
*)symb_and : Core.Term.sym;(*Conjunction(∧) symbol.
*)symb_imp : Core.Term.sym;(*Implication(⇒) symbol.
*)symb_bot : Core.Term.sym;(*Bot(⊥) symbol.
*)symb_top : Core.Term.sym;(*Top(⊤) symbol.
*)symb_not : Core.Term.sym;(*Not(¬) symbol.
*)
}Builtin configuration for propositional logic.
get_config ss pos build the configuration using ss.
A map from lambdapi terms to Why3 constants.
new_axiom_name () generates a fresh axiom name.
val translate_term :
config ->
cnst_table ->
Core.Term.term ->
(cnst_table * Why3.Term.term) optiontranslate_term cfg tbl t translates the given lambdapi term t into the correspondig Why3 term, using the configuration cfg and constants in the association list tbl.
val encode :
Core.Sig_state.t ->
Common.Pos.popt ->
Core.Env.env ->
Core.Term.term ->
Why3.Task.taskencode ss pos hs g translates the hypotheses hs and the goal g into Why3 terms, to construct a Why3 task.
run_task tsk pos prover_name Run the task tsk with the specified prover named prover_name and return the answer of the prover.
val handle :
Core.Sig_state.t ->
Common.Pos.popt ->
string option ->
Proof.goal_typ ->
Core.Term.termhandle ss pos ps prover_name g runs the Why3 prover corresponding to the name prover_name (if given or a default one otherwise) on the goal g. If the prover succeeded to prove the goal, then this is reflected by a new axiom that is added to signature ss.