The morphism
Optionalsubset: ChalkboardSet<U>
The subset of the codomain (optional, defaults to the codomain)
const Z4 = Chalkboard.abal.group(Chalkboard.abal.Z(4), (a, b) => (a + b) % 4, 0, (a) => (4 - a) % 4);
const Z2 = Chalkboard.abal.group(Chalkboard.abal.Z(2), (a, b) => (a + b) % 2, 0, (a) => a);
const parity = Chalkboard.abal.homomorphism(Z4, Z2, (x) => x % 2);
const even = Chalkboard.abal.preimage(parity, Chalkboard.abal.set([0])); // Returns {0, 2}
Calculates the preimage of a morphism, either for its codomain or for a subset of its codomain.