Module RegionDomain.Reg

include sig ... end
type t = RegPart.t * RegMap.t
val is_top : t -> bool
val top : unit -> t
val is_bot : t -> bool
val bot : unit -> t
val narrow : t -> t -> t
val widen : t -> t -> t
val meet : t -> t -> t
val join : t -> t -> t
val leq : t -> t -> bool
val expand_fst : bool
val expand_snd : bool
val equal : t -> t -> Ppx_deriving_runtime.bool
val compare : t -> t -> Ppx_deriving_runtime.int
val hash : t -> int
val relift : t -> t
val tag : 'a -> 'b
val show : (RegPart.t * RegMap.t) -> string
val name : unit -> string
val pretty : unit -> (RegPart.t * RegMap.t) -> Printable.Pretty.doc
val printXml : 'a BatInnerIO.output -> (RegPart.t * RegMap.t) -> unit
val to_yojson : (RegPart.t * RegMap.t) -> [> `Assoc of (string * Yojson.Safe.t) list ]
val arbitrary : unit -> (RegPart.t * RegMap.t) QCheck.arbitrary
val pretty_diff : unit -> (t * t) -> Lattice.Pretty.doc
type set = RS.t
val closure : RegPart.t -> RegMap.t -> RegMap.t
val is_global : (GoblintCil.varinfo * 'a) -> bool
val remove : GoblintCil.varinfo -> ('a * RegMap.t) -> 'b * RegMap.t
val remove_vars : GoblintCil.varinfo list -> t -> t
val kill : Basetype.Variables.t -> t -> t
val kill_vars : Basetype.Variables.t list -> t -> t
val replace : GoblintCil.varinfo -> GoblintCil.exp -> t -> t
val update : Basetype.Variables.t -> GoblintCil.exp -> t -> t
type eval_t = (bool * elt * MusteqDomain.F.t) option
val eval_exp : GoblintCil.exp -> eval_t
val add_set : ?escape:bool -> set -> RegMap.key list -> t -> t
val assign : GoblintCil.lval -> GoblintCil.exp -> t -> t
val assign_bullet : GoblintCil.lval -> t -> t
val assign_escape : GoblintCil.exp -> t -> t