module Create:
module F: V.F
val is_comp : IsComp.t -> 'a F.term -> F.pred
val is_array : Ctypes.arrayinfo -> 'a F.term -> F.pred
val has_type : F.abstract -> Cil_types.logic_type -> F.pred
type
bindings = binding list
type
context = {
|
pool : F.pool ; |
|
mutable bindings : bindings ; |
}
val closed : bindings
val alpha : F.var -> F.var option
val forall : F.var list -> F.pred -> F.pred
val exists : F.var list -> F.pred -> F.pred
val fresh : string -> Formula.kind -> F.var
val pool : unit -> F.pool
val vkind_of_var : F.var -> Formula.kind
val term_such_that : Formula.tau ->
('a F.term -> F.pred) ->
'a F.term
val subst : F.var ->
'a F.term -> F.pred -> F.pred
val close : binding list -> F.pred -> F.pred
val has_context_vars : F.var list -> F.pred -> bool
val push : string ->
F.pool -> bindings -> context
val pop : string -> context -> bindings
val flush : string ->
context -> F.pred -> F.pred
val kill : string -> context -> unit
val apply : (F.var * F.var) list ->
'a F.term -> 'a F.term
val havoc_inductive : F.havoc list -> F.pred -> F.pred
val havoc_static : F.havoc list -> F.pred -> F.pred