Module InferModules.PulseAbductiveDomain

module AbstractAddress = PulseDomain.AbstractAddress
module Attributes = PulseDomain.Attributes
include AbstractDomain.NoJoin
val (<=) : lhs:t -> rhs:t -> bool

the implication relation: lhs <= rhs means lhs |- rhs

val mk_initial : InferIR.Procdesc.t -> t
module Stack : sig ... end

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

module Memory : sig ... end

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

val is_local : InferIR.Var.t -> t -> bool
module PrePost : sig ... end
val discard_unreachable : t -> t

garbage collect unreachable addresses in the state to make it smaller, just for convenience and keep its size down