IsUniqueFactorizationRing( R )
IsUniqueFactorizationRing returns true if R
is a unique factorization ring and false otherwise.
A ring R is called a unique factorization ring if it is an integral ring, and every element has a unique factorization into irreducible elements, i.e., a unique representation as product of irreducibles (see IsIrreducible). Unique in this context means unique up to permutations of the factors and up to multiplication of the factors by units (see Units).
gap> IsUniqueFactorizationRing( Integers );
true
IsUniqueFactorizationRing tests whether R.isUniqueFactorizationRing
is bound. If the flag is bound, it returns this value. If this flag has no
assigned value it calls the function R.operations.IsUniqueFactorizationRing(
R ), remembers the returned value in R.isUniqueFactorizationRing,
and returns it.
The default function called this way is RingOps.IsUniqueFactorizationRing,
which just signals an error, since there is no generic method to test whether
a ring is a unique factorization ring. Special categories of rings thus must
either have the flag bound or overlay this default function.