% For copyright see ../etc/copyright
\documentclass{article}
\usepackage{axiom}
\begin{document}
\title{\$SPAD/src/algebra attribs.spad}
\author{The Axiom Team}
\maketitle
\begin{abstract}
\end{abstract}
\eject
\tableofcontents
\eject
\section{Attributes}

<<category ATFINAG finiteAggregate>>=
)abbrev category ATFINAG finiteAggregate
++ Description:
++ The class of all aggregates with a finite number of elements.
finiteAggregate(): Category == with ()
@

<<category ATSHMUT shallowlyMutable>>=
)abbrev category ATSHMUT shallowlyMutable
++ Description:
++ The class of all domains which have have immediate components
++ that are updateable (mutable).
++ Note: the properties of any component domain are irrevelant to the
++ \spad{shallowlyMutable} proper.
shallowlyMutable(): Category == with ()
@

<<category ATUNIKN unitsKnown>>=
)abbrev category ATUNIKN unitsKnown
++ Description:
++ The class of all monoids (multiplicative semigroups with a 1)
++ such that the operation \spadfun{recip} can only return "failed"
++ if its argument is not a unit.
unitsKnown(): Category == with ()
@

<<category ATNZDIV noZeroDivisors>>=
)abbrev category ATNZDIV noZeroDivisors
++ Description:
++ The class of all semirings such that \spad{x * y \~~= 0} implies
++ both x and y are non-zero
noZeroDivisors(): Category == with ()
@

<<category ATCUNOR canonicalUnitNormal>>=
)abbrev category ATCUNOR canonicalUnitNormal
++ Description:
++ The class of all integral domains such that we can choose a canonical
++ representative for each class of associate elements, that is
++ \spad{associates?(a,b)} returns true if and only if
++ \spad{unitCanonical(a) = unitCanonical(b)}.
canonicalUnitNormal(): Category == with ()
@

<<category ATCANCL canonicalsClosed>>=
)abbrev category ATCANCL canonicalsClosed
++ Description:
++ The class of all integral domains such that
++ \spad{unitCanonical(a)*unitCanonical(b) = unitCanonical(a*b)}.
canonicalsClosed(): Category == with ()
@

<<category ATARBPR arbitraryPrecision>>=
)abbrev category ATARBPR arbitraryPrecision
++ Description:
++ Approximate numbers for which the user can set the
++ precision for subsequent calculations.
arbitraryPrecision(): Category == with ()
@

<<category ATARBEX arbitraryExponent>>=
)abbrev category ATARBEX arbitraryExponent
++ Description:
++ Approximate numbers with arbitrarily large exponents
arbitraryExponent(): Category == with ()
@

<<category ATAPPRO Approximate>>=
)abbrev category ATAPPRO Approximate
++ Description:
++ An approximation to the real numbers.
Approximate(): Category == with ()
@

<<category ATPOSET partiallyOrderedSet>>=
)abbrev category ATPOSET partiallyOrderedSet
++ Description:
++ The class of all parially ordered sets, that is domains
++ with \spadop{<} which is transitive,
++ but \spad{not(a < b or a = b)}
++ does not necessarily imply \spad{b<a}.
partiallyOrderedSet(): Category == with ()
@

<<category ATADDVA additiveValuation>>=
)abbrev category ATADDVA additiveValuation
++ Description:
++ The class of all euclidean domains such that
++ \spad{euclideanSize(a*b)=euclideanSize(a)+euclideanSize(b)}.
additiveValuation(): Category == with ()
@

<<category ATMULVA multiplicativeValuation>>=
)abbrev category ATMULVA multiplicativeValuation
++ Description:
++ The class of all euclidean domains such that
++ \spad{euclideanSize(a*b)=euclideanSize(a)*euclideanSize(b)}.
multiplicativeValuation(): Category == with ()
@

<<category ATCANON Canonical>>=
)abbrev category ATCANON Canonical
++ Description:
++ The class of all domains which have canonical representaion,
++ that is if mathematicaly equal elements have the same data structures.
Canonical(): Category == with ()
@

<<category ATCS CommutativeStar>>=
)abbrev category ATCS CommutativeStar
++ Description:
++ The class of all commutative semigroups in multiplicative
++ notation.  In other words domains \spad{D} with
++ \spad{"*": (D,D) -> D} which is commutative.
++ Typically applied to rings.
CommutativeStar(): Category == with ()
@

\eject
\begin{thebibliography}{99}
\bibitem{1} nothing
\end{thebibliography}
\end{document}
