Legend:
Library
Module
Module type
Parameter
Class
Class type
Module signature for global domains used by the union-find module.
A global domain records a set of potentially correlated values for multiple variables at once. This is typically, but not necessarily, an associative mapping of variables to their own independent domain.
Note: This module signature only contains the bare minimum for interaction with the union-find module to be able to update the global domains appropriately when new terms are introduced and equivalence classes are merged. In particular, it purposefully provides no facility to access or modify the global domain to allow more flexibility in the to the implementer.
Limit the type of terms that this module cares about. Only substitutions of representatives for which filter_ty (type_info r) holds will be propagated to this module.
subst ~ex rr nrr t is called when the representatives rr and nrr are merged with explanation ex. nrr is the new representative; rr should no longer be tracked and the intersection of domains should be associated with nrr.
The explanation ex justifies the equality rr = nrr.