Frama-C API - Consolidation
Consolidation of a property status according to the (consolidated) status of the hypotheses of the property.
who do the job and, for each of them, who find which issues.
type consolidated_status = private
| Never_tried
(*Nobody tries to verify the property. The argument is for internal use only
*)| Considered_valid
(*Nobody succeeds to verify the property, but it is expected to be verified by another way (manual review, ...)
*)| Valid of Emitter.Usable_emitter.Set.t
(*The verification of this property is fully done. No work to do anymore for this property. The argument is the emitters who did the job.
*)| Valid_under_hyp of pending
(*The verification of this property is locally done, but it remains properties to verify in order to close the work.
*)| Unknown of pending
(*The verification of this property is not finished: the property itself remains to verify and it may also remain other pending properties. NB: the pendings contains the property itself.
*)| Invalid of Emitter.Usable_emitter.Set.t
(*The verification of this property is fully done. All its hypotheses have been verified, but it is false: that is a true bug.
*)| Invalid_under_hyp of pending
(*This property is locally false, but it remains properties to verify in order to be sure that is a bug.
*)| Invalid_but_dead of pending
(*This property is locally false, but there is other bugs in hypotheses
*)| Valid_but_dead of pending
(*This property is locally true, but there is bugs in hypotheses
*)| Unknown_but_dead of pending
(*This property is locally unknown, but there is other bugs in hypotheses
*)| Inconsistent of string
(*Inconsistency detected when computing the consolidated status. The string explains what is the issue for the end-user.
*)
include Datatype.S with type t = consolidated_status
include Datatype.S_no_copy with type t = consolidated_status
val packed_descr : Structural_descr.pack
Packed version of the descriptor.
val reprs : t list
List of representants of the descriptor.
val hash : t -> int
Hash function: same spec than Hashtbl.hash
.
val pretty : Stdlib.Format.formatter -> t -> unit
Pretty print each value in an user-friendly way.
val mem_project : (Project_skeleton.t -> bool) -> t -> bool
mem_project f x
must return true
iff there is a value p
of type Project.t
in x
such that f p
returns true
.
val get : Property.t -> t
val get_conjunction : Property.t list -> t