Jsil_syntax.Pred
module SSubst = Gillian.Symbolic.Subst
module L = Logging
module Type = Gillian.Gil_syntax.Type
module Expr = Gillian.Gil_syntax.Expr
type t = {
name : string;
Name of the predicate
*)num_params : int;
Number of parameters
*)params : (string * Type.t option) list;
Actual parameters
*)ins : int list;
Ins
*)definitions : ((string * string list) option * Asrt.t) list;
Predicate definitions
*)facts : Expr.t list;
Facts about the predicate
*)pure : bool;
Is the predicate pure
*)abstract : bool;
Is the predicate abstract
*)nounfold : bool;
Should the predicate be unfolded?
*)normalised : bool;
If the predicate has been previously normalised
*)}
JSIL logic predicate.
Creates/populates a Hashtbl from the predicate list pred_defs
val pp : Stdlib.Format.formatter -> t -> unit