Module Gil_syntax.Spec
type st = {ss_pre : Asrt.t Utils.Location.located;(*Precondition
*)ss_posts : Asrt.t Utils.Location.located list;(*Postcondition
*)ss_variant : Expr.t option;(*Variant
*)ss_flag : Flag.t;(*Return flag
*)ss_to_verify : bool;(*Should the spec be verified?
*)ss_label : (string * string list) option;
}Single specification
type t = {spec_name : string;(*Procedure/spec name
*)spec_params : string list;(*Procedure/spec parameters
*)spec_sspecs : st list;(*List of single specifications
*)spec_normalised : bool;(*If the spec is already normalised
*)spec_incomplete : bool;(*If the spec is incomplete
*)spec_to_verify : bool;(*Should the spec be verified?
*)spec_location : Utils.Location.t option;
}Full specification
val s_init :
?ss_label:(string * string list) ->
Asrt.t Utils.Location.located ->
Asrt.t Utils.Location.located list ->
Expr.t option ->
Flag.t ->
bool ->
sts_init ~ss_label ss_pre ss_posts ss_flag ss_to_verify creates a single specification with the given values
val init :
string ->
string list ->
st list ->
bool ->
bool ->
bool ->
Utils.Location.t option ->
tinit spec_name spec_params spec_sspecs spec_normalised spec_to_verify creates a full specification with the given values
val get_params : t -> string listReturn the list of parameters of a Spec
val pp_sspec : Stdlib.Format.formatter -> st -> unitval pp : Stdlib.Format.formatter -> t -> unitval parameter_types : (string, Pred.t) Utils.Prelude.Hashtbl.t -> t -> tMakes the types of parameters explicit in the assertions
val label_vars_to_set :
('a * Utils.Containers.SS.elt list) option ->
('a * Utils.Containers.SS.t) optionSerialization
val to_yojson : t -> Yojson.Safe.tval of_yojson : Yojson.Safe.t -> (t, string) Result.tval hash_of_t : t -> string