Module PulseAbductiveDomain.Stack

stack operations like PulseDomain.Stack but that also take care of propagating facts to the precondition

val add : InferIR.Var.t -> PulseDomain.Stack.value -> t -> t
val remove_vars : InferIR.Var.t list -> t -> t
val fold : (InferIR.Var.t -> PulseDomain.Stack.value -> 'a -> 'a) -> t -> 'a -> 'a
val find_opt : InferIR.Var.t -> t -> PulseDomain.Stack.value option
val eval : InferIR.Var.t -> t -> t * PulseDomain.AddrTracePair.t

return the value of the variable in the stack or create a fresh one if needed

val mem : InferIR.Var.t -> t -> bool
val exists : (InferIR.Var.t -> PulseDomain.Stack.value -> bool) -> t -> bool