Module Db.Properties


module Properties: sig .. end
Dealing with logical properties.

module Interp: sig .. end
Interpretation of logic terms.
val predicates_on_stmt : Cil_types.stmt ->
(Cil_types.predicate Cil_types.named * (Cil_types.annotation_status -> unit))
list *
(Cil_types.predicate Cil_types.named * (Cil_types.annotation_status -> unit))
list * Cil_types.funspec option
returns the predicates holding before, the predicates holding after together with the function to update their status in-place and the contract (if any) for the given statement

Alarms


val synchronize_alarms : unit -> unit
Transform current set of alarms into code properties. This has to be called at the end of an alarm generator. By example, this is automatically called at the end of Db.Value.compute.
val add_alarm : Db_types.kernel_function ->
Cil_types.stmt -> Alarms.t -> Cil_types.code_annotation -> unit
Emit an alarm. Db.Properties.synchronize_alarms must be called as soon as one need to see the alarms as properties to be checked on the code.

Assertions


val add_assert : Db_types.kernel_function -> Cil_types.stmt -> before:bool -> string -> unit
val get_user_assert : Db_types.kernel_function ->
Cil_types.stmt -> before:bool -> Cil_types.code_annotation list

Status of properties


module Status: sig .. end
Weakest preconditions