Module PulseAbductiveDomain.PreDomain
The inferred pre-condition at each program point, biabduction style.
NOTE: PreDomain and Domain theoretically differ in that PreDomain should be the inverted lattice of Domain, but since we never actually join states or check implication the two collapse into one. *
type t= private BaseDomain.t
val yojson_of_t : t -> Yojson.Safe.tval empty : tval update : ?stack:BaseStack.t -> ?heap:BaseMemory.t -> ?attrs:BaseAddressAttributes.t -> t -> tval filter_addr : f:(PulseBasicInterface.AbstractValue.t -> bool) -> t -> tfilter both heap and attrs
val filter_addr_with_discarded_addrs : f:(PulseBasicInterface.AbstractValue.t -> bool) -> t -> t * PulseBasicInterface.AbstractValue.t listcompute new state containing only reachable addresses in its heap and attributes, as well as the list of discarded unreachable addresses
val subst_var : (PulseBasicInterface.AbstractValue.t * PulseBasicInterface.AbstractValue.t) -> t -> t PulseBasicInterface.SatUnsat.tval pp : F.formatter -> t -> unit