Category of integral domains with gcd
Cat::GcdDomain represents the category of integral domains with a gcd.
A Cat::GcdDomain is an integral domain where the greatest common divisor of two elements can be computed by the method "gcd".
The method must satisfy the following conditions:
x and y must divide dom::gcd(x,y),
if z divides both x and y, then z must divide dom::gcd(x,y),
if a domain has the axiom Ax::canonicalUnitNormal then dom::gcd(x,y) must be equal to dom::unitNormal(dom::gcd(x,y)).
Remember that x divides y if _divide(x,y) does not return FAIL.