Module AltErgoLib.IntervalCalculus

include Sig_rel.RELATION
type t
val empty : Expr.Set.t list -> t
val assume : t -> Uf.t -> Shostak.Combine.r Sig_rel.input list -> t * Shostak.Combine.r Sig_rel.result
val query : t -> Uf.t -> Shostak.Combine.r Sig_rel.input -> Th_util.answer
val case_split : t -> Uf.t -> for_model:bool -> (Shostak.Combine.r Xliteral.view * bool * Th_util.lit_origin) list

case_split env returns a list of equalities

val add : t -> Uf.t -> Shostak.Combine.r -> Expr.t -> t * (Shostak.Combine.r Xliteral.view * Explanation.t) list

add a representant to take into account

val instantiate : do_syntactic_matching:bool -> (Matching_types.info Expr.Map.t * Expr.t list Expr.Map.t Symbols.Map.t) -> t -> Uf.t -> (Expr.t -> Expr.t -> bool) -> t * Sig_rel.instances
val print_model : Stdlib.Format.formatter -> t -> (Expr.t * Shostak.Combine.r) list -> unit
val new_terms : t -> Expr.Set.t
val assume_th_elt : t -> Expr.th_elt -> Explanation.t -> t