## `Cat::FactorialDomain` -- the category of factorial domains

#### Introduction

`Cat::FactorialDomain` represents the category of factorial domains (i.e. unique factorisation domains).

#### Generating the category

`Cat::FactorialDomain()`

#### Categories

`Cat::GcdDomain`

#### Details

- A `Cat::FactorialDomain` is an integral domain with gcd where an unique factorization can be computed.
- The factorization methods are named `"factor"` and `"sqrfree"` and must return elements of the domain `Factored` over this domain.

#### Method factor: unique factorization

- `factor(dom x)`
- - Must return the unique factorization of `x` as an element of the domain `Factored` over this domain, such that the factors have the type `"irreducible"`.
  - See `Factored` for details about the representation of the factorization.

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

- `irreducible(dom x)`
- - Returns `TRUE` if `x` is an irreducible element. The default implementation provided uses the method `"factor"` and therefore may be quite inefficient.

#### Method sqrfree: square-free factorization

- `sqrfree(dom x)`
- - Returns the square-free factorization of `x` as an element of the domain `Factored` over this domain, such that the factors have the type `"sqrfree"` or `"irreducible"`.
  - See `Factored` for details about the representation of the factorization.
  - The default implementation provided here uses the method `"factor"` and therefore may be very inefficient.

#### Changes

- The methods `"factor"` and `"sqrfree"` must return elements of the domain `Factored` now.
- The method `"Factor"` was removed.

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