Module Term_based.Union_find
These functors are placed above a union-find aware non-relational domain (i.e. Nonrelational.MakeUF). They create union between terms when certain operations are performed (for instance Term_based_sig.Domain_S.Binary_Forward.biadd) with one constant argument.
module MakeAdditive
(C :
Term_based_sig.DOMAIN_WITH_UNION
with type ('a, 'b) Terms.Relation.t = ('a, 'b) Terms.Relations.Additive.t) :
Term_based_sig.Domain_S
with type t = C.t
and module Terms = C.Terms
and module Query = C.QueryBuilder for the simple "constant difference relation" y = x + c. This relation is defined at Terms.Relations.Additive.
module MakeLinearTwoVarEquality
(C :
Term_based_sig.DOMAIN_WITH_UNION
with type ('a, 'b) Terms.Relation.t =
('a, 'b) Terms.Relations.LinearTwoVarEquality.t) :
Term_based_sig.Domain_S
with type t = C.t
and module Terms = C.Terms
and module Query = C.QueryBuilder for a linear two variable equality relation f1*x + f2*y + 0, also called TVPE. This relation is defined at Terms.Relations.LinearTwoVarEquality.