Module Wpo


module Wpo: sig .. end

Proof Obligations



type po = t 

type t = {
   po_fun : Db_types.kernel_function;
   po_bhv : string option;
   po_pid : WpAnnot.prop_id;
   po_gid : string;
   po_env : string;
   po_model : string;
   po_updater : string;
   po_name : string;
   po_dep : dependency list;
   po_warn : warning list;
}
type dependency = {
   dep_pid : WpAnnot.prop_id;
   dep_descr : string;
}
type warning = {
   wrn_loc : Log.source;
   wrn_severe : bool;
   wrn_source : string;
   wrn_reason : string;
   wrn_effect : string;
}
type prover =
| Why of string
| AltErgo
| Coq
| WP

type language =
| L_why
| L_coq
| L_ergo91
| L_ergo92

type result =
| Valid
| Invalid
| Unknown
| Timeout
| Computing
| Failed of string
val pp_warning : Format.formatter -> warning -> unit
val pp_dependency : Format.formatter -> dependency -> 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 Kfmap: Map.Make(Kernel_function)
module Imap: Map.Make(String)
module WPOset: Set.Make(sig
type t = Wpo.po 
val compare : t -> t -> int
end)
module Hpo: Hashtbl.Make(sig
type t = Wpo.po 
val hash : t -> int
val equal : t -> t -> bool
end)

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
type updater = Property.t -> Property.t list -> Cil_types.annotation_status -> unit 
val updaters : (string, updater) Hashtbl.t
val register : string -> updater -> unit
val gid : context:string ->
kf:Kernel_function.t -> bhv:string option -> propid:WpAnnot.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 : Hpo.key -> prover -> result option
val get_results : Hpo.key -> (prover * result) list
val iter : ?on_environment:(string -> 'a) ->
?on_function:(Kfmap.key -> unit) ->
?on_behavior:(Kfmap.key -> Imap.key option -> unit) ->
?on_goal:(WPOset.elt -> unit) -> unit -> unit
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
val file_for_log : gid:string -> string
val file_for_goal : gid:string -> language -> string
val file_for_env : env: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 -> prover option
val language_of_name : string -> language option
val language_of_prover : prover -> language
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