AltErgoLib.Uf
type r = Shostak.Combine.r
Extensible type for global domains identifiers, see GlobalDomains
.
module type GlobalDomain = sig ... end
Module signature for global domains used by the union-find module.
type 'a global_domain = (module GlobalDomain with type t = 'a)
The type of global domain modules with a given storage type (see GlobalDomain
).
module GlobalDomains : sig ... end
This module provides a registry type to access and update a single "current" instance associated with multiple global domain types.
module LX = Shostak.L
val empty : t
val find : t -> Expr.t -> r * Explanation.t
val find_r : t -> r -> r * Explanation.t
val domains : t -> GlobalDomains.t
val set_domains : t -> GlobalDomains.t -> t
val union :
t ->
r ->
r ->
Explanation.t ->
t * (r * (r * r * Explanation.t) list * r) list
val distinct : t -> r list -> Explanation.t -> t
val are_equal : t -> Expr.t -> Expr.t -> added_terms:bool -> Th_util.answer
val are_distinct : t -> Expr.t -> Expr.t -> Th_util.answer
val cl_extract : t -> AltErgoLib.Expr.Set.t list
val print : t -> unit
val assign_next : t -> (r Xliteral.view * bool * Th_util.lit_origin) list * t