Module Wpo


module Wpo: sig .. end

Proof Obligations



type po = t 

type t = {
   po_fun : Cil_types.kernel_function;
   po_bhv : string option;
   po_pid : WpPropId.prop_id;
   po_gid : string;
   po_env : string;
   po_model : string;
   po_updater : Emitter.t;
   po_name : string;
   po_dep : Property.t list;
   po_warn : warning list;
}
type warning = {
   wrn_loc : Lexing.position;
   wrn_severe : bool;
   wrn_source : string;
   wrn_reason : string;
   wrn_effect : string;
}
module PODatatype: Datatype.Make(sig
type t = Wpo.po 
include Datatype.Undefined
val name : string
val reprs : t list
end)

type prover =
| Why of string
| AltErgo
| Coq
| WP
Dynamically exported.
module ProverType: Datatype.Make(sig
type t = Wpo.prover 
include Datatype.Undefined
val name : string
val reprs : Wpo.prover list
end)

type language =
| L_why
| L_coq
| L_altergo

type result =
| Valid
| Invalid
| Unknown
| Timeout
| Computing
| Failed of string
module ResultType: Datatype.Make(sig
type t = Wpo.result 
include Datatype.Undefined
val name : string
val reprs : Wpo.result list
end)
val pp_warning : Format.formatter -> warning -> unit
val pp_dependency : Cil_types.kernel_function -> Format.formatter -> Property.t -> unit
val pp_depend : Format.formatter -> Property.t -> unit
val pp_prover : Format.formatter -> prover -> unit
val pp_language : Format.formatter -> language -> unit
val pp_result : Format.formatter -> result -> unit
module Hproof: Hashtbl.Make(Datatype.Pair(Datatype.String)(Property))
module Results: sig .. end
module WPO: sig .. end
module Kfmap: Kernel_function.Map
module Imap: Map.Make(String)
module WPOset: Set.Make(WPO)
module Hpo: Hashtbl.Make(WPO)

type system = {
   mutable environments : int Imap.t;
   mutable last : (string * int * string) option;
   mutable index : WPOset.t Imap.t Kfmap.t;
   proofs : WpAnnot.proof Hproof.t;
   results : Results.t Hpo.t;
}
val system : system
val get_gid : PODatatype.t -> string
Dynamically exported
Since Nitrogen-20111001
val get_prop_id : PODatatype.t -> WpPropId.Prop_id_datatype.t
val gid : context:string ->
kf:Kernel_function.t ->
bhv:string option -> propid:WpPropId.prop_id -> string
val clear : unit -> unit
val env_name : string -> int -> string
val new_env : context:Imap.key -> string
Generates a fresh environment name.
val release_env : env:string -> unit
Releases the last generated environment name.
val add : WPOset.elt -> unit
val set_po_result : t -> result -> unit
val set_result : Hpo.key -> prover -> result -> unit
val get_result : PODatatype.t -> ProverType.t -> ResultType.t option
Dynamically exported.
val get_result : PODatatype.t -> ProverType.t -> ResultType.t option
Dynamically exported.
val is_valid : ResultType.t -> bool
true if the result is valid. Dynamically exported.
Since Nitrogen-20111001
val get_results : Hpo.key -> (prover * result) list
val iter : ?on_environment:(string -> 'a) ->
?on_function:(Kernel_function.t -> unit) ->
?on_behavior:(Kernel_function.t -> String.t option -> unit) ->
?on_goal:(WPOset.elt -> unit) -> unit -> unit
val iter_on_goals : (WPOset.elt -> unit) -> unit
Dynamically exported.
Since Nitrogen-20111001
val local : string -> string -> string
val file_for_lang : string -> language -> string
val file_for_ctxt : env:string -> string
val file_for_head : gid:string -> string
val file_for_body : gid:string -> string
Dynamically exported.
val file_for_log_proof : gid:string -> prover -> string
val file_for_log_proof_ : string -> ProverType.t -> string
val file_for_log_check : gid:string -> language -> string
val file_for_goal : gid:string -> language -> string
val file_for_env : env:string -> language -> string
val file_for_po : gid:string -> language -> string
val file_for_model : model:string -> language -> string
val coq_for_env : env:'a -> 'a
val coq_for_model : model:string -> string
val coqc_for_model : model:string -> string
val prover_of_name : string -> ProverType.t option
val prover_of_name : string -> ProverType.t option
val language_of_name : string -> language option
Dynamically exported.
val language_of_prover : prover -> language
val language_of_prover_name : string -> language option
val is_interactive : string -> bool
val gui_provers : prover list
val bar : string
val flow : bool Pervasives.ref
val pp_environment : Format.formatter -> string -> unit
val pp_function : Format.formatter -> Kernel_function.t -> string option -> unit
val pp_goal : Format.formatter -> Hpo.key -> unit
val pp_goal_flow : Format.formatter -> Hpo.key -> unit