PPMonoidHom is used for representing homomorphisms between
PPMonoids. Each indeterminate in the domain monoid maps into an
element of the codomain (i.e. a power product).
Here is a list of the (pseudo-)ctors for
PPMonoidElemwhose i-th entry is the image of the i-th indet in
IndetIndexesis a vector of indices of the indets which map to themselves, the others map to 1.
PPMonoidHom object may be applied to a value by using normal
function call syntax: for instance
PPMonoidElem t = ...; PPMonoidHom phi = ...; cout << "phi applied to t gives " << phi(t) << endl;
PPMonoidHom you can find out its domain and codomain:
||the domain of
||the codomain of
Add some more special cases: e.g. permutations of the indets, and the "identity" between PPMonoids which differ only in their orderings.
Should we allow partial homs? e.g. one which maps
(so odd powers of
x have no image).