Module Spec.D

include module type of struct include PartitionDomain.ExpPartitions end
type t = [
  1. | `Lifted of SetDomain.Make(B).t
  2. | `Top
]
val equal : t -> t -> bool
val hash : t -> int
val compare : t -> t -> int
val pretty : unit -> t -> Printable.Pretty.doc
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
type elt = B.t
val empty : unit -> t
val is_empty : t -> bool
val mem : elt -> t -> bool
val add : elt -> t -> t
val singleton : elt -> t
val union : t -> t -> t
val inter : t -> t -> t
val diff : t -> t -> t
val subset : t -> t -> bool
val disjoint : t -> t -> bool
val iter : (elt -> unit) -> t -> unit
val map : (elt -> elt) -> t -> t
val fold : (elt -> 'a -> 'a) -> t -> 'a -> 'a
val for_all : (elt -> bool) -> t -> bool
val exists : (elt -> bool) -> t -> bool
val partition : (elt -> bool) -> t -> t * t
val cardinal : t -> int
val elements : t -> elt list
val of_list : elt list -> t
val min_elt : t -> elt
val max_elt : t -> elt
val choose : t -> elt
type set = B.t
type partition = t
val show : 'a -> string
val top : unit -> E.t
val bot : unit -> E.t
val is_top : E.t -> bool
val is_bot : E.t -> bool
val leq : E.t -> E.t -> bool
val pretty_diff : unit -> (t * E.t) -> GoblintCil.Pretty.doc
val meet : E.t -> E.t -> E.t
val join : E.t -> E.t -> E.t
val remove : B.elt -> E.t -> E.t
val add_eq : (B.elt * B.elt) -> E.t -> E.t
val filter : (B.elt -> bool) -> E.t -> E.t
val find_class : CilType.Exp.t -> t -> set option
val widen : E.t -> E.t -> E.t
val narrow : E.t -> E.t -> E.t
val printXml : 'a BatInnerIO.output -> t -> unit
val invariant : scope:GoblintCil.fundec -> t -> [ `Bot | `Lifted of Invariant.ExpLat.t | `Top ]