Module ValueDomain.Offs

type idx = IndexDomain.t
val is_definite : t -> bool
val contains_index : t -> bool
val add_offset : t -> t -> t
val remove_offset : t -> t
val prefix : t -> t -> t option
val map_indices : (idx -> idx) -> t -> t
val to_cil : t -> GoblintCil.offset
val to_exp : t -> GoblintCil.exp Offset_intf.offs
val to_cil_offset : t -> GoblintCil.offset
val cmp_zero_offset : t -> [ `MayZero | `MustNonzero | `MustZero ]
val type_of : base:GoblintCil.typ -> t -> GoblintCil.typ
val equal : t -> t -> bool
val hash : t -> int
val compare : t -> t -> int
val show : t -> string
val pretty : unit -> t -> Printable.Pretty.doc
val printXml : 'a BatInnerIO.output -> t -> unit
val name : unit -> string
val to_yojson : t -> Yojson.Safe.t
val tag : t -> int
val arbitrary : unit -> t QCheck.arbitrary
val relift : t -> t
val leq : t -> t -> bool
val join : t -> t -> t
val meet : t -> t -> t
val widen : t -> t -> t
val narrow : t -> t -> t
val pretty_diff : unit -> (t * t) -> Lattice.Pretty.doc
val bot : unit -> t
val is_bot : t -> bool
val top : unit -> t
val is_top : t -> bool
val top_indices : t -> t
val of_exp : GoblintCil.exp Offset_intf.offs -> t
val to_index : ?typ:GoblintCil.typ -> t -> idx
val semantic_equal : typ1:GoblintCil.typ -> t -> typ2:GoblintCil.typ -> t -> bool option