Module AltErgoLib.Uf

Uf module

type t
type _ id = ..

Extensible type for global domains identifiers, see GlobalDomains.

val src : Logs.src
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 add : t -> Expr.t -> t * Expr.t list
val mem : t -> Expr.t -> bool
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 already_distinct : t -> r list -> bool
val class_of : t -> Expr.t -> AltErgoLib.Expr.Set.t
val rclass_of : t -> r -> AltErgoLib.Expr.Set.t
val cl_extract : t -> AltErgoLib.Expr.Set.t list
val print : t -> unit
val term_repr : t -> Expr.t -> Expr.t
val make : t -> Expr.t -> r
val is_normalized : t -> r -> bool
val assign_next : t -> (r Xliteral.view * bool * Th_util.lit_origin) list * t

Counterexample function

val extract_concrete_model : prop_model:AltErgoLib.Expr.Set.t -> declared_ids:Id.typed list -> t -> Models.t

Compute a counterexample using the Uf environment

val save_cache : unit -> unit

saves the module's cache

val reinit_cache : unit -> unit

reinitializes the module's cache with the saved one