Integral Domains, Euclidean Domains
Euclidean Domains
A euclidean domain is a ring with a metric d()
that maps the nonzero elements of the ring into the positive integers,
and satisfies
d(a*b) ≥ d(a),
and for any nonzero a and b there is c and r,
such that a = c*b+r, and r = 0 or d(r) < d(b).
By convention, we write d(0) = 0.
Verify the following about d().

d(1) is minimal, as 1 divides everything else.

d(u) = d(1) for any unit u, as 1 and u divide each other.

A field is a euclidean domain with d(x) = d(1); everything's a unit.

d(a) = d(b) if a and b are associates; they divide each other.

If d(u) = d(1), 1 = c*u + r,
d(r) cannot be less than d(u),
d(r) = 0, r = 0, and u is a unit.

u is a unit iff d(u) = d(1).

d() can be normalized by subtracting d(1)1 across the board,
whence d(1) = 1.
In fact d(u) = 1 for all units.

The integers form a eudlidean domain, with d(n) = n.

The gaussian integers form a euclidean domain, where d(z)
measures the square of the distance to the origin.

Adjoining the square root of 2 to the integers produces a
euclidean domain,
using the same d(z) metric as above.
You can see how we're going to run the
gcd algorithm
with the remainders getting smaller and smaller, at least according to d().
This will allow us to prove unique factorization,
just like we did
for the integers.
But we'll get to that later.