AltErgoLib.Uftype r = Shostak.Combine.rExtensible type for global domains identifiers, see GlobalDomains.
module type GlobalDomain = sig ... endModule 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 ... endThis module provides a registry type to access and update a single "current" instance associated with multiple global domain types.
module LX = Shostak.Lval empty : tval find : t -> Expr.t -> r * Explanation.tval find_r : t -> r -> r * Explanation.tval domains : t -> GlobalDomains.tval set_domains : t -> GlobalDomains.t -> tunion uf r1 r2 ex records the equality r1 = r2 with explanation ex, merging the corresponding equivalence classes.
It returns a pair new_uf, touched of the new environment and a list of semantic values whose representative has changed (the new representative can be obtained by calling Uf.find_r new_uf).
val distinct : t -> r list -> Explanation.t -> tval are_equal : t -> Expr.t -> Expr.t -> added_terms:bool -> Th_util.answerval are_distinct : t -> Expr.t -> Expr.t -> Th_util.answerval are_equal_r : t -> r -> r -> Th_util.answerare_equal_r uf r1 r2 is the same as are_equal but works on semantic values instead of terms.
val are_distinct_r : t -> r -> r -> Th_util.answerare_distinct_r uf r1 r2 is the same as are_distinct but works on semantic values instead of terms.
val class_of : t -> Expr.t -> Expr.Set.tval rclass_of : t -> r -> Expr.Set.tval cl_extract : t -> Expr.Set.t listval print : t -> unitval assign_next : t -> (r Xliteral.view * bool * Th_util.lit_origin) list * tval extract_concrete_model :
prop_model:Expr.Set.t ->
defaults:(Id.typed * Expr.t) list ->
t ->
Models.tCompute a counterexample using the Uf environment