## `Cat::Field` -- the category of fields

#### Introduction

`Cat::Field` represents the category of fields.

#### Generating the category

`Cat::Field()`

#### Categories

`Cat::EuclideanDomain`

, `Cat::FactorialDomain`, `Cat::SkewField`

#### Axioms

`Ax::canonicalUnitNormal`

, `Ax::closedUnitNormals`

#### Details

- A `Cat::Field` is a factorial domain, an Euclidean domain and a skew field. As Euclidean domain it has a commutative multiplication `*` (`_mult`) and as skew field the multiplication is invertible.
- Many of the methods defined for factorial and Euclidean domains are trivial for a field.

#### Method associates: test for associate elements

- `associates(dom x, dom y)`
- - Returns `TRUE` iff `x` and `y` are associate elements. For a field this is true iff both arguments are nonzero.

#### Method _divide: exact division

- `_divide(dom x, dom y)`
- - Returns `x * y^(-1)`.

#### Method divide: division with reminder

- `divide(dom x, dom y)`
- - Returns the list `[_divide(x,y), dom::zero]`.

#### Method divides: test if division is exact

- `divides(dom x, dom y)`
- - Always returns `TRUE`.

#### Method euclideanDegree: returns Euclidean degree

- `euclideanDegree(dom x)`
- - Returns `0` if `x` is zero and `1` otherwise.

#### Method factor: unique factorization

- `factor(dom x)`
- - Returns a trivial factorization, consisting of `x` to the power of 1 only. The factorization is returned as an object of the domain `Factored` and represents an irreducible factorization over this domain.

#### Method gcd: greatest common divisor

- `gcd(dom x...)`
- - Returns the gcd of the arguments: `dom::one` if at least one argument is nonzero and `dom::zero` otherwise.

#### Method irreducible: tests if element is irreducible

- `irreducible(dom x)`
- - Always returns `FALSE`.

#### Method isUnit: tests if element is an unit

- `isUnit(dom x)`
- - Returns `TRUE` iff `x` is nonzero.

#### Method quo: returns Euclidean quotient

- `quo(dom x, dom y)`
- - Returns `_divide(x, y)`.

#### Method rem: returns Euclidean reminder

- `rem(dom x, dom y)`
- - Always returns `dom::zero`.

#### Method sqrfree: square-free factorization

- `sqrfree(dom x)`
- - Returns a trivial factorization, consisting of `x` to the power of 1 only. The factorization is returned as an object of the domain `Factored` and represents an irreducible factorization over this domain.

#### Method unitNormal: unit normal form

- `unitNormal(dom x)`
- - Returns `dom::zero` if `x` is zero and `dom::one` otherwise.

#### Method unitNormalRep: unit normal representation

- `unitNormalRep(dom x)`
- - Returns the list `[dom::one, x^(-1), x]` if `x` is nonzero and `[dom::zero, dom::one, dom::one]` if `x` is zero.

#### Changes

- no changes

Do you have questions or comments?
Copyright © SciFace Software GmbH & Co. KG 2000