module Register: sig
.. end
Use options to know what to do
module W: Fol_why
module Q: Fol_coq
module E91: Fol_ergo.E91
module E92: Fol_ergo.E92
module F: Fol_formula
module D: Datalib.Create
(
F
)
module A: Mint_natural.Create
(
D
)
module R: Mfloat_natural.Create
(
D
)
module Hoare: Hoare_mem.Create
(
D
)
(
A
)
(
R
)
module Store: Store_mem.Create
(
D
)
(
A
)
(
R
)
module Runtime: Runtime_mem.Create
(
D
)
(
A
)
(
R
)
module WP_Hoare: CfgProof.Create
(
Hoare
)
(
W
)
(
Q
)
(
E91
)
(
E92
)
(
Fol_split
)
(
sig
end
)
module WP_Caveat: CfgProof.Create
(
Caveat_mem.Safe.WP
)
(
Caveat_mem.Safe.Why
)
(
Caveat_mem.Safe.Coq
)
(
Caveat_mem.Safe.Ergo91
)
(
Caveat_mem.Safe.Ergo92
)
(
Caveat_mem.Safe.Splitter
)
(
sig
end
)
module WP_UnsafeCaveat: CfgProof.Create
(
Caveat_mem.Unsafe.WP
)
(
Caveat_mem.Unsafe.Why
)
(
Caveat_mem.Unsafe.Coq
)
(
Caveat_mem.Unsafe.Ergo91
)
(
Caveat_mem.Unsafe.Ergo92
)
(
Caveat_mem.Unsafe.Splitter
)
(
sig
end
)
module WP_Store: CfgProof.Create
(
Store
)
(
W
)
(
Q
)
(
E91
)
(
E92
)
(
Fol_split
)
(
sig
end
)
module WP_Storefun: CfgProof.Create
(
Funvar_mem.Create
(
Store
)
)
(
W
)
(
Q
)
(
E91
)
(
E92
)
(
Fol_split
)
(
sig
end
)
module WP_Runtime: CfgProof.Create
(
Runtime
)
(
W
)
(
Q
)
(
E91
)
(
E92
)
(
Fol_split
)
(
sig
end
)
module WP_Runtimefun: CfgProof.Create
(
Funvar_mem.Create
(
Runtime
)
)
(
W
)
(
Q
)
(
E91
)
(
E92
)
(
Fol_split
)
(
sig
end
)
type
feature =
type
wp_model = {
}
val wp_model : string -> wp_model
val option : (unit -> bool) -> feature -> bool
type 'a
computing_methods =
| |
OneforBoth of 'a |
| |
NonAssigns of 'a |
| |
OneforEach of 'a * 'a |
val dispatch : wp_model list -> CfgProof.computer computing_methods
val computer : Wp_parameters.model_kind ->
WP_Hoare.computer computing_methods
val on_definition : (Kernel_function.t -> unit) -> Kernel_function.t -> unit
val on_all_functions : (Kernel_function.t -> unit) -> unit
val on_function_names : string list -> (Kernel_function.t -> unit) -> unit
val on_function : Kernel_function.t -> (Kernel_function.t -> unit) -> unit
val build_cfg : ?do_dot:Wp_parameters.Dot.t -> Kernel_function.t -> Cil2cfg.t * string option
val dot_lannots : Cil2cfg.t -> WpAnnot.strategy list -> unit
type
prop =
| |
NamedProp of string |
| |
IdProp of Property.t |
val do_compute : Wpo.t Bag.t Pervasives.ref ->
CfgProof.computer ->
((Kernel_function.t -> unit) -> 'a) ->
WpAnnot.assigns -> string list option -> prop option -> unit
val do_wp_print : unit -> unit
val do_wp_print_for : Wpo.t Bag.t -> unit
val do_wpo_feedback : Wpo.t -> Wpo.prover -> Wpo.result -> unit
val do_wp_proof : Task.server -> Wpo.prover -> Wpo.t -> unit
val do_wp_proofs : unit -> unit
val do_wp_proofs_for : Wpo.t Bag.t -> unit
val do_wp_check : Task.server -> Wpo.prover -> Wpo.t -> unit
val do_wp_checks : unit -> unit
val do_wp_checks_for : Wpo.t Bag.t -> unit
val do_wp_passes : ((Kernel_function.t -> unit) -> 'a) ->
string list option -> prop option -> Wpo.t Bag.t
val wp_compute : Kernel_datatype.Kernel_function.t option ->
string list option -> Property.t option -> unit
val wp_cfg_dot : Kernel_function.t -> string
val cmdline_run : unit -> unit
val wp_compute : Kernel_datatype.Kernel_function.t option ->
string list option -> Property.t option -> unit
val run : unit -> unit
Use options to know what to do
val main : 'a -> unit