diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet index 96d8704..9c3ebe5 100644 --- a/books/bookvol10.2.pamphlet +++ b/books/bookvol10.2.pamphlet @@ -52,10 +52,12 @@ \ \\${\bf\Leftarrow{}}${``#1''} (#2) \ref{#1} on page~\pageref{#1}} %% %% cross will put the category and function in the index +%% cross will leave the funcname so it can be put inline. %% \newcommand{\cross}[2]{% e.g. \pagefrom{cat}{funcname} \index{#1!#2}% -\index{#2!#1}} +\index{#2!#1}% +#2} % special meanings for math characters @@ -298,7 +300,8 @@ This is the root of the category hierarchy and is not represented by code. {\bf Exports:}\\ \begin{tabular}{ll} - ?=? & ?\~{}=? +\cross{BASTYPE}{?=?} & +\cross{BASTYPE}{?\~{}=?} \end{tabular} These are directly exported but not implemented: @@ -366,11 +369,7 @@ digraph pic { \pageto{SetCategory}{SETCAT} \pagefrom{Category}{CATEGORY} -{\bf Exports:} -\begin{verbatim} - coerce -\end{verbatim} - +{\bf Exports:}\\ \cross{KOERCE}{coerce} This is directly exported but not implemented: @@ -430,11 +429,7 @@ digraph pic { \pageto{Collection}{CLAGG} \pagefrom{Category}{CATEGORY} -{\bf Exports:} -\begin{verbatim} - convert -\end{verbatim} - +{\bf Exports:}\\ \cross{KONVERT}{convert} This is directly exported but not implemented: @@ -550,11 +545,7 @@ digraph pic { \pageto{EltableAggregate}{ELTAGG} \pagefrom{Category}{CATEGORY} -{\bf Exports:} -\begin{verbatim} - ?.? -\end{verbatim} - +{\bf Exports:}\\ \cross{ELTAB}{?.?} This syntax for elt is supported by the interpreter and compiler. @@ -620,12 +611,10 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lll} - coerce & retract & retractIfCan -\end{tabular} - -\cross{RETRACT}{coerce} -\cross{RETRACT}{retract} +\cross{RETRACT}{coerce} & +\cross{RETRACT}{retract} & \cross{RETRACT}{retractIfCan} +\end{tabular} These are directly exported but not implemented: \begin{verbatim} @@ -770,15 +759,13 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{llllll} - empty? & eq? & less? & more? & sample & size? -\end{tabular} - -\cross{AGG}{empty?} -\cross{AGG}{eq?} -\cross{AGG}{less?} -\cross{AGG}{more?} -\cross{AGG}{sample} +\cross{AGG}{empty?} & +\cross{AGG}{eq?} & +\cross{AGG}{less?} & +\cross{AGG}{more?} & +\cross{AGG}{sample} & \cross{AGG}{size?} +\end{tabular} These are implemented by this category: \begin{verbatim} @@ -882,14 +869,12 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - elt & qelt & qsetelt! & setelt & ?.? -\end{tabular} - -\cross{ELTAGG}{elt} -\cross{ELTAGG}{qelt} -\cross{ELTAGG}{qsetelt!} -\cross{ELTAGG}{setelt} +\cross{ELTAGG}{elt} & +\cross{ELTAGG}{qelt} & +\cross{ELTAGG}{qsetelt!} & +\cross{ELTAGG}{setelt} & \cross{ELTAGG}{?.?} +\end{tabular} These are part of this category's direct exports: \begin{verbatim} @@ -1003,14 +988,12 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} -coerce & hash & latex & ?=? & ?\~{}=? -\end{tabular} - -\cross{SETCAT}{coerce} -\cross{SETCAT}{hash} -\cross{SETCAT}{latex} -\cross{SETCAT}{?=?} +\cross{SETCAT}{coerce} & +\cross{SETCAT}{hash} & +\cross{SETCAT}{latex} & +\cross{SETCAT}{?=?} & \cross{SETCAT}{?\~{}=?} +\end{tabular} These are implemented by this category: \begin{verbatim} @@ -1106,18 +1089,16 @@ digraph pic { \pagefrom{SetCategory}{SETCAT} {\bf Exports:}\\ -\begin{tabular}{lllllll} - coerce & hash & latex & ?*? & ?+? & ?=? & ?\~{}=? +\begin{tabular}{lllll} +\cross{ABELSG}{coerce} & +\cross{ABELSG}{hash} & +\cross{ABELSG}{latex} & +\cross{ABELSG}{?*?} & +\cross{ABELSG}{?+?} \\ +\cross{ABELSG}{?=?} & +\cross{ABELSG}{?\~{}=?} &&& \end{tabular} -\cross{ABELSG}{coerce} -\cross{ABELSG}{hash} -\cross{ABELSG}{latex} -\cross{ABELSG}{?*?} -\cross{ABELSG}{?+?} -\cross{ABELSG}{?=?} -\cross{ABELSG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} ?+? : (%,%) -> % @@ -1225,19 +1206,17 @@ digraph pic { \pagefrom{SetCategory}{SETCAT} {\bf Exports:}\\ -\begin{tabular}{lllllllll} - coerce & hash & index & latex & lookup & random & size & ?=? & ?\~{}=? -\end{tabular} - +\begin{tabular}{lllll} \cross{FINITE}{coerce} -\cross{FINITE}{hash} -\cross{FINITE}{index} -\cross{FINITE}{latex} -\cross{FINITE}{lookup} -\cross{FINITE}{random} -\cross{FINITE}{size} -\cross{FINITE}{?=?} -\cross{FINITE}{?\~{}=?} +\cross{FINITE}{hash} & +\cross{FINITE}{index} & +\cross{FINITE}{latex} & +\cross{FINITE}{lookup} & +\cross{FINITE}{random} \\ +\cross{FINITE}{size} & +\cross{FINITE}{?=?} & +\cross{FINITE}{?\~{}=?} && +\end{tabular} These are directly exported but not implemented: \begin{verbatim} @@ -1346,39 +1325,33 @@ digraph pic { \pagefrom{Evalable}{EVALAB} \pagefrom{SetCategory}{SETCAT} - {\bf Exports:}\\ -\begin{tabular}{lllllll} - any? & coerce & copy & count & empty & empty? & eq?\\ - eval & every? & hash & latex & less? & map & map!\\ - members & member? & more? & parts & sample & size? & \#?\\ - ?=? & ?\~{}=? & & & & &\\ +\begin{tabular}{lllll} +\cross{HOAGG}{any?} & +\cross{HOAGG}{coerce} & +\cross{HOAGG}{copy} & +\cross{HOAGG}{count} & +\cross{HOAGG}{empty} \\ +\cross{HOAGG}{empty?} & +\cross{HOAGG}{eq?} & +\cross{HOAGG}{eval} & +\cross{HOAGG}{every?} & +\cross{HOAGG}{hash} \\ +\cross{HOAGG}{latex} & +\cross{HOAGG}{less?} & +\cross{HOAGG}{map} & +\cross{HOAGG}{map!} & +\cross{HOAGG}{members} \\ +\cross{HOAGG}{member?} & +\cross{HOAGG}{more?} & +\cross{HOAGG}{parts} & +\cross{HOAGG}{sample} & +\cross{HOAGG}{size?} \\ +\cross{HOAGG}{\#?} & +\cross{HOAGG}{?=?} & +\cross{HOAGG}{?\~{}=?} && \end{tabular} -\cross{HOAGG}{any?} -\cross{HOAGG}{coerce} -\cross{HOAGG}{copy} -\cross{HOAGG}{count} -\cross{HOAGG}{empty} -\cross{HOAGG}{empty?} -\cross{HOAGG}{eq?} -\cross{HOAGG}{eval} -\cross{HOAGG}{every?} -\cross{HOAGG}{hash} -\cross{HOAGG}{latex} -\cross{HOAGG}{less?} -\cross{HOAGG}{map} -\cross{HOAGG}{map!} -\cross{HOAGG}{members} -\cross{HOAGG}{member?} -\cross{HOAGG}{more?} -\cross{HOAGG}{parts} -\cross{HOAGG}{sample} -\cross{HOAGG}{size?} -\cross{HOAGG}{\#?} -\cross{HOAGG}{?=?} -\cross{HOAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} map : ((S -> S),%) -> % @@ -1570,23 +1543,20 @@ digraph pic { \pagefrom{SetCategory}{SETCAT} {\bf Exports:}\\ -\begin{tabular}{llllll} - coerce & hash & latex & max & min & ?$<$?\\ - ?$<=$? & ?=? & ?$>$? & ?$>=$? & ?\~{}=? &\\ +\begin{tabular}{lllll} +\cross{ORDSET}{coerce} & +\cross{ORDSET}{hash} & +\cross{ORDSET}{latex} & +\cross{ORDSET}{max} & +\cross{ORDSET}{min} \\ +\cross{ORDSET}{?$<$?} & +\cross{ORDSET}{?$<=$?} & +\cross{ORDSET}{?=?} & +\cross{ORDSET}{?$>$?} & +\cross{ORDSET}{?$>=$?} \\ +\cross{ORDSET}{?\~{}=?} &&&& \end{tabular} -\cross{ORDSET}{coerce} -\cross{ORDSET}{hash} -\cross{ORDSET}{latex} -\cross{ORDSET}{max} -\cross{ORDSET}{min} -\cross{ORDSET}{?$<$?} -\cross{ORDSET}{?$<=$?} -\cross{ORDSET}{?=?} -\cross{ORDSET}{?$>$?} -\cross{ORDSET}{?$>=$?} -\cross{ORDSET}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} ? Boolean @@ -1713,20 +1683,17 @@ operator ``*''. A Semigroup $G(S,*)$ is: \pagefrom{SetCategory}{SETCAT} {\bf Exports:}\\ -\begin{tabular}{llll} - coerce & hash & latex & ?*? \\ - ?**? & ?=? & ?\^{}? & ?\~{}=? +\begin{tabular}{lllll} +\cross{SGROUP}{coerce} & +\cross{SGROUP}{hash} & +\cross{SGROUP}{latex} & +\cross{SGROUP}{?*?} & +\cross{SGROUP}{?**?} \\ +\cross{SGROUP}{?=?} & +\cross{SGROUP}{?\^{}?} & +\cross{SGROUP}{?~=?} && \end{tabular} -\cross{SGROUP}{coerce} -\cross{SGROUP}{hash} -\cross{SGROUP}{latex} -\cross{SGROUP}{?*?} -\cross{SGROUP}{?**?} -\cross{SGROUP}{?=?} -\cross{SGROUP}{?\^{}?} -\cross{SGROUP}{?~=?} - These are directly exported but not implemented: \begin{verbatim} ?*? : (%,%) -> % @@ -1837,18 +1804,16 @@ digraph pic { \pagefrom{SetCategory}{SETCAT} {\bf Exports:}\\ -\begin{tabular}{lllllll} - coerce & hash & init & latex & nextItem & ?=? & ?\~{}=? +\begin{tabular}{lllll} +\cross{STEP}{coerce} & +\cross{STEP}{hash} & +\cross{STEP}{init} & +\cross{STEP}{latex} & +\cross{STEP}{?=?} \\ +\cross{STEP}{?~=?} & +\cross{STEP}{nextItem} &&& \end{tabular} -\cross{STEP}{coerce} -\cross{STEP}{hash} -\cross{STEP}{init} -\cross{STEP}{latex} -\cross{STEP}{?=?} -\cross{STEP}{?~=?} -\cross{STEP}{nextItem} - These are directly exported but not implemented: \begin{verbatim} init : () -> % @@ -1946,21 +1911,18 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - 0 & coerce & hash & latex & sample\\ - zero? & ?*? & ?+? & ?=? & ?\~{}=? +\cross{ABELMON}{0} & +\cross{ABELMON}{coerce} & +\cross{ABELMON}{hash} & +\cross{ABELMON}{latex} & +\cross{ABELMON}{sample} \\ +\cross{ABELMON}{zero?} & +\cross{ABELMON}{?*?} & +\cross{ABELMON}{?+?} & +\cross{ABELMON}{?=?} & +\cross{ABELMON}{?\~{}=?} \\ \end{tabular} -\cross{ABELMON}{0} -\cross{ABELMON}{coerce} -\cross{ABELMON}{hash} -\cross{ABELMON}{latex} -\cross{ABELMON}{sample} -\cross{ABELMON}{zero?} -\cross{ABELMON}{?*?} -\cross{ABELMON}{?+?} -\cross{ABELMON}{?=?} -\cross{ABELMON}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} 0 : () -> % @@ -2088,41 +2050,36 @@ digraph pic { \pagefrom{HomogeneousAggregate}{HOAGG} {\bf Exports:}\\ -\begin{tabular}{lllllll} - any? & bag & coerce & copy & count & empty & empty?\\ - eq? & eval & every? & extract! & hash & insert! & inspect\\ - latex & less? & map & map! & member? & members & more?\\ - parts & sample & size? & \#? & ?=? & ?\~{}=? &\\ +\begin{tabular}{lllll} +\cross{BGAGG}{any?} & +\cross{BGAGG}{bag} & +\cross{BGAGG}{coerce} & +\cross{BGAGG}{copy} & +\cross{BGAGG}{count} \\ +\cross{BGAGG}{empty} & +\cross{BGAGG}{empty?} & +\cross{BGAGG}{eq?} & +\cross{BGAGG}{eval} & +\cross{BGAGG}{every?} \\ +\cross{BGAGG}{extract!} & +\cross{BGAGG}{hash} & +\cross{BGAGG}{insert!} & +\cross{BGAGG}{inspect} & +\cross{BGAGG}{latex} \\ +\cross{BGAGG}{less?} & +\cross{BGAGG}{map} & +\cross{BGAGG}{map!} & +\cross{BGAGG}{member?} & +\cross{BGAGG}{members} \\ +\cross{BGAGG}{more?} & +\cross{BGAGG}{parts} & +\cross{BGAGG}{sample} & +\cross{BGAGG}{size?} & +\cross{BGAGG}{\#?} \\ +\cross{BGAGG}{?=?} & +\cross{BGAGG}{?\~{}=?} &&& \end{tabular} -\cross{BGAGG}{any?} -\cross{BGAGG}{bag} -\cross{BGAGG}{coerce} -\cross{BGAGG}{copy} -\cross{BGAGG}{count} -\cross{BGAGG}{empty} -\cross{BGAGG}{empty?} -\cross{BGAGG}{eq?} -\cross{BGAGG}{eval} -\cross{BGAGG}{every?} -\cross{BGAGG}{extract!} -\cross{BGAGG}{hash} -\cross{BGAGG}{insert!} -\cross{BGAGG}{inspect} -\cross{BGAGG}{latex} -\cross{BGAGG}{less?} -\cross{BGAGG}{map} -\cross{BGAGG}{map!} -\cross{BGAGG}{member?} -\cross{BGAGG}{members} -\cross{BGAGG}{more?} -\cross{BGAGG}{parts} -\cross{BGAGG}{sample} -\cross{BGAGG}{size?} -\cross{BGAGG}{\#?} -\cross{BGAGG}{?=?} -\cross{BGAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} extract! : % -> S @@ -2258,45 +2215,39 @@ digraph pic { \pagefrom{HomogeneousAggregate}{HOAGG} {\bf Exports:}\\ -\begin{tabular}{llllll} - any? & coerce & construct & copy & convert & count\\ - empty & empty? & eq? & eval & every? & find\\ - hash & latex & less? & map & map! & member?\\ - members & more? & parts & reduce & remove & removeDuplicates\\ - sample & select & size? & \#? & ?=? & ?\~{}=? +\begin{tabular}{lllll} +\cross{CLAGG}{any?} & +\cross{CLAGG}{coerce} & +\cross{CLAGG}{construct} & +\cross{CLAGG}{copy} & +\cross{CLAGG}{convert} \\ +\cross{CLAGG}{count} & +\cross{CLAGG}{empty} & +\cross{CLAGG}{empty?} & +\cross{CLAGG}{eq?} & +\cross{CLAGG}{eval} \\ +\cross{CLAGG}{every?} & +\cross{CLAGG}{find} & +\cross{CLAGG}{hash} & +\cross{CLAGG}{latex} & +\cross{CLAGG}{less?} \\ +\cross{CLAGG}{map} & +\cross{CLAGG}{map!} & +\cross{CLAGG}{member?} & +\cross{CLAGG}{members} & +\cross{CLAGG}{more?} \\ +\cross{CLAGG}{parts} & +\cross{CLAGG}{reduce} & +\cross{CLAGG}{remove} & +\cross{CLAGG}{removeDuplicates} & +\cross{CLAGG}{sample} \\ +\cross{CLAGG}{select} & +\cross{CLAGG}{size?} & +\cross{CLAGG}{\#?} & +\cross{CLAGG}{?=?} & +\cross{CLAGG}{?\~{}=?} \\ \end{tabular} -\cross{CLAGG}{any?} -\cross{CLAGG}{coerce} -\cross{CLAGG}{construct} -\cross{CLAGG}{copy} -\cross{CLAGG}{convert} -\cross{CLAGG}{count} -\cross{CLAGG}{empty} -\cross{CLAGG}{empty?} -\cross{CLAGG}{eq?} -\cross{CLAGG}{eval} -\cross{CLAGG}{every?} -\cross{CLAGG}{find} -\cross{CLAGG}{hash} -\cross{CLAGG}{latex} -\cross{CLAGG}{less?} -\cross{CLAGG}{map} -\cross{CLAGG}{map!} -\cross{CLAGG}{member?} -\cross{CLAGG}{members} -\cross{CLAGG}{more?} -\cross{CLAGG}{parts} -\cross{CLAGG}{reduce} -\cross{CLAGG}{remove} -\cross{CLAGG}{removeDuplicates} -\cross{CLAGG}{sample} -\cross{CLAGG}{select} -\cross{CLAGG}{size?} -\cross{CLAGG}{\#?} -\cross{CLAGG}{?=?} -\cross{CLAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} construct: List S -> % @@ -2506,53 +2457,46 @@ digraph pic { \pagefrom{HomogeneousAggregate}{HOAGG} {\bf Exports:}\\ -\begin{tabular}{lllllll} - any? & coerce & copy & count & elt & empty & empty? \\ - entries & entry? & eq? & eval & every? & fill! & first \\ - hash & index? & indices & latex & less? & map & map! \\ - maxIndex & member? & members & minIndex & more? & parts & qelt \\ - qsetelt! & sample & setelt & size? & swap! & ?.? & ?\~{}=?\\ - \#? & ?=? & & & & &\\ +\begin{tabular}{lllll} +\cross{IXAGG}{any?} & +\cross{IXAGG}{coerce} & +\cross{IXAGG}{copy} & +\cross{IXAGG}{count} & +\cross{IXAGG}{elt} \\ +\cross{IXAGG}{empty} & +\cross{IXAGG}{empty?} & +\cross{IXAGG}{entries} & +\cross{IXAGG}{entry?} & +\cross{IXAGG}{eq?} \\ +\cross{IXAGG}{eval} & +\cross{IXAGG}{every?} & +\cross{IXAGG}{fill!} & +\cross{IXAGG}{first} & +\cross{IXAGG}{hash} \\ +\cross{IXAGG}{index?} & +\cross{IXAGG}{indices} & +\cross{IXAGG}{latex} & +\cross{IXAGG}{less?} & +\cross{IXAGG}{map} \\ +\cross{IXAGG}{map!} & +\cross{IXAGG}{maxIndex} & +\cross{IXAGG}{member?} & +\cross{IXAGG}{members} & +\cross{IXAGG}{minIndex} \\ +\cross{IXAGG}{more?} & +\cross{IXAGG}{parts} & +\cross{IXAGG}{qelt} & +\cross{IXAGG}{qsetelt!} & +\cross{IXAGG}{sample} \\ +\cross{IXAGG}{setelt} & +\cross{IXAGG}{size?} & +\cross{IXAGG}{swap!} & +\cross{IXAGG}{?.?} & +\cross{IXAGG}{?\~{}=?} \\ +\cross{IXAGG}{\#?} & +\cross{IXAGG}{?=?} &&& \end{tabular} -\cross{IXAGG}{any?} -\cross{IXAGG}{coerce} -\cross{IXAGG}{copy} -\cross{IXAGG}{count} -\cross{IXAGG}{elt} -\cross{IXAGG}{empty} -\cross{IXAGG}{empty?} -\cross{IXAGG}{entries} -\cross{IXAGG}{entry?} -\cross{IXAGG}{eq?} -\cross{IXAGG}{eval} -\cross{IXAGG}{every?} -\cross{IXAGG}{fill!} -\cross{IXAGG}{first} -\cross{IXAGG}{hash} -\cross{IXAGG}{index?} -\cross{IXAGG}{indices} -\cross{IXAGG}{latex} -\cross{IXAGG}{less?} -\cross{IXAGG}{map} -\cross{IXAGG}{map!} -\cross{IXAGG}{maxIndex} -\cross{IXAGG}{member?} -\cross{IXAGG}{members} -\cross{IXAGG}{minIndex} -\cross{IXAGG}{more?} -\cross{IXAGG}{parts} -\cross{IXAGG}{qelt} -\cross{IXAGG}{qsetelt!} -\cross{IXAGG}{sample} -\cross{IXAGG}{setelt} -\cross{IXAGG}{size?} -\cross{IXAGG}{swap!} -\cross{IXAGG}{?.?} -\cross{IXAGG}{?\~{}=?} -\cross{IXAGG}{\#?} -\cross{IXAGG}{?=?} - These are directly exported but not implemented: \begin{verbatim} index? : (Index,%) -> Boolean @@ -2770,30 +2714,28 @@ digraph pic { \pagepic{ps/v102monoid.ps}{MONOID}{0.75} {\bf See:}\\ +\pageto{Group}{GROUP} \pageto{OrderedMonoid}{ORDMON} +\pageto{OrderedRing}{ORDRING} +\pageto{Ring}{RING} \pagefrom{SemiGroup}{SGROUP} {\bf Exports:}\\ \begin{tabular}{lllll} - 1 & coerce & hash & latex & one?\\ - recip & sample & ?*? & ?=? & ?\~{}=?\\ - ?**? & ?\^{}? & ?\^{}? &&\\ +\cross{MONOID}{1} & +\cross{MONOID}{coerce} & +\cross{MONOID}{hash} & +\cross{MONOID}{latex} & +\cross{MONOID}{one?} \\ +\cross{MONOID}{recip} & +\cross{MONOID}{sample} & +\cross{MONOID}{?*?} & +\cross{MONOID}{?=?} & +\cross{MONOID}{?\~{}=?} \\ +\cross{MONOID}{?**?} & +\cross{MONOID}{?\^{}?} &&& \end{tabular} -\cross{MONOID}{1} -\cross{MONOID}{coerce} -\cross{MONOID}{hash} -\cross{MONOID}{latex} -\cross{MONOID}{one?} -\cross{MONOID}{recip} -\cross{MONOID}{sample} -\cross{MONOID}{?*?} -\cross{MONOID}{?=?} -\cross{MONOID}{?\~{}=?} -\cross{MONOID}{?**?} -\cross{MONOID}{?\^{}?} - - These are directly exported but not implemented: \begin{verbatim} 1 : () -> % @@ -2931,27 +2873,23 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - coerce & hash & index & latex & lookup \\ - max & min & random & size & ?\~{}=? \\ - ?$<$? & ?$<=$? & ?=? & ?$>$? & ?$>=$? \\ +\cross{ORDFIN}{coerce} & +\cross{ORDFIN}{hash} & +\cross{ORDFIN}{index} & +\cross{ORDFIN}{latex} & +\cross{ORDFIN}{lookup} \\ +\cross{ORDFIN}{max} & +\cross{ORDFIN}{min} & +\cross{ORDFIN}{random} & +\cross{ORDFIN}{size} & +\cross{ORDFIN}{?\~{}=?} \\ +\cross{ORDFIN}{?$<$?} & +\cross{ORDFIN}{?$<=$?} & +\cross{ORDFIN}{?=?} & +\cross{ORDFIN}{?$>$?} & +\cross{ORDFIN}{?$>=$?} \\ \end{tabular} -\cross{ORDFIN}{coerce} -\cross{ORDFIN}{hash} -\cross{ORDFIN}{index} -\cross{ORDFIN}{latex} -\cross{ORDFIN}{lookup} -\cross{ORDFIN}{max} -\cross{ORDFIN}{min} -\cross{ORDFIN}{random} -\cross{ORDFIN}{size} -\cross{ORDFIN}{?\~{}=?} -\cross{ORDFIN}{?$<$?} -\cross{ORDFIN}{?$<=$?} -\cross{ORDFIN}{?=?} -\cross{ORDFIN}{?$>$?} -\cross{ORDFIN}{?$>=$?} - These exports come from OrderedSet(): \begin{verbatim} coerce : % -> OutputForm @@ -3050,52 +2988,45 @@ digraph pic { \pagefrom{HomogeneousAggregate}{HOAGG} {\bf Exports:}\\ -\begin{tabular}{llllll} - any? & child? & children & coerce & copy & count \\ - cyclic? & distance & empty & empty? & eq? & eval \\ - every? & hash & latex & leaf? & leaves & less? \\ - map & map! & member? & members & more? & nodes \\ - node? & parts & sample & setchildren! & setelt & setvalue!\\ - size? & value & ?.value & ?\~{}=? & \#? & ?=? \\ +\begin{tabular}{lllll} +\cross{RCAGG}{any?} & +\cross{RCAGG}{child?} & +\cross{RCAGG}{children} & +\cross{RCAGG}{coerce} & +\cross{RCAGG}{copy} \\ +\cross{RCAGG}{count} & +\cross{RCAGG}{cyclic?} & +\cross{RCAGG}{distance} & +\cross{RCAGG}{empty} & +\cross{RCAGG}{empty?} \\ +\cross{RCAGG}{eq?} & +\cross{RCAGG}{eval} & +\cross{RCAGG}{every?} & +\cross{RCAGG}{hash} & +\cross{RCAGG}{latex} \\ +\cross{RCAGG}{leaf?} & +\cross{RCAGG}{leaves} & +\cross{RCAGG}{less?} & +\cross{RCAGG}{map} & +\cross{RCAGG}{map!} \\ +\cross{RCAGG}{member?} & +\cross{RCAGG}{members} & +\cross{RCAGG}{more?} & +\cross{RCAGG}{nodes} & +\cross{RCAGG}{node?} \\ +\cross{RCAGG}{parts} & +\cross{RCAGG}{sample} & +\cross{RCAGG}{setchildren!} & +\cross{RCAGG}{setelt} & +\cross{RCAGG}{setvalue!} \\ +\cross{RCAGG}{size?} & +\cross{RCAGG}{value} & +\cross{RCAGG}{?.value} & +\cross{RCAGG}{?\~{}=?} & +\cross{RCAGG}{\#?} \\ +\cross{RCAGG}{?=?} &&&& \end{tabular} -\cross{RCAGG}{any?} -\cross{RCAGG}{child?} -\cross{RCAGG}{children} -\cross{RCAGG}{coerce} -\cross{RCAGG}{copy} -\cross{RCAGG}{count} -\cross{RCAGG}{cyclic?} -\cross{RCAGG}{distance} -\cross{RCAGG}{empty} -\cross{RCAGG}{empty?} -\cross{RCAGG}{eq?} -\cross{RCAGG}{eval} -\cross{RCAGG}{every?} -\cross{RCAGG}{hash} -\cross{RCAGG}{latex} -\cross{RCAGG}{leaf?} -\cross{RCAGG}{leaves} -\cross{RCAGG}{less?} -\cross{RCAGG}{map} -\cross{RCAGG}{map!} -\cross{RCAGG}{member?} -\cross{RCAGG}{members} -\cross{RCAGG}{more?} -\cross{RCAGG}{nodes} -\cross{RCAGG}{node?} -\cross{RCAGG}{parts} -\cross{RCAGG}{sample} -\cross{RCAGG}{setchildren!} -\cross{RCAGG}{setelt} -\cross{RCAGG}{setvalue!} -\cross{RCAGG}{size?} -\cross{RCAGG}{value} -\cross{RCAGG}{?.value} -\cross{RCAGG}{?\~{}=?} -\cross{RCAGG}{\#?} -\cross{RCAGG}{?=?} - These are directly exported but not implemented: \begin{verbatim} children : % -> List % @@ -3262,66 +3193,51 @@ digraph pic { \pagefrom{RecursiveAggregate}{RCAGG} {\bf Exports:}\\ -\begin{tabular}{llllll} - any? & children & child? & coerce & copy & count \\ - count & cyclic? & distance & empty & empty? & eq? \\ - eval & eval & eval & eval & every? & hash \\ - latex & leaf? & leaves & left & less? & map \\ - map! & member? & members & more? & nodes & node? \\ - parts & right & sample & setchildren! & setelt & setelt \\ - setelt & setleft! & setright! & setvalue! & size? & value \\ - \#? & ?=? & ?\~{}=? & ?.right & ?.left & ?.value \\ +\begin{tabular}{lllll} +\cross{BRAGG}{any?} & +\cross{BRAGG}{children} & +\cross{BRAGG}{child?} & +\cross{BRAGG}{coerce} & +\cross{BRAGG}{copy} \\ +\cross{BRAGG}{count} & +\cross{BRAGG}{cyclic?} & +\cross{BRAGG}{distance} & +\cross{BRAGG}{empty} & +\cross{BRAGG}{empty?} \\ +\cross{BRAGG}{eq?} & +\cross{BRAGG}{eval} & +\cross{BRAGG}{every?} & +\cross{BRAGG}{hash} & +\cross{BRAGG}{latex} \\ +\cross{BRAGG}{leaf?} & +\cross{BRAGG}{leaves} & +\cross{BRAGG}{left} & +\cross{BRAGG}{less?} & +\cross{BRAGG}{map} \\ +\cross{BRAGG}{map!} & +\cross{BRAGG}{member?} & +\cross{BRAGG}{members} & +\cross{BRAGG}{more?} & +\cross{BRAGG}{nodes} \\ +\cross{BRAGG}{node?} & +\cross{BRAGG}{parts} & +\cross{BRAGG}{right} & +\cross{BRAGG}{sample} & +\cross{BRAGG}{setchildren!} \\ +\cross{BRAGG}{setelt} & +\cross{BRAGG}{setleft!} & +\cross{BRAGG}{setright!} & +\cross{BRAGG}{setvalue!} & +\cross{BRAGG}{size?} \\ +\cross{BRAGG}{value} & +\cross{BRAGG}{\#?} & +\cross{BRAGG}{?=?} & +\cross{BRAGG}{?\~{}=?} & +\cross{BRAGG}{?.right} \\ +\cross{BRAGG}{?.left} & +\cross{BRAGG}{?.value} &&& \end{tabular} -\cross{BRAGG}{any?} -\cross{BRAGG}{children} -\cross{BRAGG}{child?} -\cross{BRAGG}{coerce} -\cross{BRAGG}{copy} -\cross{BRAGG}{count} -\cross{BRAGG}{count} -\cross{BRAGG}{cyclic?} -\cross{BRAGG}{distance} -\cross{BRAGG}{empty} -\cross{BRAGG}{empty?} -\cross{BRAGG}{eq?} -\cross{BRAGG}{eval} -\cross{BRAGG}{eval} -\cross{BRAGG}{eval} -\cross{BRAGG}{eval} -\cross{BRAGG}{every?} -\cross{BRAGG}{hash} -\cross{BRAGG}{latex} -\cross{BRAGG}{leaf?} -\cross{BRAGG}{leaves} -\cross{BRAGG}{left} -\cross{BRAGG}{less?} -\cross{BRAGG}{map} -\cross{BRAGG}{map!} -\cross{BRAGG}{member?} -\cross{BRAGG}{members} -\cross{BRAGG}{more?} -\cross{BRAGG}{nodes} -\cross{BRAGG}{node?} -\cross{BRAGG}{parts} -\cross{BRAGG}{right} -\cross{BRAGG}{sample} -\cross{BRAGG}{setchildren!} -\cross{BRAGG}{setelt} -\cross{BRAGG}{setelt} -\cross{BRAGG}{setelt} -\cross{BRAGG}{setleft!} -\cross{BRAGG}{setright!} -\cross{BRAGG}{setvalue!} -\cross{BRAGG}{size?} -\cross{BRAGG}{value} -\cross{BRAGG}{\#?} -\cross{BRAGG}{?=?} -\cross{BRAGG}{?\~{}=?} -\cross{BRAGG}{?.right} -\cross{BRAGG}{?.left} -\cross{BRAGG}{?.value} - These are directly exported but not implemented: \begin{verbatim} left : % -> % @@ -3546,27 +3462,24 @@ digraph pic { {\bf See:}\\ \pageto{AbelianGroup}{ABELGRP} +\pageto{OrderedCancellationAbelianMonoid}{OCAMON} \pagefrom{AbelianMonoid}{ABELMON} {\bf Exports:}\\ \begin{tabular}{lllll} - 0 & coerce & hash & latex & sample\\ - subtractIfCan & zero? & ?\~{}=? & ?*? & ?+?\\ - ?=?&&&& +\cross{CABMON}{0} & +\cross{CABMON}{coerce} & +\cross{CABMON}{hash} & +\cross{CABMON}{latex} & +\cross{CABMON}{sample} \\ +\cross{CABMON}{subtractIfCan} & +\cross{CABMON}{zero?} & +\cross{CABMON}{?\~{}=?} & +\cross{CABMON}{?*?} & +\cross{CABMON}{?+?} \\ +\cross{CABMON}{?=?} &&&& \end{tabular} -\cross{CABMON}{0} -\cross{CABMON}{coerce} -\cross{CABMON}{hash} -\cross{CABMON}{latex} -\cross{CABMON}{sample} -\cross{CABMON}{subtractIfCan} -\cross{CABMON}{zero?} -\cross{CABMON}{?\~{}=?} -\cross{CABMON}{?*?} -\cross{CABMON}{?+?} -\cross{CABMON}{?=?} - These are directly exported but not implemented: \begin{verbatim} subtractIfCan : (%,%) -> Union(%,"failed") @@ -3677,54 +3590,46 @@ digraph pic { \pagefrom{Collection}{CLAGG} {\bf Exports:}\\ -\begin{tabular}{llllll} - any? & bag & coerce & construct & convert & copy \\ - count & dictionary & empty & empty? & eq? & eval \\ - every? & extract! & find & hash & insert! & inspect \\ - latex & less? & map & map! & member? & members \\ - more? & parts & reduce & remove & remove! & removeDuplicates \\ - sample & select & select! & size? & \#? & ?=? \\ - ?\~{}=? &&&&&\\ +\begin{tabular}{lllll} +\cross{DIOPS}{any?} & +\cross{DIOPS}{bag} & +\cross{DIOPS}{coerce} & +\cross{DIOPS}{construct} & +\cross{DIOPS}{convert} \\ +\cross{DIOPS}{copy} & +\cross{DIOPS}{count} & +\cross{DIOPS}{dictionary} & +\cross{DIOPS}{empty} & +\cross{DIOPS}{empty?} \\ +\cross{DIOPS}{eq?} & +\cross{DIOPS}{eval} & +\cross{DIOPS}{every?} & +\cross{DIOPS}{extract!} & +\cross{DIOPS}{find} \\ +\cross{DIOPS}{hash} & +\cross{DIOPS}{insert!} & +\cross{DIOPS}{inspect} & +\cross{DIOPS}{latex} & +\cross{DIOPS}{less?} \\ +\cross{DIOPS}{map} & +\cross{DIOPS}{map!} & +\cross{DIOPS}{member?} & +\cross{DIOPS}{members} & +\cross{DIOPS}{more?} \\ +\cross{DIOPS}{parts} & +\cross{DIOPS}{reduce} & +\cross{DIOPS}{remove} & +\cross{DIOPS}{remove!} & +\cross{DIOPS}{removeDuplicates} \\ +\cross{DIOPS}{sample} & +\cross{DIOPS}{select} & +\cross{DIOPS}{select!} & +\cross{DIOPS}{size?} & +\cross{DIOPS}{\#?} \\ +\cross{DIOPS}{?=?} & +\cross{DIOPS}{?\~{}=?} &&& \end{tabular} -\cross{DIOPS}{any?} -\cross{DIOPS}{bag} -\cross{DIOPS}{coerce} -\cross{DIOPS}{construct} -\cross{DIOPS}{convert} -\cross{DIOPS}{copy} -\cross{DIOPS}{count} -\cross{DIOPS}{dictionary} -\cross{DIOPS}{empty} -\cross{DIOPS}{empty?} -\cross{DIOPS}{eq?} -\cross{DIOPS}{eval} -\cross{DIOPS}{every?} -\cross{DIOPS}{extract!} -\cross{DIOPS}{find} -\cross{DIOPS}{hash} -\cross{DIOPS}{insert!} -\cross{DIOPS}{inspect} -\cross{DIOPS}{latex} -\cross{DIOPS}{less?} -\cross{DIOPS}{map} -\cross{DIOPS}{map!} -\cross{DIOPS}{member?} -\cross{DIOPS}{members} -\cross{DIOPS}{more?} -\cross{DIOPS}{parts} -\cross{DIOPS}{reduce} -\cross{DIOPS}{remove} -\cross{DIOPS}{remove!} -\cross{DIOPS}{removeDuplicates} -\cross{DIOPS}{sample} -\cross{DIOPS}{select} -\cross{DIOPS}{select!} -\cross{DIOPS}{size?} -\cross{DIOPS}{\#?} -\cross{DIOPS}{?=?} -\cross{DIOPS}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} dictionary : List S -> % @@ -3902,66 +3807,57 @@ digraph pic { \pagefrom{RecursiveAggregate}{RCAGG} {\bf Exports:}\\ -\begin{tabular}{llllll} - any? & children & child? & coerce & concat! & copy \\ - count & count & cyclic? & distance & empty & empty? \\ - eq? & eval & eval & eval & eval & every? \\ - hash & head & last & latex & leaf? & leaves \\ - less? & map & map! & member? & members & more? \\ - next & nodes & node? & parts & previous & sample \\ - setchildren! & setelt & setnext! & setprevious! & setvalue! & size? \\ - tail & value & \#? & ?=? & ?\~{}=? & ?.value \\ +\begin{tabular}{lllll} +\cross{DLAGG}{any?} & +\cross{DLAGG}{children} & +\cross{DLAGG}{child?} & +\cross{DLAGG}{coerce} & +\cross{DLAGG}{concat!} \\ +\cross{DLAGG}{copy} & +\cross{DLAGG}{count} & +\cross{DLAGG}{count} & +\cross{DLAGG}{cyclic?} & +\cross{DLAGG}{distance} \\ +\cross{DLAGG}{empty} & +\cross{DLAGG}{empty?} & +\cross{DLAGG}{eq?} & +\cross{DLAGG}{eval} & +\cross{DLAGG}{eval} \\ +\cross{DLAGG}{eval} & +\cross{DLAGG}{eval} & +\cross{DLAGG}{every?} & +\cross{DLAGG}{hash} & +\cross{DLAGG}{head} \\ +\cross{DLAGG}{last} & +\cross{DLAGG}{latex} & +\cross{DLAGG}{leaf?} & +\cross{DLAGG}{leaves} & +\cross{DLAGG}{less?} \\ +\cross{DLAGG}{map} & +\cross{DLAGG}{map!} & +\cross{DLAGG}{member?} & +\cross{DLAGG}{members} & +\cross{DLAGG}{more?} \\ +\cross{DLAGG}{next} & +\cross{DLAGG}{nodes} & +\cross{DLAGG}{node?} & +\cross{DLAGG}{parts} & +\cross{DLAGG}{previous} \\ +\cross{DLAGG}{sample} & +\cross{DLAGG}{setchildren!} & +\cross{DLAGG}{setelt} & +\cross{DLAGG}{setnext!} & +\cross{DLAGG}{setprevious!} \\ +\cross{DLAGG}{setvalue!} & +\cross{DLAGG}{size?} & +\cross{DLAGG}{tail} & +\cross{DLAGG}{value} & +\cross{DLAGG}{\#?} \\ +\cross{DLAGG}{?=?} & +\cross{DLAGG}{?\~{}=?} & +\cross{DLAGG}{?.value} && \end{tabular} -\cross{DLAGG}{any?} -\cross{DLAGG}{children} -\cross{DLAGG}{child?} -\cross{DLAGG}{coerce} -\cross{DLAGG}{concat!} -\cross{DLAGG}{copy} -\cross{DLAGG}{count} -\cross{DLAGG}{count} -\cross{DLAGG}{cyclic?} -\cross{DLAGG}{distance} -\cross{DLAGG}{empty} -\cross{DLAGG}{empty?} -\cross{DLAGG}{eq?} -\cross{DLAGG}{eval} -\cross{DLAGG}{eval} -\cross{DLAGG}{eval} -\cross{DLAGG}{eval} -\cross{DLAGG}{every?} -\cross{DLAGG}{hash} -\cross{DLAGG}{head} -\cross{DLAGG}{last} -\cross{DLAGG}{latex} -\cross{DLAGG}{leaf?} -\cross{DLAGG}{leaves} -\cross{DLAGG}{less?} -\cross{DLAGG}{map} -\cross{DLAGG}{map!} -\cross{DLAGG}{member?} -\cross{DLAGG}{members} -\cross{DLAGG}{more?} -\cross{DLAGG}{next} -\cross{DLAGG}{nodes} -\cross{DLAGG}{node?} -\cross{DLAGG}{parts} -\cross{DLAGG}{previous} -\cross{DLAGG}{sample} -\cross{DLAGG}{setchildren!} -\cross{DLAGG}{setelt} -\cross{DLAGG}{setnext!} -\cross{DLAGG}{setprevious!} -\cross{DLAGG}{setvalue!} -\cross{DLAGG}{size?} -\cross{DLAGG}{tail} -\cross{DLAGG}{value} -\cross{DLAGG}{\#?} -\cross{DLAGG}{?=?} -\cross{DLAGG}{?\~{}=?} -\cross{DLAGG}{?.value} - These are directly exported but not implemented: \begin{verbatim} concat! : (%,%) -> % if $ has shallowlyMutable @@ -4111,6 +4007,176 @@ digraph pic { @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{Group}{GROUP} +\pagepic{ps/v102group.ps}{GROUP}{0.65} + +{\bf See:}\\ +\pagefrom{Monoid}{MONOID} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{GROUP}{1} & +\cross{GROUP}{coerce} & +\cross{GROUP}{commutator} & +\cross{GROUP}{conjugate} & +\cross{GROUP}{hash} \\ +\cross{GROUP}{inv} & +\cross{GROUP}{latex} & +\cross{GROUP}{one?} & +\cross{GROUP}{recip} & +\cross{GROUP}{sample} \\ +\cross{GROUP}{?\~{}=?} & +\cross{GROUP}{?*?} & +\cross{GROUP}{?**?} & +\cross{GROUP}{?/?} & +\cross{GROUP}{?=?} \\ +\cross{GROUP}{?\^{}?} &&&& +\end{tabular} + +These are directly exported but not implemented: +\begin{verbatim} + inv : % -> % +\end{verbatim} + +These are implemented by this category: +\begin{verbatim} + commutator : (%,%) -> % + conjugate : (%,%) -> % + recip : % -> Union(%,"failed") + ?/? : (%,%) -> % + ?^? : (%,Integer) -> % + ?**? : (%,Integer) -> % +\end{verbatim} + +These exports come from Aggregate: +\begin{verbatim} +\end{verbatim} + +These exports come from Monoid(): +\begin{verbatim} + 1 : () -> % + coerce : % -> OutputForm + hash : % -> SingleInteger + latex : % -> String + one? : % -> Boolean + sample : () -> % + ?^? : (%,NonNegativeInteger) -> % + ?^? : (%,PositiveInteger) -> % + ?**? : (%,NonNegativeInteger) -> % + ?**? : (%,PositiveInteger) -> % + ?*? : (%,%) -> % + ?=? : (%,%) -> Boolean + ?~=? : (%,%) -> Boolean +\end{verbatim} + +<>= +)abbrev category GROUP Group +++ Author: +++ Date Created: +++ Date Last Updated: +++ Basic Functions: +++ Related Constructors: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ References: +++ Description: +++ The class of multiplicative groups, i.e. monoids with +++ multiplicative inverses. +++ +++ Axioms: +++ \spad{leftInverse("*":(%,%)->%,inv)}\tab{30}\spad{ inv(x)*x = 1 } +++ \spad{rightInverse("*":(%,%)->%,inv)}\tab{30}\spad{ x*inv(x) = 1 } +Group(): Category == Monoid with + inv: % -> % + ++ inv(x) returns the inverse of x. + "/": (%,%) -> % + ++ x/y is the same as x times the inverse of y. + "**": (%,Integer) -> % + ++ x**n returns x raised to the integer power n. + "^": (%,Integer) -> % + ++ x^n returns x raised to the integer power n. + unitsKnown + ++ unitsKnown asserts that recip only returns + ++ "failed" for non-units. + conjugate: (%,%) -> % + ++ conjugate(p,q) computes \spad{inv(q) * p * q}; this is + ++ 'right action by conjugation'. + commutator: (%,%) -> % + ++ commutator(p,q) computes \spad{inv(p) * inv(q) * p * q}. + add + import RepeatedSquaring(%) + x:% / y:% == x*inv(y) + recip(x:%) == inv(x) + _^(x:%, n:Integer):% == x ** n + x:% ** n:Integer == + zero? n => 1 + n<0 => expt(inv(x),(-n) pretend PositiveInteger) + expt(x,n pretend PositiveInteger) + conjugate(p,q) == inv(q) * p * q + commutator(p,q) == inv(p) * inv(q) * p * q + +@ +<>= +"GROUP" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=GROUP"]; +"GROUP" -> "MONOID" + +@ +<>= +"Group()" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=GROUP"]; +"Group()" -> "Monoid()" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"Group()" [color=lightblue]; +"Group()" -> "Monoid()" +"Group()" -> "RepeatedSquaring(Group)" + +"Monoid()" [color=lightblue]; +"Monoid()" -> "SemiGroup()" + +"SemiGroup()" [color=lightblue]; +"SemiGroup()" -> "SetCategory()" +"SemiGroup()" -> "RepeatedSquaring(SemiGroup)" + +"SetCategory()" [color=lightblue]; +"SetCategory()" -> "BasicType()" +"SetCategory()" -> "CoercibleTo(OutputForm)" + +"BasicType()" [color=lightblue]; +"BasicType()" -> "Category" + +"CoercibleTo(OutputForm)" [color=seagreen]; +"CoercibleTo(OutputForm)" -> "CoercibleTo(a:Type)" + +"CoercibleTo(a:Type)" [color=lightblue]; +"CoercibleTo(a:Type)" -> "Category" + +"RepeatedSquaring(Group)" [color="#00EE00"]; +"RepeatedSquaring(Group)" -> "RepeatedSquaring(a:SetCategory)" + +"RepeatedSquaring(SemiGroup)" [color="#00EE00"]; +"RepeatedSquaring(SemiGroup)" -> "RepeatedSquaring(a:SetCategory)" + +"RepeatedSquaring(a:SetCategory)" [color="#00EE00"]; +"RepeatedSquaring(a:SetCategory)" -> "Package" + +"Package" [color="#00EE00"]; + +"Category" [color=lightblue]; + +} +} + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pagehead{LinearAggregate}{LNAGG} \pagepic{ps/v102linearaggregate.ps}{LNAGG}{1.00} @@ -4123,72 +4189,60 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - any? & coerce & concat & construct & convert \\ - copy & count & delete & elt & empty \\ - empty? & entries & entry? & eq? & eval \\ - every? & fill! & find & first & hash \\ - index? & indices & insert & latex & less? \\ - map & map! & maxIndex & member? & members \\ - minIndex & more? & new & parts & qelt \\ - qsetelt! & reduce & reduce & reduce & remove \\ - remove & removeDuplicates & sample & select & setelt \\ - setelt & size? & swap! & ?\~{}=? & \#? \\ - ?=? & ?.? &&&\\ +\cross{LNAGG}{any?} & +\cross{LNAGG}{coerce} & +\cross{LNAGG}{concat} & +\cross{LNAGG}{construct} & +\cross{LNAGG}{convert} \\ +\cross{LNAGG}{copy} & +\cross{LNAGG}{count} & +\cross{LNAGG}{delete} & +\cross{LNAGG}{elt} & +\cross{LNAGG}{empty} \\ +\cross{LNAGG}{empty?} & +\cross{LNAGG}{entries} & +\cross{LNAGG}{entry?} & +\cross{LNAGG}{eq?} & +\cross{LNAGG}{eval} \\ +\cross{LNAGG}{every?} & +\cross{LNAGG}{fill!} & +\cross{LNAGG}{find} & +\cross{LNAGG}{first} & +\cross{LNAGG}{hash} \\ +\cross{LNAGG}{index?} & +\cross{LNAGG}{indices} & +\cross{LNAGG}{insert} & +\cross{LNAGG}{latex} & +\cross{LNAGG}{less?} \\ +\cross{LNAGG}{map} & +\cross{LNAGG}{map!} & +\cross{LNAGG}{maxIndex} & +\cross{LNAGG}{member?} & +\cross{LNAGG}{members} \\ +\cross{LNAGG}{minIndex} & +\cross{LNAGG}{more?} & +\cross{LNAGG}{new} & +\cross{LNAGG}{parts} & +\cross{LNAGG}{qelt} \\ +\cross{LNAGG}{qsetelt!} & +\cross{LNAGG}{reduce} & +\cross{LNAGG}{reduce} & +\cross{LNAGG}{reduce} & +\cross{LNAGG}{remove} \\ +\cross{LNAGG}{remove} & +\cross{LNAGG}{removeDuplicates} & +\cross{LNAGG}{sample} & +\cross{LNAGG}{select} & +\cross{LNAGG}{setelt} \\ +\cross{LNAGG}{setelt} & +\cross{LNAGG}{size?} & +\cross{LNAGG}{swap!} & +\cross{LNAGG}{?\~{}=?} & +\cross{LNAGG}{\#?} \\ +\cross{LNAGG}{?=?} & +\cross{LNAGG}{?.?} &&& \end{tabular} -\cross{LNAGG}{any?} -\cross{LNAGG}{coerce} -\cross{LNAGG}{concat} -\cross{LNAGG}{construct} -\cross{LNAGG}{convert} -\cross{LNAGG}{copy} -\cross{LNAGG}{count} -\cross{LNAGG}{delete} -\cross{LNAGG}{elt} -\cross{LNAGG}{empty} -\cross{LNAGG}{empty?} -\cross{LNAGG}{entries} -\cross{LNAGG}{entry?} -\cross{LNAGG}{eq?} -\cross{LNAGG}{eval} -\cross{LNAGG}{every?} -\cross{LNAGG}{fill!} -\cross{LNAGG}{find} -\cross{LNAGG}{first} -\cross{LNAGG}{hash} -\cross{LNAGG}{index?} -\cross{LNAGG}{indices} -\cross{LNAGG}{insert} -\cross{LNAGG}{latex} -\cross{LNAGG}{less?} -\cross{LNAGG}{map} -\cross{LNAGG}{map!} -\cross{LNAGG}{maxIndex} -\cross{LNAGG}{member?} -\cross{LNAGG}{members} -\cross{LNAGG}{minIndex} -\cross{LNAGG}{more?} -\cross{LNAGG}{new} -\cross{LNAGG}{parts} -\cross{LNAGG}{qelt} -\cross{LNAGG}{qsetelt!} -\cross{LNAGG}{reduce} -\cross{LNAGG}{reduce} -\cross{LNAGG}{reduce} -\cross{LNAGG}{remove} -\cross{LNAGG}{remove} -\cross{LNAGG}{removeDuplicates} -\cross{LNAGG}{sample} -\cross{LNAGG}{select} -\cross{LNAGG}{setelt} -\cross{LNAGG}{setelt} -\cross{LNAGG}{size?} -\cross{LNAGG}{swap!} -\cross{LNAGG}{?\~{}=?} -\cross{LNAGG}{\#?} -\cross{LNAGG}{?=?} -\cross{LNAGG}{?.?} - These are directly exported but not implemented: \begin{verbatim} concat : (%,%) -> % @@ -4425,28 +4479,25 @@ digraph pic { \pagefrom{OrderedSet}{ORDSET} {\bf Exports:}\\ -\begin{tabular}{llllllll} - 0 & coerce & hash & latex & max & min & sample & zero?\\ - ?\~{}=? & ?*? & ?+? & ?$<$? & ?$<=$? & ?=? & ?$>$? & ?$>=$? +\begin{tabular}{lllll} +\cross{OASGP}{0} & +\cross{OASGP}{coerce} & +\cross{OASGP}{hash} & +\cross{OASGP}{latex} & +\cross{OASGP}{max} \\ +\cross{OASGP}{min} & +\cross{OASGP}{sample} & +\cross{OASGP}{zero?} & +\cross{OASGP}{?\~{}=?} & +\cross{OASGP}{?*?} \\ +\cross{OASGP}{?+?} & +\cross{OASGP}{?$<$?} & +\cross{OASGP}{?$<=$?} & +\cross{OASGP}{?=?} & +\cross{OASGP}{?$>$?} \\ +\cross{OASGP}{?$>=$?} &&&& \end{tabular} -\cross{OASGP}{0} -\cross{OASGP}{coerce} -\cross{OASGP}{hash} -\cross{OASGP}{latex} -\cross{OASGP}{max} -\cross{OASGP}{min} -\cross{OASGP}{sample} -\cross{OASGP}{zero?} -\cross{OASGP}{?\~{}=?} -\cross{OASGP}{?*?} -\cross{OASGP}{?+?} -\cross{OASGP}{?$<$?} -\cross{OASGP}{?$<=$?} -\cross{OASGP}{?=?} -\cross{OASGP}{?$>$?} -\cross{OASGP}{?$>=$?} - These exports come from OrderedSet(): \begin{verbatim} coerce : % -> OutputForm @@ -4559,31 +4610,27 @@ digraph pic { \pagefrom{OrderedSet}{ORDSET} {\bf Exports:}\\ -\begin{tabular}{llllll} - 1 & coerce & hash & latex & max & min\\ - one? & recip & sample & ?*? & ?**? & ?$<$?\\ - ?$<=$? & ?=? & ?$>$? & ?$>=$? & ?\~{}=? & ?\^{}?\\ +\begin{tabular}{lllll} +\cross{ORDMON}{1} & +\cross{ORDMON}{coerce} & +\cross{ORDMON}{hash} & +\cross{ORDMON}{latex} & +\cross{ORDMON}{max} \\ +\cross{ORDMON}{min} & +\cross{ORDMON}{one?} & +\cross{ORDMON}{recip} & +\cross{ORDMON}{sample} & +\cross{ORDMON}{?*?} \\ +\cross{ORDMON}{?**?} & +\cross{ORDMON}{?$<$?} & +\cross{ORDMON}{?$<=$?} & +\cross{ORDMON}{?=?} & +\cross{ORDMON}{?$>$?} \\ +\cross{ORDMON}{?$>=$?} & +\cross{ORDMON}{?\~{}=?} & +\cross{ORDMON}{?\^{}?} && \end{tabular} -\cross{ORDMON}{1} -\cross{ORDMON}{coerce} -\cross{ORDMON}{hash} -\cross{ORDMON}{latex} -\cross{ORDMON}{max} -\cross{ORDMON}{min} -\cross{ORDMON}{one?} -\cross{ORDMON}{recip} -\cross{ORDMON}{sample} -\cross{ORDMON}{?*?} -\cross{ORDMON}{?**?} -\cross{ORDMON}{?$<$?} -\cross{ORDMON}{?$<=$?} -\cross{ORDMON}{?=?} -\cross{ORDMON}{?$>$?} -\cross{ORDMON}{?$>=$?} -\cross{ORDMON}{?\~{}=?} -\cross{ORDMON}{?\^{}?} - These exports come from Monoid(): \begin{verbatim} 1 : () -> % @@ -4704,45 +4751,39 @@ digraph pic { \pagefrom{BagAggregate}{BGAGG} {\bf Exports:}\\ -\begin{tabular}{lllllll} - any? & bag & copy & coerce & count & empty & empty? \\ - eq? & eval & every? & extract! & hash & insert! & inspect \\ - latex & less? & map & map! & max & member? & members \\ - merge & merge! & more? & parts & sample & size? & \#? \\ - ?=? & ?\~{}=? &\\ +\begin{tabular}{lllll} +\cross{PRQAGG}{any?} & +\cross{PRQAGG}{bag} & +\cross{PRQAGG}{copy} & +\cross{PRQAGG}{coerce} & +\cross{PRQAGG}{count} \\ +\cross{PRQAGG}{empty} & +\cross{PRQAGG}{empty?} & +\cross{PRQAGG}{eq?} & +\cross{PRQAGG}{eval} & +\cross{PRQAGG}{every?} \\ +\cross{PRQAGG}{extract!} & +\cross{PRQAGG}{hash} & +\cross{PRQAGG}{insert!} & +\cross{PRQAGG}{inspect} & +\cross{PRQAGG}{latex} \\ +\cross{PRQAGG}{less?} & +\cross{PRQAGG}{map} & +\cross{PRQAGG}{map!} & +\cross{PRQAGG}{max} & +\cross{PRQAGG}{member?} \\ +\cross{PRQAGG}{members} & +\cross{PRQAGG}{merge} & +\cross{PRQAGG}{merge!} & +\cross{PRQAGG}{more?} & +\cross{PRQAGG}{parts} \\ +\cross{PRQAGG}{sample} & +\cross{PRQAGG}{size?} & +\cross{PRQAGG}{\#?} & +\cross{PRQAGG}{?=?} & +\cross{PRQAGG}{?\~{}=?} \\ \end{tabular} -\cross{PRQAGG}{any?} -\cross{PRQAGG}{bag} -\cross{PRQAGG}{copy} -\cross{PRQAGG}{coerce} -\cross{PRQAGG}{count} -\cross{PRQAGG}{empty} -\cross{PRQAGG}{empty?} -\cross{PRQAGG}{eq?} -\cross{PRQAGG}{eval} -\cross{PRQAGG}{every?} -\cross{PRQAGG}{extract!} -\cross{PRQAGG}{hash} -\cross{PRQAGG}{insert!} -\cross{PRQAGG}{inspect} -\cross{PRQAGG}{latex} -\cross{PRQAGG}{less?} -\cross{PRQAGG}{map} -\cross{PRQAGG}{map!} -\cross{PRQAGG}{max} -\cross{PRQAGG}{member?} -\cross{PRQAGG}{members} -\cross{PRQAGG}{merge} -\cross{PRQAGG}{merge!} -\cross{PRQAGG}{more?} -\cross{PRQAGG}{parts} -\cross{PRQAGG}{sample} -\cross{PRQAGG}{size?} -\cross{PRQAGG}{\#?} -\cross{PRQAGG}{?=?} -\cross{PRQAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} max : % -> S @@ -4874,48 +4915,42 @@ digraph pic { \pagefrom{BagAggregate}{BGAGG} {\bf Exports:}\\ -\begin{tabular}{lllllll} - any? & bag & back & coerce & copy & count & dequeue! \\ - empty & empty? & enqueue! & eq? & eval & every? & extract! \\ - front & hash & insert! & inspect & latex & length & less? \\ - map & map! & member? & members & more? & parts & rotate! \\ - sample & size? & \#? & ?=? & ?\~{}=? &&\\ +\begin{tabular}{lllll} +\cross{QUAGG}{any?} & +\cross{QUAGG}{bag} & +\cross{QUAGG}{back} & +\cross{QUAGG}{coerce} & +\cross{QUAGG}{copy} \\ +\cross{QUAGG}{count} & +\cross{QUAGG}{dequeue!} & +\cross{QUAGG}{empty} & +\cross{QUAGG}{empty?} & +\cross{QUAGG}{enqueue!} \\ +\cross{QUAGG}{eq?} & +\cross{QUAGG}{eval} & +\cross{QUAGG}{every?} & +\cross{QUAGG}{extract!} & +\cross{QUAGG}{front} \\ +\cross{QUAGG}{hash} & +\cross{QUAGG}{insert!} & +\cross{QUAGG}{inspect} & +\cross{QUAGG}{latex} & +\cross{QUAGG}{length} \\ +\cross{QUAGG}{less?} & +\cross{QUAGG}{map} & +\cross{QUAGG}{map!} & +\cross{QUAGG}{member?} & +\cross{QUAGG}{members} \\ +\cross{QUAGG}{more?} & +\cross{QUAGG}{parts} & +\cross{QUAGG}{rotate!} & +\cross{QUAGG}{sample} & +\cross{QUAGG}{size?} \\ +\cross{QUAGG}{\#?} & +\cross{QUAGG}{?=?} & +\cross{QUAGG}{?\~{}=?} && \end{tabular} -\cross{QUAGG}{any?} -\cross{QUAGG}{bag} -\cross{QUAGG}{back} -\cross{QUAGG}{coerce} -\cross{QUAGG}{copy} -\cross{QUAGG}{count} -\cross{QUAGG}{dequeue!} -\cross{QUAGG}{empty} -\cross{QUAGG}{empty?} -\cross{QUAGG}{enqueue!} -\cross{QUAGG}{eq?} -\cross{QUAGG}{eval} -\cross{QUAGG}{every?} -\cross{QUAGG}{extract!} -\cross{QUAGG}{front} -\cross{QUAGG}{hash} -\cross{QUAGG}{insert!} -\cross{QUAGG}{inspect} -\cross{QUAGG}{latex} -\cross{QUAGG}{length} -\cross{QUAGG}{less?} -\cross{QUAGG}{map} -\cross{QUAGG}{map!} -\cross{QUAGG}{member?} -\cross{QUAGG}{members} -\cross{QUAGG}{more?} -\cross{QUAGG}{parts} -\cross{QUAGG}{rotate!} -\cross{QUAGG}{sample} -\cross{QUAGG}{size?} -\cross{QUAGG}{\#?} -\cross{QUAGG}{?=?} -\cross{QUAGG}{?\~{}=?} - These are implemented by this category: \begin{verbatim} back : % -> S @@ -5060,55 +5095,46 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - any? & brace & coerce & construct & convert\\ - copy & count & difference & empty & empty?\\ - eq? & eval & every? & find & hash\\ - intersect & latex & less? & map & map!\\ - member? & members & more? & parts & reduce\\ - remove & removeDuplicates & sample & select & set\\ - size? & subset? & symmetricDifference & union & \#?\\ - ?$<$? & ?=? & ?\~{}=? && +\cross{SETAGG}{any?} & +\cross{SETAGG}{brace} & +\cross{SETAGG}{coerce} & +\cross{SETAGG}{construct} & +\cross{SETAGG}{convert} \\ +\cross{SETAGG}{copy} & +\cross{SETAGG}{count} & +\cross{SETAGG}{difference} & +\cross{SETAGG}{empty} & +\cross{SETAGG}{empty?} \\ +\cross{SETAGG}{eq?} & +\cross{SETAGG}{eval} & +\cross{SETAGG}{every?} & +\cross{SETAGG}{find} & +\cross{SETAGG}{hash} \\ +\cross{SETAGG}{intersect} & +\cross{SETAGG}{latex} & +\cross{SETAGG}{less?} & +\cross{SETAGG}{map} & +\cross{SETAGG}{map!} \\ +\cross{SETAGG}{member?} & +\cross{SETAGG}{members} & +\cross{SETAGG}{more?} & +\cross{SETAGG}{parts} & +\cross{SETAGG}{reduce} \\ +\cross{SETAGG}{remove} & +\cross{SETAGG}{removeDuplicates} & +\cross{SETAGG}{sample} & +\cross{SETAGG}{select} & +\cross{SETAGG}{set} \\ +\cross{SETAGG}{size?} & +\cross{SETAGG}{subset?} & +\cross{SETAGG}{symmetricDifference} & +\cross{SETAGG}{union} & +\cross{SETAGG}{\#?} \\ +\cross{SETAGG}{?$<$?} & +\cross{SETAGG}{?=?} & +\cross{SETAGG}{?\~{}=?} && \end{tabular} -\cross{SETAGG}{any?} -\cross{SETAGG}{brace} -\cross{SETAGG}{coerce} -\cross{SETAGG}{construct} -\cross{SETAGG}{convert} -\cross{SETAGG}{copy} -\cross{SETAGG}{count} -\cross{SETAGG}{difference} -\cross{SETAGG}{empty} -\cross{SETAGG}{empty?} -\cross{SETAGG}{eq?} -\cross{SETAGG}{eval} -\cross{SETAGG}{every?} -\cross{SETAGG}{find} -\cross{SETAGG}{hash} -\cross{SETAGG}{intersect} -\cross{SETAGG}{latex} -\cross{SETAGG}{less?} -\cross{SETAGG}{map} -\cross{SETAGG}{map!} -\cross{SETAGG}{member?} -\cross{SETAGG}{members} -\cross{SETAGG}{more?} -\cross{SETAGG}{parts} -\cross{SETAGG}{reduce} -\cross{SETAGG}{remove} -\cross{SETAGG}{removeDuplicates} -\cross{SETAGG}{sample} -\cross{SETAGG}{select} -\cross{SETAGG}{set} -\cross{SETAGG}{size?} -\cross{SETAGG}{subset?} -\cross{SETAGG}{symmetricDifference} -\cross{SETAGG}{union} -\cross{SETAGG}{\#?} -\cross{SETAGG}{?$<$?} -\cross{SETAGG}{?=?} -\cross{SETAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} brace : List S -> % @@ -5345,46 +5371,40 @@ digraph pic { \pagefrom{BagAggregate}{BGAGG} {\bf Exports:}\\ -\begin{tabular}{lllllll} - any? & bag & coerce & copy & count & depth & empty \\ - empty? & eq? & eval & every? & extract! & hash & insert! \\ - inspect & latex & less? & map & map! & member? & members \\ - more? & parts & pop! & push! & sample & size? & top \\ - \#? & ?=? & ?\~{}=? &&&&\\ +\begin{tabular}{lllll} +\cross{SKAGG}{any?} & +\cross{SKAGG}{bag} & +\cross{SKAGG}{coerce} & +\cross{SKAGG}{copy} & +\cross{SKAGG}{count} \\ +\cross{SKAGG}{depth} & +\cross{SKAGG}{empty} & +\cross{SKAGG}{empty?} & +\cross{SKAGG}{eq?} & +\cross{SKAGG}{eval} \\ +\cross{SKAGG}{every?} & +\cross{SKAGG}{extract!} & +\cross{SKAGG}{hash} & +\cross{SKAGG}{insert!} & +\cross{SKAGG}{inspect} \\ +\cross{SKAGG}{latex} & +\cross{SKAGG}{less?} & +\cross{SKAGG}{map} & +\cross{SKAGG}{map!} & +\cross{SKAGG}{member?} \\ +\cross{SKAGG}{members} & +\cross{SKAGG}{more?} & +\cross{SKAGG}{parts} & +\cross{SKAGG}{pop!} & +\cross{SKAGG}{push!} \\ +\cross{SKAGG}{sample} & +\cross{SKAGG}{size?} & +\cross{SKAGG}{top} & +\cross{SKAGG}{\#?} & +\cross{SKAGG}{?=?} \\ +\cross{SKAGG}{?\~{}=?} &&&& \end{tabular} -\cross{SKAGG}{any?} -\cross{SKAGG}{bag} -\cross{SKAGG}{coerce} -\cross{SKAGG}{copy} -\cross{SKAGG}{count} -\cross{SKAGG}{depth} -\cross{SKAGG}{empty} -\cross{SKAGG}{empty?} -\cross{SKAGG}{eq?} -\cross{SKAGG}{eval} -\cross{SKAGG}{every?} -\cross{SKAGG}{extract!} -\cross{SKAGG}{hash} -\cross{SKAGG}{insert!} -\cross{SKAGG}{inspect} -\cross{SKAGG}{latex} -\cross{SKAGG}{less?} -\cross{SKAGG}{map} -\cross{SKAGG}{map!} -\cross{SKAGG}{member?} -\cross{SKAGG}{members} -\cross{SKAGG}{more?} -\cross{SKAGG}{parts} -\cross{SKAGG}{pop!} -\cross{SKAGG}{push!} -\cross{SKAGG}{sample} -\cross{SKAGG}{size?} -\cross{SKAGG}{top} -\cross{SKAGG}{\#?} -\cross{SKAGG}{?=?} -\cross{SKAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} depth : % -> NonNegativeInteger @@ -5518,75 +5538,63 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - any? & children & child? & coerce & concat \\ - concat! & copy & count & cycleEntry & cycleLength\\ - cycleSplit! & cycleTail & cyclic? & distance & empty \\ - empty? & eq? & eval & every? & first \\ - hash & last & latex & leaf? & leaves \\ - less? & map & map! & member? & members \\ - more? & nodes & node? & parts & rest \\ - sample & second & setchildren! & setelt & setfirst! \\ - setlast! & setrest! & setvalue! & size? & split! \\ - tail & third & value & \#? & ?.last \\ - ?.rest & ?.first & ?.value & ?=? & ?\~{}=? \\ +\cross{URAGG}{any?} & +\cross{URAGG}{children} & +\cross{URAGG}{child?} & +\cross{URAGG}{coerce} & +\cross{URAGG}{concat} \\ +\cross{URAGG}{concat!} & +\cross{URAGG}{copy} & +\cross{URAGG}{count} & +\cross{URAGG}{cycleEntry} & +\cross{URAGG}{cycleLength} \\ +\cross{URAGG}{cycleSplit!} & +\cross{URAGG}{cycleTail} & +\cross{URAGG}{cyclic?} & +\cross{URAGG}{distance} & +\cross{URAGG}{empty} \\ +\cross{URAGG}{empty?} & +\cross{URAGG}{eq?} & +\cross{URAGG}{eval} & +\cross{URAGG}{every?} & +\cross{URAGG}{first} \\ +\cross{URAGG}{hash} & +\cross{URAGG}{last} & +\cross{URAGG}{latex} & +\cross{URAGG}{leaf?} & +\cross{URAGG}{leaves} \\ +\cross{URAGG}{less?} & +\cross{URAGG}{map} & +\cross{URAGG}{map!} & +\cross{URAGG}{member?} & +\cross{URAGG}{members} \\ +\cross{URAGG}{more?} & +\cross{URAGG}{nodes} & +\cross{URAGG}{node?} & +\cross{URAGG}{parts} & +\cross{URAGG}{rest} \\ +\cross{URAGG}{sample} & +\cross{URAGG}{second} & +\cross{URAGG}{setchildren!} & +\cross{URAGG}{setelt} & +\cross{URAGG}{setfirst!} \\ +\cross{URAGG}{setlast!} & +\cross{URAGG}{setrest!} & +\cross{URAGG}{setvalue!} & +\cross{URAGG}{size?} & +\cross{URAGG}{split!} \\ +\cross{URAGG}{tail} & +\cross{URAGG}{third} & +\cross{URAGG}{value} & +\cross{URAGG}{\#?} & +\cross{URAGG}{?.last} \\ +\cross{URAGG}{?.rest} & +\cross{URAGG}{?.first} & +\cross{URAGG}{?.value} & +\cross{URAGG}{?=?} & +\cross{URAGG}{?\~{}=?} \\ \end{tabular} -\cross{URAGG}{any?} -\cross{URAGG}{children} -\cross{URAGG}{child?} -\cross{URAGG}{coerce} -\cross{URAGG}{concat} -\cross{URAGG}{concat!} -\cross{URAGG}{copy} -\cross{URAGG}{count} -\cross{URAGG}{cycleEntry} -\cross{URAGG}{cycleLength} -\cross{URAGG}{cycleSplit!} -\cross{URAGG}{cycleTail} -\cross{URAGG}{cyclic?} -\cross{URAGG}{distance} -\cross{URAGG}{empty} -\cross{URAGG}{empty?} -\cross{URAGG}{eq?} -\cross{URAGG}{eval} -\cross{URAGG}{every?} -\cross{URAGG}{first} -\cross{URAGG}{hash} -\cross{URAGG}{last} -\cross{URAGG}{latex} -\cross{URAGG}{leaf?} -\cross{URAGG}{leaves} -\cross{URAGG}{less?} -\cross{URAGG}{map} -\cross{URAGG}{map!} -\cross{URAGG}{member?} -\cross{URAGG}{members} -\cross{URAGG}{more?} -\cross{URAGG}{nodes} -\cross{URAGG}{node?} -\cross{URAGG}{parts} -\cross{URAGG}{rest} -\cross{URAGG}{sample} -\cross{URAGG}{second} -\cross{URAGG}{setchildren!} -\cross{URAGG}{setelt} -\cross{URAGG}{setfirst!} -\cross{URAGG}{setlast!} -\cross{URAGG}{setrest!} -\cross{URAGG}{setvalue!} -\cross{URAGG}{size?} -\cross{URAGG}{split!} -\cross{URAGG}{tail} -\cross{URAGG}{third} -\cross{URAGG}{value} -\cross{URAGG}{\#?} -\cross{URAGG}{?.last} -\cross{URAGG}{?.rest} -\cross{URAGG}{?.first} -\cross{URAGG}{?.value} -\cross{URAGG}{?=?} -\cross{URAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} concat : (S,%) -> % @@ -5980,30 +5988,29 @@ digraph pic { \pagepic{ps/v102abeliangroup.ps}{ABELGRP}{0.75} {\bf See:}\\ +\pageto{LeftModule}{LMODULE} +\pageto{OrderedAbelianGroup}{OAGROUP} +\pageto{RightModule}{RMODULE} \pageto{Rng}{RNG} \pagefrom{CancellationAbelianMonoid}{CABMON} {\bf Exports:}\\ -\begin{tabular}{lllllll} - 0 & coerce & hash & latex & sample & subtractIfCan & zero?\\ - ?\~{}=? & ?*? & ?+? & ?-? & -? & ?=? & +\begin{tabular}{lllll} +\cross{ABELGRP}{0} & +\cross{ABELGRP}{coerce} & +\cross{ABELGRP}{hash} & +\cross{ABELGRP}{latex} & +\cross{ABELGRP}{sample} \\ +\cross{ABELGRP}{subtractIfCan} & +\cross{ABELGRP}{zero?} & +\cross{ABELGRP}{?\~{}=?} & +\cross{ABELGRP}{?*?} & +\cross{ABELGRP}{?+?} \\ +\cross{ABELGRP}{?-?} & +\cross{ABELGRP}{-?} & +\cross{ABELGRP}{?=?} && \end{tabular} -\cross{ABELGRP}{0} -\cross{ABELGRP}{coerce} -\cross{ABELGRP}{hash} -\cross{ABELGRP}{latex} -\cross{ABELGRP}{sample} -\cross{ABELGRP}{subtractIfCan} -\cross{ABELGRP}{zero?} -\cross{ABELGRP}{?\~{}=?} -\cross{ABELGRP}{?*?} -\cross{ABELGRP}{?+?} -\cross{ABELGRP}{?-?} -\cross{ABELGRP}{-?} -\cross{ABELGRP}{?=?} - - These are directly exported but not implemented: \begin{verbatim} -? : % -> % @@ -6128,55 +6135,46 @@ digraph pic { \pagefrom{DictionaryOperations}{DIOPS} {\bf Exports:}\\ -\begin{tabular}{lllllll} - any? & bag & coerce & construct & convert \\ - copy & count & dictionary & empty & empty? \\ - eq? & eval & every? & extract! & find \\ - hash & insert! & inspect & latex & less? \\ - map & map! & member? & members & more? \\ - parts & reduce & remove & remove! & removeDuplicates \\ - sample & select & select! & size? & \#? \\ - ?\~{}=? & ?=? &&&\\ +\begin{tabular}{lllll} +\cross{DIAGG}{any?} & +\cross{DIAGG}{bag} & +\cross{DIAGG}{coerce} & +\cross{DIAGG}{construct} & +\cross{DIAGG}{convert} \\ +\cross{DIAGG}{copy} & +\cross{DIAGG}{count} & +\cross{DIAGG}{dictionary} & +\cross{DIAGG}{empty} & +\cross{DIAGG}{empty?} \\ +\cross{DIAGG}{eq?} & +\cross{DIAGG}{eval} & +\cross{DIAGG}{every?} & +\cross{DIAGG}{extract!} & +\cross{DIAGG}{find} \\ +\cross{DIAGG}{hash} & +\cross{DIAGG}{insert!} & +\cross{DIAGG}{inspect} & +\cross{DIAGG}{latex} & +\cross{DIAGG}{less?} \\ +\cross{DIAGG}{map} & +\cross{DIAGG}{map!} & +\cross{DIAGG}{member?} & +\cross{DIAGG}{members} & +\cross{DIAGG}{more?} \\ +\cross{DIAGG}{parts} & +\cross{DIAGG}{reduce} & +\cross{DIAGG}{remove} & +\cross{DIAGG}{remove!} & +\cross{DIAGG}{removeDuplicates} \\ +\cross{DIAGG}{sample} & +\cross{DIAGG}{select} & +\cross{DIAGG}{select!} & +\cross{DIAGG}{size?} & +\cross{DIAGG}{\#?} \\ +\cross{DIAGG}{?\~{}=?} & +\cross{DIAGG}{?=?} &&& \end{tabular} -\cross{DIAGG}{any?} -\cross{DIAGG}{bag} -\cross{DIAGG}{coerce} -\cross{DIAGG}{construct} -\cross{DIAGG}{convert} -\cross{DIAGG}{copy} -\cross{DIAGG}{count} -\cross{DIAGG}{dictionary} -\cross{DIAGG}{empty} -\cross{DIAGG}{empty?} -\cross{DIAGG}{eq?} -\cross{DIAGG}{eval} -\cross{DIAGG}{every?} -\cross{DIAGG}{extract!} -\cross{DIAGG}{find} -\cross{DIAGG}{hash} -\cross{DIAGG}{insert!} -\cross{DIAGG}{inspect} -\cross{DIAGG}{latex} -\cross{DIAGG}{less?} -\cross{DIAGG}{map} -\cross{DIAGG}{map!} -\cross{DIAGG}{member?} -\cross{DIAGG}{members} -\cross{DIAGG}{more?} -\cross{DIAGG}{parts} -\cross{DIAGG}{reduce} -\cross{DIAGG}{remove} -\cross{DIAGG}{remove!} -\cross{DIAGG}{removeDuplicates} -\cross{DIAGG}{sample} -\cross{DIAGG}{select} -\cross{DIAGG}{select!} -\cross{DIAGG}{size?} -\cross{DIAGG}{\#?} -\cross{DIAGG}{?\~{}=?} -\cross{DIAGG}{?=?} - These are implemented by this category: \begin{verbatim} dictionary : List S -> % @@ -6349,65 +6347,54 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - any? & back & bag & bottom! & coerce \\ - copy & count & depth & dequeue & dequeue! \\ - empty & empty? & enqueue! & eq? & eval \\ - every? & extract! & extractBottom! & extractTop! & front \\ - hash & height & insert! & insertBottom! & insertTop! \\ - inspect & latex & length & less? & map \\ - map! & members & member? & more? & parts \\ - pop! & push! & reverse! & rotate! & sample \\ - size? & top & top! & \#? & ?=? \\ - ?\~{}=? &&&&\\ +\cross{DQAGG}{any?} & +\cross{DQAGG}{back} & +\cross{DQAGG}{bag} & +\cross{DQAGG}{bottom!} & +\cross{DQAGG}{coerce} \\ +\cross{DQAGG}{copy} & +\cross{DQAGG}{count} & +\cross{DQAGG}{depth} & +\cross{DQAGG}{dequeue} & +\cross{DQAGG}{dequeue!} \\ +\cross{DQAGG}{empty} & +\cross{DQAGG}{empty?} & +\cross{DQAGG}{enqueue!} & +\cross{DQAGG}{eq?} & +\cross{DQAGG}{eval} \\ +\cross{DQAGG}{every?} & +\cross{DQAGG}{extract!} & +\cross{DQAGG}{extractBottom!} & +\cross{DQAGG}{extractTop!} & +\cross{DQAGG}{front} \\ +\cross{DQAGG}{hash} & +\cross{DQAGG}{height} & +\cross{DQAGG}{insert!} & +\cross{DQAGG}{insertBottom!} & +\cross{DQAGG}{insertTop!} \\ +\cross{DQAGG}{inspect} & +\cross{DQAGG}{latex} & +\cross{DQAGG}{length} & +\cross{DQAGG}{less?} & +\cross{DQAGG}{map} \\ +\cross{DQAGG}{map!} & +\cross{DQAGG}{members} & +\cross{DQAGG}{member?} & +\cross{DQAGG}{more?} & +\cross{DQAGG}{parts} \\ +\cross{DQAGG}{pop!} & +\cross{DQAGG}{push!} & +\cross{DQAGG}{reverse!} & +\cross{DQAGG}{rotate!} & +\cross{DQAGG}{sample} \\ +\cross{DQAGG}{size?} & +\cross{DQAGG}{top} & +\cross{DQAGG}{top!} & +\cross{DQAGG}{\#?} & +\cross{DQAGG}{?=?} \\ +\cross{DQAGG}{?\~{}=?} &&&& \end{tabular} -\cross{DQAGG}{any?} -\cross{DQAGG}{back} -\cross{DQAGG}{bag} -\cross{DQAGG}{bottom!} -\cross{DQAGG}{coerce} -\cross{DQAGG}{copy} -\cross{DQAGG}{count} -\cross{DQAGG}{depth} -\cross{DQAGG}{dequeue} -\cross{DQAGG}{dequeue!} -\cross{DQAGG}{empty} -\cross{DQAGG}{empty?} -\cross{DQAGG}{enqueue!} -\cross{DQAGG}{eq?} -\cross{DQAGG}{eval} -\cross{DQAGG}{every?} -\cross{DQAGG}{extract!} -\cross{DQAGG}{extractBottom!} -\cross{DQAGG}{extractTop!} -\cross{DQAGG}{front} -\cross{DQAGG}{hash} -\cross{DQAGG}{height} -\cross{DQAGG}{insert!} -\cross{DQAGG}{insertBottom!} -\cross{DQAGG}{insertTop!} -\cross{DQAGG}{inspect} -\cross{DQAGG}{latex} -\cross{DQAGG}{length} -\cross{DQAGG}{less?} -\cross{DQAGG}{map} -\cross{DQAGG}{map!} -\cross{DQAGG}{members} -\cross{DQAGG}{member?} -\cross{DQAGG}{more?} -\cross{DQAGG}{parts} -\cross{DQAGG}{pop!} -\cross{DQAGG}{push!} -\cross{DQAGG}{reverse!} -\cross{DQAGG}{rotate!} -\cross{DQAGG}{sample} -\cross{DQAGG}{size?} -\cross{DQAGG}{top} -\cross{DQAGG}{top!} -\cross{DQAGG}{\#?} -\cross{DQAGG}{?=?} -\cross{DQAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} bottom! : % -> S @@ -6582,75 +6569,63 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - any? & coerce & concat & concat! & construct \\ - copy & convert & count & delete & delete! \\ - elt & empty & empty? & entries & entry? \\ - eval & every? & eq? & fill! & find \\ - first & hash & index? & indices & insert \\ - insert! & latex & less? & map & map! \\ - maxIndex & member? & members & merge! & minIndex \\ - more? & new & parts & qelt & qsetelt! \\ - reduce & remove & remove! & removeDuplicates & removeDuplicates! \\ - sample & select & select! & setelt & size? \\ - swap! & \#? & ?=? & ?.? & ?\~{}=? \\ +\cross{ELAGG}{any?} & +\cross{ELAGG}{coerce} & +\cross{ELAGG}{concat} & +\cross{ELAGG}{concat!} & +\cross{ELAGG}{construct} \\ +\cross{ELAGG}{copy} & +\cross{ELAGG}{convert} & +\cross{ELAGG}{count} & +\cross{ELAGG}{delete} & +\cross{ELAGG}{delete!} \\ +\cross{ELAGG}{elt} & +\cross{ELAGG}{empty} & +\cross{ELAGG}{empty?} & +\cross{ELAGG}{entries} & +\cross{ELAGG}{entry?} \\ +\cross{ELAGG}{eval} & +\cross{ELAGG}{every?} & +\cross{ELAGG}{eq?} & +\cross{ELAGG}{fill!} & +\cross{ELAGG}{find} \\ +\cross{ELAGG}{first} & +\cross{ELAGG}{hash} & +\cross{ELAGG}{index?} & +\cross{ELAGG}{indices} & +\cross{ELAGG}{insert} \\ +\cross{ELAGG}{insert!} & +\cross{ELAGG}{latex} & +\cross{ELAGG}{less?} & +\cross{ELAGG}{map} & +\cross{ELAGG}{map!} \\ +\cross{ELAGG}{maxIndex} & +\cross{ELAGG}{member?} & +\cross{ELAGG}{members} & +\cross{ELAGG}{merge!} & +\cross{ELAGG}{minIndex} \\ +\cross{ELAGG}{more?} & +\cross{ELAGG}{new} & +\cross{ELAGG}{parts} & +\cross{ELAGG}{qelt} & +\cross{ELAGG}{qsetelt!} \\ +\cross{ELAGG}{reduce} & +\cross{ELAGG}{remove} & +\cross{ELAGG}{remove!} & +\cross{ELAGG}{removeDuplicates} & +\cross{ELAGG}{removeDuplicates!} \\ +\cross{ELAGG}{sample} & +\cross{ELAGG}{select} & +\cross{ELAGG}{select!} & +\cross{ELAGG}{setelt} & +\cross{ELAGG}{size?} \\ +\cross{ELAGG}{swap!} & +\cross{ELAGG}{\#?} & +\cross{ELAGG}{?=?} & +\cross{ELAGG}{?.?} & +\cross{ELAGG}{?\~{}=? } \\ \end{tabular} -\cross{ELAGG}{any?} -\cross{ELAGG}{coerce} -\cross{ELAGG}{concat} -\cross{ELAGG}{concat!} -\cross{ELAGG}{construct} -\cross{ELAGG}{copy} -\cross{ELAGG}{convert} -\cross{ELAGG}{count} -\cross{ELAGG}{delete} -\cross{ELAGG}{delete!} -\cross{ELAGG}{elt} -\cross{ELAGG}{empty} -\cross{ELAGG}{empty?} -\cross{ELAGG}{entries} -\cross{ELAGG}{entry?} -\cross{ELAGG}{eval} -\cross{ELAGG}{every?} -\cross{ELAGG}{eq?} -\cross{ELAGG}{fill!} -\cross{ELAGG}{find} -\cross{ELAGG}{first} -\cross{ELAGG}{hash} -\cross{ELAGG}{index?} -\cross{ELAGG}{indices} -\cross{ELAGG}{insert} -\cross{ELAGG}{insert!} -\cross{ELAGG}{latex} -\cross{ELAGG}{less?} -\cross{ELAGG}{map} -\cross{ELAGG}{map!} -\cross{ELAGG}{maxIndex} -\cross{ELAGG}{member?} -\cross{ELAGG}{members} -\cross{ELAGG}{merge!} -\cross{ELAGG}{minIndex} -\cross{ELAGG}{more?} -\cross{ELAGG}{new} -\cross{ELAGG}{parts} -\cross{ELAGG}{qelt} -\cross{ELAGG}{qsetelt!} -\cross{ELAGG}{reduce} -\cross{ELAGG}{remove} -\cross{ELAGG}{remove!} -\cross{ELAGG}{removeDuplicates} -\cross{ELAGG}{removeDuplicates!} -\cross{ELAGG}{sample} -\cross{ELAGG}{select} -\cross{ELAGG}{select!} -\cross{ELAGG}{setelt} -\cross{ELAGG}{size?} -\cross{ELAGG}{swap!} -\cross{ELAGG}{\#?} -\cross{ELAGG}{?=?} -\cross{ELAGG}{?.?} -\cross{ELAGG}{?\~{}=? } - These are directly exported but not implemented: \begin{verbatim} concat! : (%,S) -> % @@ -6881,84 +6856,72 @@ digraph pic { \pagefrom{OrderedSet}{ORDSET} {\bf Exports:}\\ -\begin{tabular}{llllll} - any? & coerce & concat & construct & convert & copy \\ - copyInto! & count & delete & elt & empty & empty? \\ - entries & entry? & eq? & eval & every? & fill! \\ - find & first & hash & index? & indices & insert \\ - latex & less? & map & map! & max & maxIndex \\ - member? & members & merge & min & minIndex & more? \\ - new & parts & position & qelt & qsetelt! & reduce \\ - remove & removeDuplicates & reverse & reverse! & sample & select \\ - setelt & size? & sort & sort! & sorted? & swap! \\ - \#? & ?.? & ?.? & ?$<$? & ?$<=$? & ?=? \\ - ?$>$? & ?$>=$? & ?\~{}=? &&&\\ +\begin{tabular}{lllll} +\cross{FLAGG}{any?} & +\cross{FLAGG}{coerce} & +\cross{FLAGG}{concat} & +\cross{FLAGG}{construct} & +\cross{FLAGG}{convert} \\ +\cross{FLAGG}{copy} & +\cross{FLAGG}{copyInto!} & +\cross{FLAGG}{count} & +\cross{FLAGG}{delete} & +\cross{FLAGG}{elt} \\ +\cross{FLAGG}{empty} & +\cross{FLAGG}{empty?} & +\cross{FLAGG}{entries} & +\cross{FLAGG}{entry?} & +\cross{FLAGG}{eq?} \\ +\cross{FLAGG}{eval} & +\cross{FLAGG}{every?} & +\cross{FLAGG}{fill!} & +\cross{FLAGG}{find} & +\cross{FLAGG}{first} \\ +\cross{FLAGG}{hash} & +\cross{FLAGG}{index?} & +\cross{FLAGG}{indices} & +\cross{FLAGG}{insert} & +\cross{FLAGG}{latex} \\ +\cross{FLAGG}{less?} & +\cross{FLAGG}{map} & +\cross{FLAGG}{map!} & +\cross{FLAGG}{max} & +\cross{FLAGG}{maxIndex} \\ +\cross{FLAGG}{member?} & +\cross{FLAGG}{members} & +\cross{FLAGG}{merge} & +\cross{FLAGG}{min} & +\cross{FLAGG}{minIndex} \\ +\cross{FLAGG}{more?} & +\cross{FLAGG}{new} & +\cross{FLAGG}{parts} & +\cross{FLAGG}{position} & +\cross{FLAGG}{qelt} \\ +\cross{FLAGG}{qsetelt!} & +\cross{FLAGG}{reduce} & +\cross{FLAGG}{remove} & +\cross{FLAGG}{removeDuplicates} & +\cross{FLAGG}{reverse} \\ +\cross{FLAGG}{reverse!} & +\cross{FLAGG}{sample} & +\cross{FLAGG}{select} & +\cross{FLAGG}{setelt} & +\cross{FLAGG}{size?} \\ +\cross{FLAGG}{sort} & +\cross{FLAGG}{sort!} & +\cross{FLAGG}{sorted?} & +\cross{FLAGG}{swap!} & +\cross{FLAGG}{\#?} \\ +\cross{FLAGG}{?.?} & +\cross{FLAGG}{?.?} & +\cross{FLAGG}{?$<$?} & +\cross{FLAGG}{?$<=$?} & +\cross{FLAGG}{?=?} \\ +\cross{FLAGG}{?$>$?} & +\cross{FLAGG}{?$>=$?} & +\cross{FLAGG}{?\~{}=?} && \end{tabular} -\cross{FLAGG}{any?} -\cross{FLAGG}{coerce} -\cross{FLAGG}{concat} -\cross{FLAGG}{construct} -\cross{FLAGG}{convert} -\cross{FLAGG}{copy} -\cross{FLAGG}{copyInto!} -\cross{FLAGG}{count} -\cross{FLAGG}{delete} -\cross{FLAGG}{elt} -\cross{FLAGG}{empty} -\cross{FLAGG}{empty?} -\cross{FLAGG}{entries} -\cross{FLAGG}{entry?} -\cross{FLAGG}{eq?} -\cross{FLAGG}{eval} -\cross{FLAGG}{every?} -\cross{FLAGG}{fill!} -\cross{FLAGG}{find} -\cross{FLAGG}{first} -\cross{FLAGG}{hash} -\cross{FLAGG}{index?} -\cross{FLAGG}{indices} -\cross{FLAGG}{insert} -\cross{FLAGG}{latex} -\cross{FLAGG}{less?} -\cross{FLAGG}{map} -\cross{FLAGG}{map!} -\cross{FLAGG}{max} -\cross{FLAGG}{maxIndex} -\cross{FLAGG}{member?} -\cross{FLAGG}{members} -\cross{FLAGG}{merge} -\cross{FLAGG}{min} -\cross{FLAGG}{minIndex} -\cross{FLAGG}{more?} -\cross{FLAGG}{new} -\cross{FLAGG}{parts} -\cross{FLAGG}{position} -\cross{FLAGG}{qelt} -\cross{FLAGG}{qsetelt!} -\cross{FLAGG}{reduce} -\cross{FLAGG}{remove} -\cross{FLAGG}{removeDuplicates} -\cross{FLAGG}{reverse} -\cross{FLAGG}{reverse!} -\cross{FLAGG}{sample} -\cross{FLAGG}{select} -\cross{FLAGG}{setelt} -\cross{FLAGG}{size?} -\cross{FLAGG}{sort} -\cross{FLAGG}{sort!} -\cross{FLAGG}{sorted?} -\cross{FLAGG}{swap!} -\cross{FLAGG}{\#?} -\cross{FLAGG}{?.?} -\cross{FLAGG}{?.?} -\cross{FLAGG}{?$<$?} -\cross{FLAGG}{?$<=$?} -\cross{FLAGG}{?=?} -\cross{FLAGG}{?$>$?} -\cross{FLAGG}{?$>=$?} -\cross{FLAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} copyInto! : (%,%,Integer) -> % @@ -7223,56 +7186,47 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - any? & bag & coerce & construct & convert \\ - copy & count & dictionary & duplicates & empty\\ - empty? & eq? & eval & every? & extract!\\ - find & hash & insert! & inspect & latex\\ - less? & map & map! & member? & members\\ - more? & parts & reduce & remove & remove! \\ - removeDuplicates & removeDuplicates! & sample & select & select!\\ - size? & \#? & ?=? & ?\~{}=? &\\ +\cross{MDAGG}{any?} & +\cross{MDAGG}{bag} & +\cross{MDAGG}{coerce} & +\cross{MDAGG}{construct} & +\cross{MDAGG}{convert} \\ +\cross{MDAGG}{copy} & +\cross{MDAGG}{count} & +\cross{MDAGG}{dictionary} & +\cross{MDAGG}{duplicates} & +\cross{MDAGG}{empty} \\ +\cross{MDAGG}{empty?} & +\cross{MDAGG}{eq?} & +\cross{MDAGG}{eval} & +\cross{MDAGG}{every?} & +\cross{MDAGG}{extract!} \\ +\cross{MDAGG}{find} & +\cross{MDAGG}{hash} & +\cross{MDAGG}{insert!} & +\cross{MDAGG}{inspect} & +\cross{MDAGG}{latex} \\ +\cross{MDAGG}{less?} & +\cross{MDAGG}{map} & +\cross{MDAGG}{map!} & +\cross{MDAGG}{member?} & +\cross{MDAGG}{members} \\ +\cross{MDAGG}{more?} & +\cross{MDAGG}{parts} & +\cross{MDAGG}{reduce} & +\cross{MDAGG}{remove} & +\cross{MDAGG}{remove!} \\ +\cross{MDAGG}{removeDuplicates} & +\cross{MDAGG}{removeDuplicates!} & +\cross{MDAGG}{sample} & +\cross{MDAGG}{select} & +\cross{MDAGG}{select!} \\ +\cross{MDAGG}{size?} & +\cross{MDAGG}{\#?} & +\cross{MDAGG}{?=?} & +\cross{MDAGG}{?\~{}=?} & \end{tabular} -\cross{MDAGG}{any?} -\cross{MDAGG}{bag} -\cross{MDAGG}{coerce} -\cross{MDAGG}{construct} -\cross{MDAGG}{convert} -\cross{MDAGG}{copy} -\cross{MDAGG}{count} -\cross{MDAGG}{dictionary} -\cross{MDAGG}{duplicates} -\cross{MDAGG}{empty} -\cross{MDAGG}{empty?} -\cross{MDAGG}{eq?} -\cross{MDAGG}{eval} -\cross{MDAGG}{every?} -\cross{MDAGG}{extract!} -\cross{MDAGG}{find} -\cross{MDAGG}{hash} -\cross{MDAGG}{insert!} -\cross{MDAGG}{inspect} -\cross{MDAGG}{latex} -\cross{MDAGG}{less?} -\cross{MDAGG}{map} -\cross{MDAGG}{map!} -\cross{MDAGG}{member?} -\cross{MDAGG}{members} -\cross{MDAGG}{more?} -\cross{MDAGG}{parts} -\cross{MDAGG}{reduce} -\cross{MDAGG}{remove} -\cross{MDAGG}{remove!} -\cross{MDAGG}{removeDuplicates} -\cross{MDAGG}{removeDuplicates!} -\cross{MDAGG}{sample} -\cross{MDAGG}{select} -\cross{MDAGG}{select!} -\cross{MDAGG}{size?} -\cross{MDAGG}{\#?} -\cross{MDAGG}{?=?} -\cross{MDAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} insert! : (S,%,NonNegativeInteger) -> % @@ -7422,34 +7376,31 @@ digraph pic { \pagepic{ps/v102orderedabelianmonoid.ps}{OAMON}{1.00} {\bf See:}\\ +\pageto{OrderedCancellationAbelianMonoid}{OCAMON} \pagefrom{AbelianMonoid}{ABELMON} \pagefrom{OrderedAbelianSemiGroup}{OASGP} {\bf Exports:}\\ -\begin{tabular}{lllllll} - 0 & coerce & hash & latex & max & min & sample \\ - zero? & ?*? & ?+? & ?$<$? & ?$<=$? & ?=? & ?$>$? \\ - ?$>=$? & ?\~{}=? & ?*? &&&& +\begin{tabular}{lllll} +\cross{OAMON}{0} & +\cross{OAMON}{coerce} & +\cross{OAMON}{hash} & +\cross{OAMON}{latex} & +\cross{OAMON}{max} \\ +\cross{OAMON}{min} & +\cross{OAMON}{sample} & +\cross{OAMON}{zero?} & +\cross{OAMON}{?*?} & +\cross{OAMON}{?+?} \\ +\cross{OAMON}{?$<$?} & +\cross{OAMON}{?$<=$?} & +\cross{OAMON}{?=?} & +\cross{OAMON}{?$>$?} & +\cross{OAMON}{?$>=$?} \\ +\cross{OAMON}{?\~{}=?} & +\cross{OAMON}{?*?} &&& \end{tabular} -\cross{OAMON}{0} -\cross{OAMON}{coerce} -\cross{OAMON}{hash} -\cross{OAMON}{latex} -\cross{OAMON}{max} -\cross{OAMON}{min} -\cross{OAMON}{sample} -\cross{OAMON}{zero?} -\cross{OAMON}{?*?} -\cross{OAMON}{?+?} -\cross{OAMON}{?$<$?} -\cross{OAMON}{?$<=$?} -\cross{OAMON}{?=?} -\cross{OAMON}{?$>$?} -\cross{OAMON}{?$>=$?} -\cross{OAMON}{?\~{}=?} -\cross{OAMON}{?*?} - These exports come from OrderedAbelianSemiGroup(): \begin{verbatim} coerce : % -> OutputForm @@ -7541,104 +7492,87 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - any? & children & child? & coerce & concat \\ - concat! & construct & convert & copy & count \\ - cycleEntry & cycleLength & cycleSplit! & cycleTail & cyclic? \\ - delete & distance & elt & empty & empty? \\ - entries & entry? & eq? & eval & every? \\ - explicitlyFinite? & fill! & find & first & hash \\ - index? & indices & insert & last & latex \\ - leaf? & leaves & less? & map & map! \\ - maxIndex & member? & members & minIndex & more? \\ - new & nodes & node? & parts & possiblyInfinite? \\ - qelt & qsetelt! & reduce & remove & removeDuplicates \\ - rest & sample & second & select & setchildren! \\ - setelt & setfirst! & setlast! & setrest! & setvalue! \\ - size? & split! & swap! & tail & third \\ - value & \#? & ?=? & ?.? & ?.first \\ - ?.last & ?.rest & ?.value & ?\~{}=? &\\ +\cross{STAGG}{any?} & +\cross{STAGG}{children} & +\cross{STAGG}{child?} & +\cross{STAGG}{coerce} & +\cross{STAGG}{concat} \\ +\cross{STAGG}{concat!} & +\cross{STAGG}{construct} & +\cross{STAGG}{convert} & +\cross{STAGG}{copy} & +\cross{STAGG}{count} \\ +\cross{STAGG}{cycleEntry} & +\cross{STAGG}{cycleLength} & +\cross{STAGG}{cycleSplit!} & +\cross{STAGG}{cycleTail} & +\cross{STAGG}{cyclic?} \\ +\cross{STAGG}{delete} & +\cross{STAGG}{distance} & +\cross{STAGG}{elt} & +\cross{STAGG}{empty} & +\cross{STAGG}{empty?} \\ +\cross{STAGG}{entries} & +\cross{STAGG}{entry?} & +\cross{STAGG}{eq?} & +\cross{STAGG}{eval} & +\cross{STAGG}{every?} \\ +\cross{STAGG}{explicitlyFinite?} & +\cross{STAGG}{fill!} & +\cross{STAGG}{find} & +\cross{STAGG}{first} & +\cross{STAGG}{hash} \\ +\cross{STAGG}{index?} & +\cross{STAGG}{indices} & +\cross{STAGG}{insert} & +\cross{STAGG}{last} & +\cross{STAGG}{latex} \\ +\cross{STAGG}{leaf?} & +\cross{STAGG}{leaves} & +\cross{STAGG}{less?} & +\cross{STAGG}{map} & +\cross{STAGG}{map!} \\ +\cross{STAGG}{maxIndex} & +\cross{STAGG}{member?} & +\cross{STAGG}{members} & +\cross{STAGG}{minIndex} & +\cross{STAGG}{more?} \\ +\cross{STAGG}{new} & +\cross{STAGG}{nodes} & +\cross{STAGG}{node?} & +\cross{STAGG}{parts} & +\cross{STAGG}{possiblyInfinite?} \\ +\cross{STAGG}{qelt} & +\cross{STAGG}{qsetelt!} & +\cross{STAGG}{reduce} & +\cross{STAGG}{remove} & +\cross{STAGG}{removeDuplicates} \\ +\cross{STAGG}{rest} & +\cross{STAGG}{sample} & +\cross{STAGG}{second} & +\cross{STAGG}{select} & +\cross{STAGG}{setchildren!} \\ +\cross{STAGG}{setelt} & +\cross{STAGG}{setfirst!} & +\cross{STAGG}{setlast!} & +\cross{STAGG}{setrest!} & +\cross{STAGG}{setvalue!} \\ +\cross{STAGG}{size?} & +\cross{STAGG}{split!} & +\cross{STAGG}{swap!} & +\cross{STAGG}{tail} & +\cross{STAGG}{third} \\ +\cross{STAGG}{value} & +\cross{STAGG}{\#?} & +\cross{STAGG}{?=?} & +\cross{STAGG}{?.?} & +\cross{STAGG}{?.first} \\ +\cross{STAGG}{?.last} & +\cross{STAGG}{?.rest} & +\cross{STAGG}{?.value} & +\cross{STAGG}{?\~{}=?} & \end{tabular} -\cross{STAGG}{any?} -\cross{STAGG}{children} -\cross{STAGG}{child?} -\cross{STAGG}{coerce} -\cross{STAGG}{concat} -\cross{STAGG}{concat!} -\cross{STAGG}{construct} -\cross{STAGG}{convert} -\cross{STAGG}{copy} -\cross{STAGG}{count} -\cross{STAGG}{cycleEntry} -\cross{STAGG}{cycleLength} -\cross{STAGG}{cycleSplit!} -\cross{STAGG}{cycleTail} -\cross{STAGG}{cyclic?} -\cross{STAGG}{delete} -\cross{STAGG}{distance} -\cross{STAGG}{elt} -\cross{STAGG}{empty} -\cross{STAGG}{empty?} -\cross{STAGG}{entries} -\cross{STAGG}{entry?} -\cross{STAGG}{eq?} -\cross{STAGG}{eval} -\cross{STAGG}{every?} -\cross{STAGG}{explicitlyFinite?} -\cross{STAGG}{fill!} -\cross{STAGG}{find} -\cross{STAGG}{first} -\cross{STAGG}{hash} -\cross{STAGG}{index?} -\cross{STAGG}{indices} -\cross{STAGG}{insert} -\cross{STAGG}{last} -\cross{STAGG}{latex} -\cross{STAGG}{leaf?} -\cross{STAGG}{leaves} -\cross{STAGG}{less?} -\cross{STAGG}{map} -\cross{STAGG}{map!} -\cross{STAGG}{maxIndex} -\cross{STAGG}{member?} -\cross{STAGG}{members} -\cross{STAGG}{minIndex} -\cross{STAGG}{more?} -\cross{STAGG}{new} -\cross{STAGG}{nodes} -\cross{STAGG}{node?} -\cross{STAGG}{parts} -\cross{STAGG}{possiblyInfinite?} -\cross{STAGG}{qelt} -\cross{STAGG}{qsetelt!} -\cross{STAGG}{reduce} -\cross{STAGG}{remove} -\cross{STAGG}{removeDuplicates} -\cross{STAGG}{rest} -\cross{STAGG}{sample} -\cross{STAGG}{second} -\cross{STAGG}{select} -\cross{STAGG}{setchildren!} -\cross{STAGG}{setelt} -\cross{STAGG}{setfirst!} -\cross{STAGG}{setlast!} -\cross{STAGG}{setrest!} -\cross{STAGG}{setvalue!} -\cross{STAGG}{size?} -\cross{STAGG}{split!} -\cross{STAGG}{swap!} -\cross{STAGG}{tail} -\cross{STAGG}{third} -\cross{STAGG}{value} -\cross{STAGG}{\#?} -\cross{STAGG}{?=?} -\cross{STAGG}{?.?} -\cross{STAGG}{?.first} -\cross{STAGG}{?.last} -\cross{STAGG}{?.rest} -\cross{STAGG}{?.value} -\cross{STAGG}{?\~{}=?} - These are implemented by this category: \begin{verbatim} concat : (%,%) -> % @@ -7939,84 +7873,70 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - any? & coerce & concat & construct & convert \\ - copy & copyInto! & count & delete & elt \\ - empty & empty? & entries & entry? & eq? \\ - eval & every? & fill! & find & first \\ - hash & index? & indices & insert & latex \\ - less? & map & map! & max & maxIndex \\ - member? & members & merge & min & minIndex \\ - more? & new & parts & position & qelt \\ - qsetelt! & reduce & remove & removeDuplicates & reverse \\ - reverse! & sample & select & setelt & size? \\ - sort & sort! & sorted? & swap! & \#? \\ - ?.? & ?$<$? & ?$<=$? & ?\~{}=? & ?=? \\ - ?$>$? & ?$>=$? &&&\\ +\cross{A1AGG}{any?} & +\cross{A1AGG}{coerce} & +\cross{A1AGG}{concat} & +\cross{A1AGG}{construct} & +\cross{A1AGG}{convert} \\ +\cross{A1AGG}{copy} & +\cross{A1AGG}{copyInto!} & +\cross{A1AGG}{count} & +\cross{A1AGG}{delete} & +\cross{A1AGG}{elt} \\ +\cross{A1AGG}{empty} & +\cross{A1AGG}{empty?} & +\cross{A1AGG}{entries} & +\cross{A1AGG}{entry?} & +\cross{A1AGG}{eq?} \\ +\cross{A1AGG}{eval} & +\cross{A1AGG}{every?} & +\cross{A1AGG}{fill!} & +\cross{A1AGG}{find} & +\cross{A1AGG}{first} \\ +\cross{A1AGG}{hash} & +\cross{A1AGG}{index?} & +\cross{A1AGG}{indices} & +\cross{A1AGG}{insert} & +\cross{A1AGG}{latex} \\ +\cross{A1AGG}{less?} & +\cross{A1AGG}{map} & +\cross{A1AGG}{map!} & +\cross{A1AGG}{max} & +\cross{A1AGG}{maxIndex} \\ +\cross{A1AGG}{member?} & +\cross{A1AGG}{members} & +\cross{A1AGG}{merge} & +\cross{A1AGG}{min} & +\cross{A1AGG}{minIndex} \\ +\cross{A1AGG}{more?} & +\cross{A1AGG}{new} & +\cross{A1AGG}{parts} & +\cross{A1AGG}{position} & +\cross{A1AGG}{qelt} \\ +\cross{A1AGG}{qsetelt!} & +\cross{A1AGG}{reduce} & +\cross{A1AGG}{remove} & +\cross{A1AGG}{removeDuplicates} & +\cross{A1AGG}{reverse} \\ +\cross{A1AGG}{reverse!} & +\cross{A1AGG}{sample} & +\cross{A1AGG}{select} & +\cross{A1AGG}{setelt} & +\cross{A1AGG}{size?} \\ +\cross{A1AGG}{sort} & +\cross{A1AGG}{sort!} & +\cross{A1AGG}{sorted?} & +\cross{A1AGG}{swap!} & +\cross{A1AGG}{\#?} \\ +\cross{A1AGG}{?.?} & +\cross{A1AGG}{?$<$?} & +\cross{A1AGG}{?$<=$?} & +\cross{A1AGG}{?\~{}=?} & +\cross{A1AGG}{?=?} \\ +\cross{A1AGG}{?$>$?} & +\cross{A1AGG}{?$>=$?} &&& \end{tabular} -\cross{A1AGG}{any?} -\cross{A1AGG}{coerce} -\cross{A1AGG}{concat} -\cross{A1AGG}{construct} -\cross{A1AGG}{convert} -\cross{A1AGG}{copy} -\cross{A1AGG}{copyInto!} -\cross{A1AGG}{count} -\cross{A1AGG}{delete} -\cross{A1AGG}{elt} -\cross{A1AGG}{empty} -\cross{A1AGG}{empty?} -\cross{A1AGG}{entries} -\cross{A1AGG}{entry?} -\cross{A1AGG}{eq?} -\cross{A1AGG}{eval} -\cross{A1AGG}{every?} -\cross{A1AGG}{fill!} -\cross{A1AGG}{find} -\cross{A1AGG}{first} -\cross{A1AGG}{hash} -\cross{A1AGG}{index?} -\cross{A1AGG}{indices} -\cross{A1AGG}{insert} -\cross{A1AGG}{latex} -\cross{A1AGG}{less?} -\cross{A1AGG}{map} -\cross{A1AGG}{map!} -\cross{A1AGG}{max} -\cross{A1AGG}{maxIndex} -\cross{A1AGG}{member?} -\cross{A1AGG}{members} -\cross{A1AGG}{merge} -\cross{A1AGG}{min} -\cross{A1AGG}{minIndex} -\cross{A1AGG}{more?} -\cross{A1AGG}{new} -\cross{A1AGG}{parts} -\cross{A1AGG}{position} -\cross{A1AGG}{qelt} -\cross{A1AGG}{qsetelt!} -\cross{A1AGG}{reduce} -\cross{A1AGG}{remove} -\cross{A1AGG}{removeDuplicates} -\cross{A1AGG}{reverse} -\cross{A1AGG}{reverse!} -\cross{A1AGG}{sample} -\cross{A1AGG}{select} -\cross{A1AGG}{setelt} -\cross{A1AGG}{size?} -\cross{A1AGG}{sort} -\cross{A1AGG}{sort!} -\cross{A1AGG}{sorted?} -\cross{A1AGG}{swap!} -\cross{A1AGG}{\#?} -\cross{A1AGG}{?.?} -\cross{A1AGG}{?$<$?} -\cross{A1AGG}{?$<=$?} -\cross{A1AGG}{?\~{}=?} -\cross{A1AGG}{?=?} -\cross{A1AGG}{?$>$?} -\cross{A1AGG}{?$>=$?} - These are implemented by this category: \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean @@ -8434,75 +8354,63 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - any? & bag & brace & cardinality & coerce\\ - complement & construct & convert & copy & count\\ - count & dictionary & difference & empty & empty?\\ - eq? & eval & every? & extract! & find\\ - hash & index & insert! & inspect & intersect\\ - latex & less? & lookup & map & map!\\ - max & member? & members & min & more?\\ - parts & random & reduce & remove & remove!\\ - removeDuplicates & sample & select & select! & set\\ - size & size? & subset? & symmetricDifference & union\\ - universe & \#? & ?$<$? & ?=? & ?\~{}=?\\ +\cross{FSAGG}{any?} & +\cross{FSAGG}{bag} & +\cross{FSAGG}{brace} & +\cross{FSAGG}{cardinality} & +\cross{FSAGG}{coerce} \\ +\cross{FSAGG}{complement} & +\cross{FSAGG}{construct} & +\cross{FSAGG}{convert} & +\cross{FSAGG}{copy} & +\cross{FSAGG}{count} \\ +\cross{FSAGG}{count} & +\cross{FSAGG}{dictionary} & +\cross{FSAGG}{difference} & +\cross{FSAGG}{empty} & +\cross{FSAGG}{empty?} \\ +\cross{FSAGG}{eq?} & +\cross{FSAGG}{eval} & +\cross{FSAGG}{every?} & +\cross{FSAGG}{extract!} & +\cross{FSAGG}{find} \\ +\cross{FSAGG}{hash} & +\cross{FSAGG}{index} & +\cross{FSAGG}{insert!} & +\cross{FSAGG}{inspect} & +\cross{FSAGG}{intersect} \\ +\cross{FSAGG}{latex} & +\cross{FSAGG}{less?} & +\cross{FSAGG}{lookup} & +\cross{FSAGG}{map} & +\cross{FSAGG}{map!} \\ +\cross{FSAGG}{max} & +\cross{FSAGG}{member?} & +\cross{FSAGG}{members} & +\cross{FSAGG}{min} & +\cross{FSAGG}{more?} \\ +\cross{FSAGG}{parts} & +\cross{FSAGG}{random} & +\cross{FSAGG}{reduce} & +\cross{FSAGG}{remove} & +\cross{FSAGG}{remove!} \\ +\cross{FSAGG}{removeDuplicates} & +\cross{FSAGG}{sample} & +\cross{FSAGG}{select} & +\cross{FSAGG}{select!} & +\cross{FSAGG}{set} \\ +\cross{FSAGG}{size} & +\cross{FSAGG}{size?} & +\cross{FSAGG}{subset?} & +\cross{FSAGG}{symmetricDifference} & +\cross{FSAGG}{union} \\ +\cross{FSAGG}{universe} & +\cross{FSAGG}{\#?} & +\cross{FSAGG}{?$<$?} & +\cross{FSAGG}{?=?} & +\cross{FSAGG}{?\~{}=?} \\ \end{tabular} -\cross{FSAGG}{any?} -\cross{FSAGG}{bag} -\cross{FSAGG}{brace} -\cross{FSAGG}{cardinality} -\cross{FSAGG}{coerce} -\cross{FSAGG}{complement} -\cross{FSAGG}{construct} -\cross{FSAGG}{convert} -\cross{FSAGG}{copy} -\cross{FSAGG}{count} -\cross{FSAGG}{count} -\cross{FSAGG}{dictionary} -\cross{FSAGG}{difference} -\cross{FSAGG}{empty} -\cross{FSAGG}{empty?} -\cross{FSAGG}{eq?} -\cross{FSAGG}{eval} -\cross{FSAGG}{every?} -\cross{FSAGG}{extract!} -\cross{FSAGG}{find} -\cross{FSAGG}{hash} -\cross{FSAGG}{index} -\cross{FSAGG}{insert!} -\cross{FSAGG}{inspect} -\cross{FSAGG}{intersect} -\cross{FSAGG}{latex} -\cross{FSAGG}{less?} -\cross{FSAGG}{lookup} -\cross{FSAGG}{map} -\cross{FSAGG}{map!} -\cross{FSAGG}{max} -\cross{FSAGG}{member?} -\cross{FSAGG}{members} -\cross{FSAGG}{min} -\cross{FSAGG}{more?} -\cross{FSAGG}{parts} -\cross{FSAGG}{random} -\cross{FSAGG}{reduce} -\cross{FSAGG}{remove} -\cross{FSAGG}{remove!} -\cross{FSAGG}{removeDuplicates} -\cross{FSAGG}{sample} -\cross{FSAGG}{select} -\cross{FSAGG}{select!} -\cross{FSAGG}{set} -\cross{FSAGG}{size} -\cross{FSAGG}{size?} -\cross{FSAGG}{subset?} -\cross{FSAGG}{symmetricDifference} -\cross{FSAGG}{union} -\cross{FSAGG}{universe} -\cross{FSAGG}{\#?} -\cross{FSAGG}{?$<$?} -\cross{FSAGG}{?=?} -\cross{FSAGG}{?\~{}=?} - These are implemented by this category: \begin{verbatim} brace : List S -> % @@ -8758,58 +8666,49 @@ digraph pic { \pagefrom{Dictionary}{DIAGG} {\bf Exports:}\\ -\begin{tabular}{lllllll} - any? & bag & coerce & construct & convert \\ - copy & count & dictionary & empty & empty? \\ - eq? & eval & every? & extract! & find \\ - hash & insert! & inspect & key? & keys \\ - latex & less? & map & map! & member? \\ - members & more? & parts & reduce & remove \\ - remove! & removeDuplicates & sample & search & select \\ - select! & size? & \#? & ?=? & ?\~{}=? \\ +\begin{tabular}{lllll} +\cross{KDAGG}{any?} & +\cross{KDAGG}{bag} & +\cross{KDAGG}{coerce} & +\cross{KDAGG}{construct} & +\cross{KDAGG}{convert} \\ +\cross{KDAGG}{copy} & +\cross{KDAGG}{count} & +\cross{KDAGG}{dictionary} & +\cross{KDAGG}{empty} & +\cross{KDAGG}{empty?} \\ +\cross{KDAGG}{eq?} & +\cross{KDAGG}{eval} & +\cross{KDAGG}{every?} & +\cross{KDAGG}{extract!} & +\cross{KDAGG}{find} \\ +\cross{KDAGG}{hash} & +\cross{KDAGG}{insert!} & +\cross{KDAGG}{inspect} & +\cross{KDAGG}{key?} & +\cross{KDAGG}{keys} \\ +\cross{KDAGG}{latex} & +\cross{KDAGG}{less?} & +\cross{KDAGG}{map} & +\cross{KDAGG}{map!} & +\cross{KDAGG}{member?} \\ +\cross{KDAGG}{members} & +\cross{KDAGG}{more?} & +\cross{KDAGG}{parts} & +\cross{KDAGG}{reduce} & +\cross{KDAGG}{remove} \\ +\cross{KDAGG}{remove!} & +\cross{KDAGG}{removeDuplicates} & +\cross{KDAGG}{sample} & +\cross{KDAGG}{search} & +\cross{KDAGG}{select} \\ +\cross{KDAGG}{select!} & +\cross{KDAGG}{size?} & +\cross{KDAGG}{\#?} & +\cross{KDAGG}{?=?} & +\cross{KDAGG}{?\~{}=?} \\ \end{tabular} -\cross{KDAGG}{any?} -\cross{KDAGG}{bag} -\cross{KDAGG}{coerce} -\cross{KDAGG}{construct} -\cross{KDAGG}{convert} -\cross{KDAGG}{copy} -\cross{KDAGG}{count} -\cross{KDAGG}{dictionary} -\cross{KDAGG}{empty} -\cross{KDAGG}{empty?} -\cross{KDAGG}{eq?} -\cross{KDAGG}{eval} -\cross{KDAGG}{every?} -\cross{KDAGG}{extract!} -\cross{KDAGG}{find} -\cross{KDAGG}{hash} -\cross{KDAGG}{insert!} -\cross{KDAGG}{inspect} -\cross{KDAGG}{key?} -\cross{KDAGG}{keys} -\cross{KDAGG}{latex} -\cross{KDAGG}{less?} -\cross{KDAGG}{map} -\cross{KDAGG}{map!} -\cross{KDAGG}{member?} -\cross{KDAGG}{members} -\cross{KDAGG}{more?} -\cross{KDAGG}{parts} -\cross{KDAGG}{reduce} -\cross{KDAGG}{remove} -\cross{KDAGG}{remove!} -\cross{KDAGG}{removeDuplicates} -\cross{KDAGG}{sample} -\cross{KDAGG}{search} -\cross{KDAGG}{select} -\cross{KDAGG}{select!} -\cross{KDAGG}{size?} -\cross{KDAGG}{\#?} -\cross{KDAGG}{?=?} -\cross{KDAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} remove! : (Key,%) -> Union(Entry,"failed") @@ -8985,6 +8884,126 @@ digraph pic { @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{LeftModule}{LMODULE} +\pagepic{ps/v102leftmodule.ps}{LMODULE}{0.90} + +{\bf See:}\\ +\pageto{BiModule}{BMODULE} +\pageto{Ring}{RING} +\pagefrom{AbelianGroup}{ABELGRP} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{LMODULE}{0} & +\cross{LMODULE}{coerce} & +\cross{LMODULE}{hash} & +\cross{LMODULE}{latex} & +\cross{LMODULE}{sample} \\ +\cross{LMODULE}{subtractIfCan} & +\cross{LMODULE}{zero?} & +\cross{LMODULE}{?~=?} & +\cross{LMODULE}{?*?} & +\cross{LMODULE}{?+?} \\ +\cross{LMODULE}{?-?} & +\cross{LMODULE}{-?} & +\cross{LMODULE}{?=?} && +\end{tabular} + +These are directly exported but not implemented: +\begin{verbatim} + ?*? : (R,%) -> % +\end{verbatim} + +These exports come from AbelianGroup(): +\begin{verbatim} + 0 : () -> % + coerce : % -> OutputForm + hash : % -> SingleInteger + latex : % -> String + sample : () -> % + subtractIfCan : (%,%) -> Union(%,"failed") + zero? : % -> Boolean + ?~=? : (%,%) -> Boolean + ?=? : (%,%) -> Boolean + ?+? : (%,%) -> % + ?*? : (PositiveInteger,%) -> % + ?*? : (NonNegativeInteger,%) -> % + ?*? : (Integer,%) -> % + ?-? : (%,%) -> % + -? : % -> % +\end{verbatim} + +<>= +)abbrev category LMODULE LeftModule +++ Author: +++ Date Created: +++ Date Last Updated: +++ Basic Functions: +++ Related Constructors: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ References: +++ Description: +++ The category of left modules over an rng (ring not necessarily with unit). +++ This is an abelian group which supports left multiplation by elements of +++ the rng. +++ +++ Axioms: +++ \spad{ (a*b)*x = a*(b*x) } +++ \spad{ (a+b)*x = (a*x)+(b*x) } +++ \spad{ a*(x+y) = (a*x)+(a*y) } +LeftModule(R:Rng):Category == AbelianGroup with + "*": (R,%) -> % + ++ r*x returns the left multiplication of the module element x + ++ by the ring element r. + +@ +<>= +"LMODULE" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=LMODULE"]; +"LMODULE" -> "ABELGRP" + +@ +<>= +"LeftModule(a:Rng)" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=LMODULE"]; +"LeftModule(a:Rng)" -> "AbelianGroup()" + +"LeftModule(a:Ring)" + [color=seagreen,href="books/bookvol10.2.pamphlet#nameddest=LMODULE"]; +"LeftModule(a:Ring)" -> "LeftModule(a:Rng)" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"LeftModule(a:Rng)" [color=lightblue]; +"LeftModule(a:Rng)" -> "AbelianGroup()" + +"AbelianGroup()" [color=lightblue]; +"AbelianGroup()" -> "CancellationAbelianMonoid()" +"AbelianGroup()" -> "RepeatedDoubling(AbelianGroup)" + +"RepeatedDoubling(AbelianGroup)" [color="#00EE00"]; +"RepeatedDoubling(AbelianGroup)" -> "RepeatedDoubling(a:SetCategory)" + +"RepeatedDoubling(a:SetCategory)" [color="#00EE00"]; +"RepeatedDoubling(a:SetCategory)" -> "Package" + +"Package" [color="#00EE00"]; + +"CancellationAbelianMonoid()" [color=lightblue]; +"CancellationAbelianMonoid()" -> "ABELMON..." + +"ABELMON..." [color=lightblue]; +} + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pagehead{ListAggregate}{LSAGG} \pagepic{ps/v102listaggregate.ps}{LSAGG}{0.50} @@ -8994,130 +9013,109 @@ digraph pic { \pagefrom{FiniteLinearAggregate}{FLAGG} {\bf Exports:}\\ -\begin{tabular}{lllllll} - any? & children & child? & coerce & concat \\ - concat! & construct & convert & copy & copyInto! \\ - count & cycleEntry & cycleLength & cycleSplit! & cycleTail \\ - cyclic? & delete & delete! & distance & elt \\ - empty & empty? & entries & entry? & eq? \\ - eval & every? & explicitlyFinite? & fill! & find \\ - first & hash & index? & indices & insert \\ - insert! & last & latex & leaf? & leaves \\ - less? & list & map & map! & max \\ - maxIndex & member? & members & merge & merge! \\ - min & minIndex & more? & new & nodes \\ - node? & parts & position & possiblyInfinite? & qelt \\ - qsetelt! & reduce & remove & remove! & removeDuplicates \\ - removeDuplicates! & rest & reverse & reverse! & sample \\ - second & select & select! & setchildren! & setelt \\ - setfirst! & setlast! & setrest! & setvalue! & size? \\ - sort & sort! & sorted? & split! & swap! \\ - tail & third & value & \#? & ?.? \\ - ?.last & ?.rest & ?.first & ?.value & ?$<$? \\ - ?$<=$? & ?=? & ?$>$? & ?$>=$? & ?\~{}=? \\ +\begin{tabular}{llll} +\cross{LSAGG}{any?} & +\cross{LSAGG}{children} & +\cross{LSAGG}{child?} & +\cross{LSAGG}{coerce} \\ +\cross{LSAGG}{concat} & +\cross{LSAGG}{concat!} & +\cross{LSAGG}{construct} & +\cross{LSAGG}{convert} \\ +\cross{LSAGG}{copy} & +\cross{LSAGG}{copyInto!} & +\cross{LSAGG}{count} & +\cross{LSAGG}{cycleEntry} \\ +\cross{LSAGG}{cycleLength} & +\cross{LSAGG}{cycleSplit!} & +\cross{LSAGG}{cycleTail} & +\cross{LSAGG}{cyclic?} \\ +\cross{LSAGG}{delete} & +\cross{LSAGG}{delete!} & +\cross{LSAGG}{distance} & +\cross{LSAGG}{elt} \\ +\cross{LSAGG}{empty} & +\cross{LSAGG}{empty?} & +\cross{LSAGG}{entries} & +\cross{LSAGG}{entry?} \\ +\cross{LSAGG}{eq?} & +\cross{LSAGG}{eval} & +\cross{LSAGG}{every?} & +\cross{LSAGG}{explicitlyFinite?} \\ +\cross{LSAGG}{fill!} & +\cross{LSAGG}{find} & +\cross{LSAGG}{first} & +\cross{LSAGG}{hash} \\ +\cross{LSAGG}{index?} & +\cross{LSAGG}{indices} & +\cross{LSAGG}{insert} & +\cross{LSAGG}{insert!} \\ +\cross{LSAGG}{last} & +\cross{LSAGG}{latex} & +\cross{LSAGG}{leaf?} & +\cross{LSAGG}{leaves} \\ +\cross{LSAGG}{less?} & +\cross{LSAGG}{list} & +\cross{LSAGG}{map} & +\cross{LSAGG}{map!} \\ +\cross{LSAGG}{max} & +\cross{LSAGG}{maxIndex} & +\cross{LSAGG}{member?} & +\cross{LSAGG}{members} \\ +\cross{LSAGG}{merge} & +\cross{LSAGG}{merge!} & +\cross{LSAGG}{min} & +\cross{LSAGG}{minIndex} \\ +\cross{LSAGG}{more?} & +\cross{LSAGG}{new} & +\cross{LSAGG}{nodes} & +\cross{LSAGG}{node?} \\ +\cross{LSAGG}{parts} & +\cross{LSAGG}{position} & +\cross{LSAGG}{possiblyInfinite?} & +\cross{LSAGG}{qelt} \\ +\cross{LSAGG}{qsetelt!} & +\cross{LSAGG}{reduce} & +\cross{LSAGG}{remove} & +\cross{LSAGG}{remove!} \\ +\cross{LSAGG}{removeDuplicates} & +\cross{LSAGG}{removeDuplicates!} & +\cross{LSAGG}{rest} & +\cross{LSAGG}{reverse} \\ +\cross{LSAGG}{reverse!} & +\cross{LSAGG}{sample} & +\cross{LSAGG}{second} & +\cross{LSAGG}{select} \\ +\cross{LSAGG}{select!} & +\cross{LSAGG}{setchildren!} & +\cross{LSAGG}{setelt} & +\cross{LSAGG}{setfirst!} \\ +\cross{LSAGG}{setlast!} & +\cross{LSAGG}{setrest!} & +\cross{LSAGG}{setvalue!} & +\cross{LSAGG}{size?} \\ +\cross{LSAGG}{sort} & +\cross{LSAGG}{sort!} & +\cross{LSAGG}{sorted?} & +\cross{LSAGG}{split!} \\ +\cross{LSAGG}{swap!} & +\cross{LSAGG}{tail} & +\cross{LSAGG}{third} & +\cross{LSAGG}{value} \\ +\cross{LSAGG}{\#?} & +\cross{LSAGG}{?.?} & +\cross{LSAGG}{?.last} & +\cross{LSAGG}{?.rest} \\ +\cross{LSAGG}{?.first} & +\cross{LSAGG}{?.value} & +\cross{LSAGG}{?$<$?} & +\cross{LSAGG}{?$<=$?} \\ +\cross{LSAGG}{?=?} & +\cross{LSAGG}{?$>$?} & +\cross{LSAGG}{?$>=$?} & +\cross{LSAGG}{?\~{}=?} \\ \end{tabular} -\cross{LSAGG}{any?} -\cross{LSAGG}{children} -\cross{LSAGG}{child?} -\cross{LSAGG}{coerce} -\cross{LSAGG}{concat} -\cross{LSAGG}{concat!} -\cross{LSAGG}{construct} -\cross{LSAGG}{convert} -\cross{LSAGG}{copy} -\cross{LSAGG}{copyInto!} -\cross{LSAGG}{count} -\cross{LSAGG}{cycleEntry} -\cross{LSAGG}{cycleLength} -\cross{LSAGG}{cycleSplit!} -\cross{LSAGG}{cycleTail} -\cross{LSAGG}{cyclic?} -\cross{LSAGG}{delete} -\cross{LSAGG}{delete!} -\cross{LSAGG}{distance} -\cross{LSAGG}{elt} -\cross{LSAGG}{empty} -\cross{LSAGG}{empty?} -\cross{LSAGG}{entries} -\cross{LSAGG}{entry?} -\cross{LSAGG}{eq?} -\cross{LSAGG}{eval} -\cross{LSAGG}{every?} -\cross{LSAGG}{explicitlyFinite?} -\cross{LSAGG}{fill!} -\cross{LSAGG}{find} -\cross{LSAGG}{first} -\cross{LSAGG}{hash} -\cross{LSAGG}{index?} -\cross{LSAGG}{indices} -\cross{LSAGG}{insert} -\cross{LSAGG}{insert!} -\cross{LSAGG}{last} -\cross{LSAGG}{latex} -\cross{LSAGG}{leaf?} -\cross{LSAGG}{leaves} -\cross{LSAGG}{less?} -\cross{LSAGG}{list} -\cross{LSAGG}{map} -\cross{LSAGG}{map!} -\cross{LSAGG}{max} -\cross{LSAGG}{maxIndex} -\cross{LSAGG}{member?} -\cross{LSAGG}{members} -\cross{LSAGG}{merge} -\cross{LSAGG}{merge!} -\cross{LSAGG}{min} -\cross{LSAGG}{minIndex} -\cross{LSAGG}{more?} -\cross{LSAGG}{new} -\cross{LSAGG}{nodes} -\cross{LSAGG}{node?} -\cross{LSAGG}{parts} -\cross{LSAGG}{position} -\cross{LSAGG}{possiblyInfinite?} -\cross{LSAGG}{qelt} -\cross{LSAGG}{qsetelt!} -\cross{LSAGG}{reduce} -\cross{LSAGG}{remove} -\cross{LSAGG}{remove!} -\cross{LSAGG}{removeDuplicates} -\cross{LSAGG}{removeDuplicates!} -\cross{LSAGG}{rest} -\cross{LSAGG}{reverse} -\cross{LSAGG}{reverse!} -\cross{LSAGG}{sample} -\cross{LSAGG}{second} -\cross{LSAGG}{select} -\cross{LSAGG}{select!} -\cross{LSAGG}{setchildren!} -\cross{LSAGG}{setelt} -\cross{LSAGG}{setfirst!} -\cross{LSAGG}{setlast!} -\cross{LSAGG}{setrest!} -\cross{LSAGG}{setvalue!} -\cross{LSAGG}{size?} -\cross{LSAGG}{sort} -\cross{LSAGG}{sort!} -\cross{LSAGG}{sorted?} -\cross{LSAGG}{split!} -\cross{LSAGG}{swap!} -\cross{LSAGG}{tail} -\cross{LSAGG}{third} -\cross{LSAGG}{value} -\cross{LSAGG}{\#?} -\cross{LSAGG}{?.?} -\cross{LSAGG}{?.last} -\cross{LSAGG}{?.rest} -\cross{LSAGG}{?.first} -\cross{LSAGG}{?.value} -\cross{LSAGG}{?$<$?} -\cross{LSAGG}{?$<=$?} -\cross{LSAGG}{?=?} -\cross{LSAGG}{?$>$?} -\cross{LSAGG}{?$>=$?} -\cross{LSAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} \end{verbatim} @@ -9582,67 +9580,56 @@ digraph pic { \pagefrom{SetAggregate}{SETAGG} {\bf Exports:}\\ -\begin{tabular}{lllll} - any? & bag & brace & coerce & construct\\ - convert & copy & count & dictionary & difference\\ - duplicates & empty & empty? & eq? & eval\\ - every? & extract! & find & hash & insert!\\ - inspect & intersect & latex & less? & map\\ - map! & member? & members & more? & parts\\ - reduce & remove & remove! & removeDuplicates & removeDuplicates!\\ - sample & select & select! & set & size?\\ - subset? & symmetricDifference & union & \#? & ?\~{}=?\\ - ?$<$? & ?=? &&& +\begin{tabular}{llll} +\cross{MSETAGG}{any?} & +\cross{MSETAGG}{bag} & +\cross{MSETAGG}{brace} & +\cross{MSETAGG}{coerce} \\ +\cross{MSETAGG}{construct} & +\cross{MSETAGG}{convert} & +\cross{MSETAGG}{copy} & +\cross{MSETAGG}{count} \\ +\cross{MSETAGG}{dictionary} & +\cross{MSETAGG}{difference} & +\cross{MSETAGG}{duplicates} & +\cross{MSETAGG}{empty} \\ +\cross{MSETAGG}{empty?} & +\cross{MSETAGG}{eq?} & +\cross{MSETAGG}{eval} & +\cross{MSETAGG}{every?} \\ +\cross{MSETAGG}{extract!} & +\cross{MSETAGG}{find} & +\cross{MSETAGG}{hash} & +\cross{MSETAGG}{insert!} \\ +\cross{MSETAGG}{inspect} & +\cross{MSETAGG}{intersect} & +\cross{MSETAGG}{latex} & +\cross{MSETAGG}{less?} \\ +\cross{MSETAGG}{map} & +\cross{MSETAGG}{map!} & +\cross{MSETAGG}{member?} & +\cross{MSETAGG}{members} \\ +\cross{MSETAGG}{more?} & +\cross{MSETAGG}{parts} & +\cross{MSETAGG}{reduce} & +\cross{MSETAGG}{remove} \\ +\cross{MSETAGG}{remove!} & +\cross{MSETAGG}{removeDuplicates} & +\cross{MSETAGG}{removeDuplicates!} & +\cross{MSETAGG}{sample} \\ +\cross{MSETAGG}{select} & +\cross{MSETAGG}{select!} & +\cross{MSETAGG}{set} & +\cross{MSETAGG}{size?} \\ +\cross{MSETAGG}{subset?} & +\cross{MSETAGG}{symmetricDifference} & +\cross{MSETAGG}{union} & +\cross{MSETAGG}{\#?} \\ +\cross{MSETAGG}{?\~{}=?} & +\cross{MSETAGG}{?$<$?} & +\cross{MSETAGG}{?=?} & \end{tabular} -\cross{MSETAGG}{any?} -\cross{MSETAGG}{bag} -\cross{MSETAGG}{brace} -\cross{MSETAGG}{coerce} -\cross{MSETAGG}{construct} -\cross{MSETAGG}{convert} -\cross{MSETAGG}{copy} -\cross{MSETAGG}{count} -\cross{MSETAGG}{dictionary} -\cross{MSETAGG}{difference} -\cross{MSETAGG}{duplicates} -\cross{MSETAGG}{empty} -\cross{MSETAGG}{empty?} -\cross{MSETAGG}{eq?} -\cross{MSETAGG}{eval} -\cross{MSETAGG}{every?} -\cross{MSETAGG}{extract!} -\cross{MSETAGG}{find} -\cross{MSETAGG}{hash} -\cross{MSETAGG}{insert!} -\cross{MSETAGG}{inspect} -\cross{MSETAGG}{intersect} -\cross{MSETAGG}{latex} -\cross{MSETAGG}{less?} -\cross{MSETAGG}{map} -\cross{MSETAGG}{map!} -\cross{MSETAGG}{member?} -\cross{MSETAGG}{members} -\cross{MSETAGG}{more?} -\cross{MSETAGG}{parts} -\cross{MSETAGG}{reduce} -\cross{MSETAGG}{remove} -\cross{MSETAGG}{remove!} -\cross{MSETAGG}{removeDuplicates} -\cross{MSETAGG}{removeDuplicates!} -\cross{MSETAGG}{sample} -\cross{MSETAGG}{select} -\cross{MSETAGG}{select!} -\cross{MSETAGG}{set} -\cross{MSETAGG}{size?} -\cross{MSETAGG}{subset?} -\cross{MSETAGG}{symmetricDifference} -\cross{MSETAGG}{union} -\cross{MSETAGG}{\#?} -\cross{MSETAGG}{?\~{}=?} -\cross{MSETAGG}{?$<$?} -\cross{MSETAGG}{?=?} - These exports come from MultiDictionary(S:SetCategory): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -9772,36 +9759,268 @@ digraph pic { @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{OrderedCancellationAbelianMonoid}{OCAMON} +\pagepic{ps/v102orderedcancellationabelianmonoid.ps}{OCAMON}{0.75} + +{\bf See:}\\ +\pageto{OrderedAbelianGroup}{OAGROUP} +\pageto{OrderedAbelianMonoidSup}{OAMONS} +\pagefrom{CancellationAbelianMonoid}{CABMON} +\pagefrom{OrderedAbelianMonoid}{OAMON} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{OCAMON}{0} & +\cross{OCAMON}{coerce} & +\cross{OCAMON}{hash} & +\cross{OCAMON}{latex} & +\cross{OCAMON}{max} \\ +\cross{OCAMON}{min} & +\cross{OCAMON}{sample} & +\cross{OCAMON}{subtractIfCan} & +\cross{OCAMON}{zero?} & +\cross{OCAMON}{?\~{}=?} \\ +\cross{OCAMON}{?*?} & +\cross{OCAMON}{?+?} & +\cross{OCAMON}{?$<$?} & +\cross{OCAMON}{?$<=$?} & +\cross{OCAMON}{?=?} \\ +\cross{OCAMON}{?$>$?} & +\cross{OCAMON}{?$>=$?} &&& +\end{tabular} + +These exports come from OrderedAbelianMonoid(): +\begin{verbatim} + 0 : () -> % + coerce : % -> OutputForm + hash : % -> SingleInteger + latex : % -> String + max : (%,%) -> % + min : (%,%) -> % + sample : () -> % + zero? : % -> Boolean + ? Boolean + ?<=? : (%,%) -> Boolean + ?=? : (%,%) -> Boolean + ?>? : (%,%) -> Boolean + ?>=? : (%,%) -> Boolean + ?~=? : (%,%) -> Boolean + ?*? : (NonNegativeInteger,%) -> % + ?*? : (PositiveInteger,%) -> % + ?+? : (%,%) -> % +\end{verbatim} + +These exports come from CancellationAbelianMonoid(): +\begin{verbatim} + subtractIfCan : (%,%) -> Union(%,"failed") +\end{verbatim} + +<>= +)abbrev category OCAMON OrderedCancellationAbelianMonoid +++ Author: +++ Date Created: +++ Date Last Updated: +++ Basic Functions: +++ Related Constructors: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ References: +++ Description: +++ Ordered sets which are also abelian cancellation monoids, +++ such that the addition preserves the ordering. +OrderedCancellationAbelianMonoid(): Category == + Join(OrderedAbelianMonoid, CancellationAbelianMonoid) + +@ +<>= +"OCAMON" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=OCAMON"]; +"OCAMON" -> "OAMON" +"OCAMON" -> "CABMON" + +@ +<>= +"OrderedCancellationAbelianMonoid()" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=OCAMON"]; +"OrderedCancellationAbelianMonoid()" -> "OrderedAbelianMonoid()" +"OrderedCancellationAbelianMonoid()" -> "CancellationAbelianMonoid()" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"OrderedCancellationAbelianMonoid()" [color=lightblue]; +"OrderedCancellationAbelianMonoid()" -> "OrderedAbelianMonoid()" +"OrderedCancellationAbelianMonoid()" -> "CancellationAbelianMonoid()" + +"OrderedAbelianMonoid()" [color=lightblue]; +"OrderedAbelianMonoid()" -> "OrderedAbelianSemiGroup()" +"OrderedAbelianMonoid()" -> "AbelianMonoid()" + +"OrderedAbelianSemiGroup()" [color=lightblue]; +"OrderedAbelianSemiGroup()" -> "OrderedSet()" +"OrderedAbelianSemiGroup()" -> "AbelianMonoid()" + +"OrderedSet()" [color=lightblue]; +"OrderedSet()" -> "SETCAT..." + +"CancellationAbelianMonoid()" [color=lightblue]; +"CancellationAbelianMonoid()" -> "AbelianMonoid()" + +"AbelianMonoid()" [color=lightblue]; +"AbelianMonoid()" -> "ABELSG..." + +"SETCAT..." [color=lightblue]; +"ABELSG..." [color=lightblue]; +} + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{RightModule}{RMODULE} +\pagepic{ps/v102rightmodule.ps}{RMODULE}{1.00} + +{\bf See:}\\ +\pageto{BiModule}{BMODULE} +\pagefrom{AbelianGroup}{ABELGRP} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{RMODULE}{0} & +\cross{RMODULE}{coerce} & +\cross{RMODULE}{hash} & +\cross{RMODULE}{latex} & +\cross{RMODULE}{sample} \\ +\cross{RMODULE}{subtractIfCan} & +\cross{RMODULE}{zero?} & +\cross{RMODULE}{?\~{}=?} & +\cross{RMODULE}{?*?} & +\cross{RMODULE}{?+?} \\ +\cross{RMODULE}{?-?} & +\cross{RMODULE}{-?} & +\cross{RMODULE}{?=?} && +\end{tabular} + +These are directly exported but not implemented: +\begin{verbatim} + ?*? : (%,R) -> % +\end{verbatim} + +These exports come from AbelianGroup(): +\begin{verbatim} + 0 : () -> % + coerce : % -> OutputForm + hash : % -> SingleInteger + latex : % -> String + sample : () -> % + subtractIfCan : (%,%) -> Union(%,"failed") + zero? : % -> Boolean + ?~=? : (%,%) -> Boolean + ?*? : (PositiveInteger,%) -> % + ?+? : (%,%) -> % + ?=? : (%,%) -> Boolean + ?*? : (NonNegativeInteger,%) -> % + ?*? : (Integer,%) -> % + ?-? : (%,%) -> % + -? : % -> % +\end{verbatim} + +<>= +)abbrev category RMODULE RightModule +++ Author: +++ Date Created: +++ Date Last Updated: +++ Basic Functions: +++ Related Constructors: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ References: +++ Description: +++ The category of right modules over an rng (ring not necessarily +++ with unit). This is an abelian group which supports right +++ multiplication by elements of the rng. +++ +++ Axioms: +++ \spad{ x*(a*b) = (x*a)*b } +++ \spad{ x*(a+b) = (x*a)+(x*b) } +++ \spad{ (x+y)*x = (x*a)+(y*a) } +RightModule(R:Rng):Category == AbelianGroup with + "*": (%,R) -> % + ++ x*r returns the right multiplication of the module element x + ++ by the ring element r. + +@ +<>= +"RMODULE" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=RMODULE"]; +"RMODULE" -> "ABELGRP" + +@ +<>= +"RightModule(a:Rng)" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=RMODULE"]; +"RightModule(a:Rng)" -> "AbelianGroup()" + +"RightModule(a:Ring)" + [color=seagreen,href="books/bookvol10.2.pamphlet#nameddest=RMODULE"]; +"RightModule(a:Ring)" -> "RightModule(a:Rng)" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"RightModule(a:Rng)" [color=lightblue]; +"RightModule(a:Rng)" -> "AbelianGroup()" + +"AbelianGroup()" [color=lightblue]; +"AbelianGroup()" -> "CancellationAbelianMonoid()" +"AbelianGroup()" -> "REPDB..." + +"CancellationAbelianMonoid()" [color=lightblue]; +"CancellationAbelianMonoid()" -> "ABELMON..." + +"ABELMON..." [color=lightblue]; +"REPDB..." [color="#00EE00"]; +} + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pagehead{Rng}{RNG} \pagepic{ps/v102rng.ps}{RNG}{1.00} +Rng is a Ring that does not necessarily have a unit. + {\bf See:}\\ +\pageto{Ring}{RING} \pagefrom{AbelianGroup}{ABELGRP} \pagefrom{SemiGroup}{SGROUP} {\bf Exports:}\\ \begin{tabular}{lllll} - 0 & coerce & hash & latex & sample \\ - zero? & subtractIfCan & ?*? & ?**? & ?+? \\ - ?-? & -? & ?=? & ?\~{}=? & ?\^{}? \\ +\cross{RNG}{0} & +\cross{RNG}{coerce} & +\cross{RNG}{hash} & +\cross{RNG}{latex} & +\cross{RNG}{sample} \\ +\cross{RNG}{zero?} & +\cross{RNG}{subtractIfCan} & +\cross{RNG}{?*?} & +\cross{RNG}{?**?} & +\cross{RNG}{?+?} \\ +\cross{RNG}{?-?} & +\cross{RNG}{-?} & +\cross{RNG}{?=?} & +\cross{RNG}{?\~{}=?} & +\cross{RNG}{?\^{}?} \\ \end{tabular} -\cross{RNG}{0} -\cross{RNG}{coerce} -\cross{RNG}{hash} -\cross{RNG}{latex} -\cross{RNG}{sample} -\cross{RNG}{zero?} -\cross{RNG}{subtractIfCan} -\cross{RNG}{?*?} -\cross{RNG}{?**?} -\cross{RNG}{?+?} -\cross{RNG}{?-?} -\cross{RNG}{-?} -\cross{RNG}{?=?} -\cross{RNG}{?\~{}=?} -\cross{RNG}{?\^{}?} - These exports come from AbelianGroup(): \begin{verbatim} 0 : () -> % @@ -9907,103 +10126,86 @@ digraph pic { \pagefrom{OneDimensionalArrayAggregate}{A1AGG} {\bf Exports:}\\ -\begin{tabular}{lllllll} - any? & coerce & concat & construct & copy \\ - convert & copyInto! & count & delete & elt \\ - empty & empty? & entries & entry? & eval \\ - every? & eq? & fill! & find & first \\ - hash & index? & indices & insert & latex \\ - leftTrim & less? & lowerCase & lowerCase! & map \\ - map! & match & match? & max & maxIndex \\ - member? & members & merge & min & minIndex \\ - more? & new & parts & position & prefix? \\ - qelt & qsetelt! & reduce & remove & removeDuplicates \\ - replace & reverse & reverse! & rightTrim & sample \\ - setelt & size? & sort & sort! & sorted? \\ - split & substring? & suffix? & swap! & trim \\ - trim & upperCase & upperCase! & \#? & ?\~{}=? \\ - ?.? & ?$<$? & ?$<=$? & ?=? & ?$>$? \\ - ?$>=$? &&&&\\ +\begin{tabular}{lllll} +\cross{SRAGG}{any?} & +\cross{SRAGG}{coerce} & +\cross{SRAGG}{concat} & +\cross{SRAGG}{construct} & +\cross{SRAGG}{copy} \\ +\cross{SRAGG}{convert} & +\cross{SRAGG}{copyInto!} & +\cross{SRAGG}{count} & +\cross{SRAGG}{delete} & +\cross{SRAGG}{?.?} \\ +\cross{SRAGG}{elt} & +\cross{SRAGG}{empty} & +\cross{SRAGG}{empty?} & +\cross{SRAGG}{entries} & +\cross{SRAGG}{entry?} \\ +\cross{SRAGG}{eval} & +\cross{SRAGG}{every?} & +\cross{SRAGG}{eq?} & +\cross{SRAGG}{fill!} & +\cross{SRAGG}{find} \\ +\cross{SRAGG}{first} & +\cross{SRAGG}{hash} & +\cross{SRAGG}{index?} & +\cross{SRAGG}{indices} & +\cross{SRAGG}{insert} \\ +\cross{SRAGG}{latex} & +\cross{SRAGG}{leftTrim} & +\cross{SRAGG}{less?} & +\cross{SRAGG}{lowerCase} & +\cross{SRAGG}{lowerCase!} \\ +\cross{SRAGG}{map} & +\cross{SRAGG}{map!} & +\cross{SRAGG}{match} & +\cross{SRAGG}{match?} & +\cross{SRAGG}{max} \\ +\cross{SRAGG}{maxIndex} & +\cross{SRAGG}{member?} & +\cross{SRAGG}{members} & +\cross{SRAGG}{merge} & +\cross{SRAGG}{min} \\ +\cross{SRAGG}{minIndex} & +\cross{SRAGG}{more?} & +\cross{SRAGG}{new} & +\cross{SRAGG}{parts} & +\cross{SRAGG}{position} \\ +\cross{SRAGG}{prefix?} & +\cross{SRAGG}{qelt} & +\cross{SRAGG}{qsetelt!} & +\cross{SRAGG}{reduce} & +\cross{SRAGG}{remove} \\ +\cross{SRAGG}{removeDuplicates} & +\cross{SRAGG}{replace} & +\cross{SRAGG}{reverse} & +\cross{SRAGG}{reverse!} & +\cross{SRAGG}{rightTrim} \\ +\cross{SRAGG}{sample} & +\cross{SRAGG}{setelt} & +\cross{SRAGG}{size?} & +\cross{SRAGG}{sort} & +\cross{SRAGG}{sort!} \\ +\cross{SRAGG}{sorted?} & +\cross{SRAGG}{split} & +\cross{SRAGG}{substring?} & +\cross{SRAGG}{suffix?} & +\cross{SRAGG}{swap!} \\ +\cross{SRAGG}{trim} & +\cross{SRAGG}{trim} & +\cross{SRAGG}{upperCase} & +\cross{SRAGG}{upperCase!} & +\cross{SRAGG}{\#?} \\ +\cross{SRAGG}{?\~{}=?} & +\cross{SRAGG}{?.?} & +\cross{SRAGG}{?$<$?} & +\cross{SRAGG}{?$<=$?} & +\cross{SRAGG}{?=?} \\ +\cross{SRAGG}{?$>$?} & +\cross{SRAGG}{?$>=$?} &&& \end{tabular} -\cross{SRAGG}{any?} -\cross{SRAGG}{coerce} -\cross{SRAGG}{concat} -\cross{SRAGG}{construct} -\cross{SRAGG}{copy} -\cross{SRAGG}{convert} -\cross{SRAGG}{copyInto!} -\cross{SRAGG}{count} -\cross{SRAGG}{delete} -\cross{SRAGG}{?.?} -\cross{SRAGG}{elt} -\cross{SRAGG}{empty} -\cross{SRAGG}{empty?} -\cross{SRAGG}{entries} -\cross{SRAGG}{entry?} -\cross{SRAGG}{eval} -\cross{SRAGG}{every?} -\cross{SRAGG}{eq?} -\cross{SRAGG}{fill!} -\cross{SRAGG}{find} -\cross{SRAGG}{first} -\cross{SRAGG}{hash} -\cross{SRAGG}{index?} -\cross{SRAGG}{indices} -\cross{SRAGG}{insert} -\cross{SRAGG}{latex} -\cross{SRAGG}{leftTrim} -\cross{SRAGG}{less?} -\cross{SRAGG}{lowerCase} -\cross{SRAGG}{lowerCase!} -\cross{SRAGG}{map} -\cross{SRAGG}{map!} -\cross{SRAGG}{match} -\cross{SRAGG}{match?} -\cross{SRAGG}{max} -\cross{SRAGG}{maxIndex} -\cross{SRAGG}{member?} -\cross{SRAGG}{members} -\cross{SRAGG}{merge} -\cross{SRAGG}{min} -\cross{SRAGG}{minIndex} -\cross{SRAGG}{more?} -\cross{SRAGG}{new} -\cross{SRAGG}{parts} -\cross{SRAGG}{position} -\cross{SRAGG}{prefix?} -\cross{SRAGG}{qelt} -\cross{SRAGG}{qsetelt!} -\cross{SRAGG}{reduce} -\cross{SRAGG}{remove} -\cross{SRAGG}{removeDuplicates} -\cross{SRAGG}{replace} -\cross{SRAGG}{reverse} -\cross{SRAGG}{reverse!} -\cross{SRAGG}{rightTrim} -\cross{SRAGG}{sample} -\cross{SRAGG}{setelt} -\cross{SRAGG}{size?} -\cross{SRAGG}{sort} -\cross{SRAGG}{sort!} -\cross{SRAGG}{sorted?} -\cross{SRAGG}{split} -\cross{SRAGG}{substring?} -\cross{SRAGG}{suffix?} -\cross{SRAGG}{swap!} -\cross{SRAGG}{trim} -\cross{SRAGG}{trim} -\cross{SRAGG}{upperCase} -\cross{SRAGG}{upperCase!} -\cross{SRAGG}{\#?} -\cross{SRAGG}{?\~{}=?} -\cross{SRAGG}{?.?} -\cross{SRAGG}{?$<$?} -\cross{SRAGG}{?$<=$?} -\cross{SRAGG}{?=?} -\cross{SRAGG}{?$>$?} -\cross{SRAGG}{?$>=$?} - These are directly exported but not implemented: \begin{verbatim} leftTrim : (%,Character) -> % @@ -10330,75 +10532,63 @@ digraph pic { {\bf Exports:}\\ \begin{tabular}{lllll} - any? & bag & coerce & construct & convert\\ - copy & count & dictionary & elt & empty\\ - empty? & entries & entry? & eq? & eval\\ - every? & extract! & fill! & find & first\\ - hash & index? & indices & insert! & inspect\\ - key? & keys & latex & less? & map\\ - map! & maxIndex & member? & members & minIndex\\ - more? & parts & qelt & qsetelt! & reduce\\ - remove & remove! & removeDuplicates & sample & search\\ - select & select! & setelt & size? & swap!\\ - table & \#? & ?=? & ?.? & ?\~{}=?\\ +\cross{TBAGG}{any?} & +\cross{TBAGG}{bag} & +\cross{TBAGG}{coerce} & +\cross{TBAGG}{construct} & +\cross{TBAGG}{convert} \\ +\cross{TBAGG}{copy} & +\cross{TBAGG}{count} & +\cross{TBAGG}{dictionary} & +\cross{TBAGG}{elt} & +\cross{TBAGG}{empty} \\ +\cross{TBAGG}{empty?} & +\cross{TBAGG}{entries} & +\cross{TBAGG}{entry?} & +\cross{TBAGG}{eq?} & +\cross{TBAGG}{eval} \\ +\cross{TBAGG}{every?} & +\cross{TBAGG}{extract!} & +\cross{TBAGG}{fill!} & +\cross{TBAGG}{find} & +\cross{TBAGG}{first} \\ +\cross{TBAGG}{hash} & +\cross{TBAGG}{index?} & +\cross{TBAGG}{indices} & +\cross{TBAGG}{insert!} & +\cross{TBAGG}{inspect} \\ +\cross{TBAGG}{key?} & +\cross{TBAGG}{keys} & +\cross{TBAGG}{latex} & +\cross{TBAGG}{less?} & +\cross{TBAGG}{map} \\ +\cross{TBAGG}{map!} & +\cross{TBAGG}{maxIndex} & +\cross{TBAGG}{member?} & +\cross{TBAGG}{members} & +\cross{TBAGG}{minIndex} \\ +\cross{TBAGG}{more?} & +\cross{TBAGG}{parts} & +\cross{TBAGG}{qelt} & +\cross{TBAGG}{qsetelt!} & +\cross{TBAGG}{reduce} \\ +\cross{TBAGG}{remove} & +\cross{TBAGG}{remove!} & +\cross{TBAGG}{removeDuplicates} & +\cross{TBAGG}{sample} & +\cross{TBAGG}{search} \\ +\cross{TBAGG}{select} & +\cross{TBAGG}{select!} & +\cross{TBAGG}{setelt} & +\cross{TBAGG}{size?} & +\cross{TBAGG}{swap!} \\ +\cross{TBAGG}{table} & +\cross{TBAGG}{\#?} & +\cross{TBAGG}{?=?} & +\cross{TBAGG}{?.?} & +\cross{TBAGG}{?\~{}=?} \\ \end{tabular} -\cross{TBAGG}{any?} -\cross{TBAGG}{bag} -\cross{TBAGG}{coerce} -\cross{TBAGG}{construct} -\cross{TBAGG}{convert} -\cross{TBAGG}{copy} -\cross{TBAGG}{count} -\cross{TBAGG}{dictionary} -\cross{TBAGG}{elt} -\cross{TBAGG}{empty} -\cross{TBAGG}{empty?} -\cross{TBAGG}{entries} -\cross{TBAGG}{entry?} -\cross{TBAGG}{eq?} -\cross{TBAGG}{eval} -\cross{TBAGG}{every?} -\cross{TBAGG}{extract!} -\cross{TBAGG}{fill!} -\cross{TBAGG}{find} -\cross{TBAGG}{first} -\cross{TBAGG}{hash} -\cross{TBAGG}{index?} -\cross{TBAGG}{indices} -\cross{TBAGG}{insert!} -\cross{TBAGG}{inspect} -\cross{TBAGG}{key?} -\cross{TBAGG}{keys} -\cross{TBAGG}{latex} -\cross{TBAGG}{less?} -\cross{TBAGG}{map} -\cross{TBAGG}{map!} -\cross{TBAGG}{maxIndex} -\cross{TBAGG}{member?} -\cross{TBAGG}{members} -\cross{TBAGG}{minIndex} -\cross{TBAGG}{more?} -\cross{TBAGG}{parts} -\cross{TBAGG}{qelt} -\cross{TBAGG}{qsetelt!} -\cross{TBAGG}{reduce} -\cross{TBAGG}{remove} -\cross{TBAGG}{remove!} -\cross{TBAGG}{removeDuplicates} -\cross{TBAGG}{sample} -\cross{TBAGG}{search} -\cross{TBAGG}{select} -\cross{TBAGG}{select!} -\cross{TBAGG}{setelt} -\cross{TBAGG}{size?} -\cross{TBAGG}{swap!} -\cross{TBAGG}{table} -\cross{TBAGG}{\#?} -\cross{TBAGG}{?=?} -\cross{TBAGG}{?.?} -\cross{TBAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} setelt : (%,Key,Entry) -> Entry @@ -10773,141 +10963,118 @@ digraph pic { \pagefrom{TableAggregate}{TBAGG} {\bf Exports:}\\ -\begin{tabular}{lllll} - any? & assoc & bag & children & child? \\ - coerce & concat & concat! & construct & convert \\ - copy & copyInto! & count & cycleEntry & cycleLength \\ - cycleSplit! & cycleTail & cyclic? & delete & delete! \\ - dictionary & distance & elt & empty & empty? \\ - entries & entry? & eq? & eval & every?\\ - explicitlyFinite? & extract! & fill! & find & first \\ - hash & index? & indices & insert & insert! \\ - inspect & key? & keys & last & latex \\ - leaf? & leaves & less? & list & map \\ - map! & max & maxIndex & member? & members \\ - merge & merge! & min & minIndex & more? \\ - new & nodes & node? & parts & position \\ - possiblyInfinite? & qelt & qsetelt! & reduce & remove \\ - remove! & removeDuplicates & removeDuplicates! & rest & reverse \\ - reverse! & sample & search & second & select \\ - select! & setchildren! & setelt & setfirst! & setlast! \\ - setrest! & setvalue! & size? & sort & sort! \\ - sorted? & split! & swap! & table & tail \\ - third & value & \#? & ?$<$? & ?$<=$? \\ - ?=? & ?$>$? & ?$>=$? & ?\~{}=? & ?.rest \\ - ?.value & ?.first & ?.last & ?.? &\\ +\begin{tabular}{llll} +\cross{ALAGG}{any?} & +\cross{ALAGG}{assoc} & +\cross{ALAGG}{bag} & +\cross{ALAGG}{children} \\ +\cross{ALAGG}{child?} & +\cross{ALAGG}{coerce} & +\cross{ALAGG}{concat} & +\cross{ALAGG}{concat!} \\ +\cross{ALAGG}{construct} & +\cross{ALAGG}{convert} & +\cross{ALAGG}{copy} & +\cross{ALAGG}{copyInto!} \\ +\cross{ALAGG}{count} & +\cross{ALAGG}{cycleEntry} & +\cross{ALAGG}{cycleLength} & +\cross{ALAGG}{cycleSplit!} \\ +\cross{ALAGG}{cycleTail} & +\cross{ALAGG}{cyclic?} & +\cross{ALAGG}{delete} & +\cross{ALAGG}{delete!} \\ +\cross{ALAGG}{dictionary} & +\cross{ALAGG}{distance} & +\cross{ALAGG}{elt} & +\cross{ALAGG}{empty} \\ +\cross{ALAGG}{empty?} & +\cross{ALAGG}{entries} & +\cross{ALAGG}{entry?} & +\cross{ALAGG}{eq?} \\ +\cross{ALAGG}{eval} & +\cross{ALAGG}{every?} & +\cross{ALAGG}{explicitlyFinite?} & +\cross{ALAGG}{extract!} \\ +\cross{ALAGG}{fill!} & +\cross{ALAGG}{find} & +\cross{ALAGG}{first} & +\cross{ALAGG}{hash} \\ +\cross{ALAGG}{index?} & +\cross{ALAGG}{indices} & +\cross{ALAGG}{insert} & +\cross{ALAGG}{insert!} \\ +\cross{ALAGG}{inspect} & +\cross{ALAGG}{key?} & +\cross{ALAGG}{keys} & +\cross{ALAGG}{last} \\ +\cross{ALAGG}{latex} & +\cross{ALAGG}{leaf?} & +\cross{ALAGG}{leaves} & +\cross{ALAGG}{less?} \\ +\cross{ALAGG}{list} & +\cross{ALAGG}{map} & +\cross{ALAGG}{map!} & +\cross{ALAGG}{max} \\ +\cross{ALAGG}{maxIndex} & +\cross{ALAGG}{member?} & +\cross{ALAGG}{members} & +\cross{ALAGG}{merge} \\ +\cross{ALAGG}{merge!} & +\cross{ALAGG}{min} & +\cross{ALAGG}{minIndex} & +\cross{ALAGG}{more?} \\ +\cross{ALAGG}{new} & +\cross{ALAGG}{nodes} & +\cross{ALAGG}{node?} & +\cross{ALAGG}{parts} \\ +\cross{ALAGG}{position} & +\cross{ALAGG}{possiblyInfinite?} & +\cross{ALAGG}{qelt} & +\cross{ALAGG}{qsetelt!} \\ +\cross{ALAGG}{reduce} & +\cross{ALAGG}{remove} & +\cross{ALAGG}{remove!} & +\cross{ALAGG}{removeDuplicates} \\ +\cross{ALAGG}{removeDuplicates!} & +\cross{ALAGG}{rest} & +\cross{ALAGG}{reverse} & +\cross{ALAGG}{reverse!} \\ +\cross{ALAGG}{sample} & +\cross{ALAGG}{search} & +\cross{ALAGG}{second} & +\cross{ALAGG}{select} \\ +\cross{ALAGG}{select!} & +\cross{ALAGG}{setchildren!} & +\cross{ALAGG}{setelt} & +\cross{ALAGG}{setfirst!} \\ +\cross{ALAGG}{setlast!} & +\cross{ALAGG}{setrest!} & +\cross{ALAGG}{setvalue!} & +\cross{ALAGG}{size?} \\ +\cross{ALAGG}{sort} & +\cross{ALAGG}{sort!} & +\cross{ALAGG}{sorted?} & +\cross{ALAGG}{split!} \\ +\cross{ALAGG}{swap!} & +\cross{ALAGG}{table} & +\cross{ALAGG}{tail} & +\cross{ALAGG}{third} \\ +\cross{ALAGG}{value} & +\cross{ALAGG}{\#?} & +\cross{ALAGG}{?$<$?} & +\cross{ALAGG}{?$<=$?} \\ +\cross{ALAGG}{?=?} & +\cross{ALAGG}{?$>$?} & +\cross{ALAGG}{?$>=$?} & +\cross{ALAGG}{?\~{}=?} \\ +\cross{ALAGG}{?.rest} & +\cross{ALAGG}{?.value} & +\cross{ALAGG}{?.first} & +\cross{ALAGG}{?.last} \\ +\cross{ALAGG}{?.?} & \end{tabular} -\cross{ALAGG}{any?} -\cross{ALAGG}{assoc} -\cross{ALAGG}{bag} -\cross{ALAGG}{children} -\cross{ALAGG}{child?} -\cross{ALAGG}{coerce} -\cross{ALAGG}{concat} -\cross{ALAGG}{concat!} -\cross{ALAGG}{construct} -\cross{ALAGG}{convert} -\cross{ALAGG}{copy} -\cross{ALAGG}{copyInto!} -\cross{ALAGG}{count} -\cross{ALAGG}{cycleEntry} -\cross{ALAGG}{cycleLength} -\cross{ALAGG}{cycleSplit!} -\cross{ALAGG}{cycleTail} -\cross{ALAGG}{cyclic?} -\cross{ALAGG}{delete} -\cross{ALAGG}{delete!} -\cross{ALAGG}{dictionary} -\cross{ALAGG}{distance} -\cross{ALAGG}{elt} -\cross{ALAGG}{empty} -\cross{ALAGG}{empty?} -\cross{ALAGG}{entries} -\cross{ALAGG}{entry?} -\cross{ALAGG}{eq?} -\cross{ALAGG}{eval} -\cross{ALAGG}{every?} -\cross{ALAGG}{explicitlyFinite?} -\cross{ALAGG}{extract!} -\cross{ALAGG}{fill!} -\cross{ALAGG}{find} -\cross{ALAGG}{first} -\cross{ALAGG}{hash} -\cross{ALAGG}{index?} -\cross{ALAGG}{indices} -\cross{ALAGG}{insert} -\cross{ALAGG}{insert!} -\cross{ALAGG}{inspect} -\cross{ALAGG}{key?} -\cross{ALAGG}{keys} -\cross{ALAGG}{last} -\cross{ALAGG}{latex} -\cross{ALAGG}{leaf?} -\cross{ALAGG}{leaves} -\cross{ALAGG}{less?} -\cross{ALAGG}{list} -\cross{ALAGG}{map} -\cross{ALAGG}{map!} -\cross{ALAGG}{max} -\cross{ALAGG}{maxIndex} -\cross{ALAGG}{member?} -\cross{ALAGG}{members} -\cross{ALAGG}{merge} -\cross{ALAGG}{merge!} -\cross{ALAGG}{min} -\cross{ALAGG}{minIndex} -\cross{ALAGG}{more?} -\cross{ALAGG}{new} -\cross{ALAGG}{nodes} -\cross{ALAGG}{node?} -\cross{ALAGG}{parts} -\cross{ALAGG}{position} -\cross{ALAGG}{possiblyInfinite?} -\cross{ALAGG}{qelt} -\cross{ALAGG}{qsetelt!} -\cross{ALAGG}{reduce} -\cross{ALAGG}{remove} -\cross{ALAGG}{remove!} -\cross{ALAGG}{removeDuplicates} -\cross{ALAGG}{removeDuplicates!} -\cross{ALAGG}{rest} -\cross{ALAGG}{reverse} -\cross{ALAGG}{reverse!} -\cross{ALAGG}{sample} -\cross{ALAGG}{search} -\cross{ALAGG}{second} -\cross{ALAGG}{select} -\cross{ALAGG}{select!} -\cross{ALAGG}{setchildren!} -\cross{ALAGG}{setelt} -\cross{ALAGG}{setfirst!} -\cross{ALAGG}{setlast!} -\cross{ALAGG}{setrest!} -\cross{ALAGG}{setvalue!} -\cross{ALAGG}{size?} -\cross{ALAGG}{sort} -\cross{ALAGG}{sort!} -\cross{ALAGG}{sorted?} -\cross{ALAGG}{split!} -\cross{ALAGG}{swap!} -\cross{ALAGG}{table} -\cross{ALAGG}{tail} -\cross{ALAGG}{third} -\cross{ALAGG}{value} -\cross{ALAGG}{\#?} -\cross{ALAGG}{?$<$?} -\cross{ALAGG}{?$<=$?} -\cross{ALAGG}{?=?} -\cross{ALAGG}{?$>$?} -\cross{ALAGG}{?$>=$?} -\cross{ALAGG}{?\~{}=?} -\cross{ALAGG}{?.rest} -\cross{ALAGG}{?.value} -\cross{ALAGG}{?.first} -\cross{ALAGG}{?.last} -\cross{ALAGG}{?.?} - These are directly exported but not implemented: \begin{verbatim} assoc : (Key,%) -> Union(Record(key: Key,entry: Entry),"failed") @@ -11294,80 +11461,459 @@ digraph pic { @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{BiModule}{BMODULE} +\pagepic{ps/v102bimodule.ps}{BMODULE}{1.00} + +{\bf See:}\\ +\pagefrom{LeftModule}{LMODULE} +\pagefrom{RightModule}{RMODULE} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{BMODULE}{0} & +\cross{BMODULE}{coerce} & +\cross{BMODULE}{hash} & +\cross{BMODULE}{latex} & +\cross{BMODULE}{sample} \\ +\cross{BMODULE}{subtractIfCan} & +\cross{BMODULE}{zero?} & +\cross{BMODULE}{?~=?} & +\cross{BMODULE}{?*?} & +\cross{BMODULE}{?+?} \\ +\cross{BMODULE}{?-?} & +\cross{BMODULE}{-?} & +\cross{BMODULE}{?=?} && +\end{tabular} + +These exports come from LeftModule(R:Ring): +\begin{verbatim} + 0 : () -> % + coerce : % -> OutputForm + hash : % -> SingleInteger + latex : % -> String + sample : () -> % + subtractIfCan : (%,%) -> Union(%,"failed") + zero? : % -> Boolean + ?~=? : (%,%) -> Boolean + ?*? : (R,%) -> % + ?=? : (%,%) -> Boolean + ?+? : (%,%) -> % + ?*? : (PositiveInteger,%) -> % + ?*? : (NonNegativeInteger,%) -> % + ?*? : (Integer,%) -> % + ?-? : (%,%) -> % + -? : % -> % +\end{verbatim} + +These exports come from RightModule(S:Ring): +\begin{verbatim} + ?*? : (%,S) -> % +\end{verbatim} + +<>= +)abbrev category BMODULE BiModule +++ Author: +++ Date Created: +++ Date Last Updated: +++ Basic Functions: +++ Related Constructors: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ References: +++ Description: +++ A \spadtype{BiModule} is both a left and right module with respect +++ to potentially different rings. +++ +++ Axiom: +++ \spad{ r*(x*s) = (r*x)*s } +BiModule(R:Ring,S:Ring):Category == + Join(LeftModule(R),RightModule(S)) with + leftUnitary + ++ \spad{1 * x = x} + rightUnitary + ++ \spad{x * 1 = x} + +@ +<>= +"BMODULE" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=BMODULE"]; +"BMODULE" -> "LMODULE" +"BMODULE" -> "RMODULE" + +@ +<>= +"BiModule(a:Ring,b:Ring)" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=BMODULE"]; +"BiModule(a:Ring,b:Ring)" -> "LeftModule(a:Ring)" +"BiModule(a:Ring,b:Ring)" -> "RightModule(a:Ring)" + +"BiModule(a:CommutativeRing,b:CommutativeRing)" + [color=seagreen,href="books/bookvol10.2.pamphlet#nameddest=BMODULE"]; +"BiModule(a:CommutativeRing,b:CommutativeRing)" -> "BiModule(a:Ring,b:Ring)" + +"BiModule(a:Ring,b:OrderedAbelianMonoid)" + [color=seagreen,href="books/bookvol10.2.pamphlet#nameddest=BMODULE"]; +"BiModule(a:Ring,b:OrderedAbelianMonoid)" -> "BiModule(a:Ring,b:Ring)" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"BiModule(a:Ring,b:Ring)" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=BMODULE"]; +"BiModule(a:Ring,b:Ring)" -> "LeftModule(a:Ring)" +"BiModule(a:Ring,b:Ring)" -> "RightModule(a:Ring)" + +"RightModule(a:Ring)" [color=seagreen]; +"RightModule(a:Ring)" -> "RightModule(a:Rng)" + +"RightModule(a:Rng)" [color=lightblue]; +"RightModule(a:Rng)" -> "AbelianGroup()" + +"LeftModule(a:Ring)" [color=seagreen]; +"LeftModule(a:Ring)" -> "LeftModule(a:Rng)" + +"LeftModule(a:Rng)" [color=lightblue]; +"LeftModule(a:Rng)" -> "AbelianGroup()" + +"AbelianGroup()" [color=lightblue]; +"AbelianGroup()" -> "CancellationAbelianMonoid()" +"AbelianGroup()" -> "REPDB..." + +"CancellationAbelianMonoid()" [color=lightblue]; +"CancellationAbelianMonoid()" -> "ABELMON..." + +"ABELMON..." [color=lightblue]; +"REPDB..." [color="#00EE00"]; +} + + + + + + + + + + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{OrderedAbelianGroup}{OAGROUP} +\pagepic{ps/v102orderedabeliangroup.ps}{OAGROUP}{1.00} + +{\bf See:}\\ +\pageto{OrderedRing}{ORDRING} +\pagefrom{AbelianGroup}{ABELGRP} +\pagefrom{OrderedCancellationAbelianMonoid}{OCAMON} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{OAGROUP}{0} & +\cross{OAGROUP}{coerce} & +\cross{OAGROUP}{hash} & +\cross{OAGROUP}{latex} & +\cross{OAGROUP}{max} \\ +\cross{OAGROUP}{min} & +\cross{OAGROUP}{sample} & +\cross{OAGROUP}{subtractIfCan} & +\cross{OAGROUP}{zero?} & +\cross{OAGROUP}{?\~{}=?} \\ +\cross{OAGROUP}{?*?} & +\cross{OAGROUP}{?+?} & +\cross{OAGROUP}{-?} & +\cross{OAGROUP}{?-?} & +\cross{OAGROUP}{?$<$?} \\ +\cross{OAGROUP}{?$<=$?} & +\cross{OAGROUP}{?=?} & +\cross{OAGROUP}{?$>$?} & +\cross{OAGROUP}{?$>=$?} & +\end{tabular} + +These exports come from OrderedCancellationAbelianMonoid(): +\begin{verbatim} + 0 : () -> % + coerce : % -> OutputForm + hash : % -> SingleInteger + latex : % -> String + max : (%,%) -> % + min : (%,%) -> % + sample : () -> % + subtractIfCan : (%,%) -> Union(%,"failed") + zero? : % -> Boolean + ? Boolean + ?<=? : (%,%) -> Boolean + ?=? : (%,%) -> Boolean + ?>? : (%,%) -> Boolean + ?>=? : (%,%) -> Boolean + ?~=? : (%,%) -> Boolean + ?*? : (NonNegativeInteger,%) -> % + ?*? : (PositiveInteger,%) -> % + ?+? : (%,%) -> % +\end{verbatim} + +These exports come from AbelianGroup(): +\begin{verbatim} + -? : % -> % + ?*? : (Integer,%) -> % + ?-? : (%,%) -> % +\end{verbatim} + +<>= +)abbrev category OAGROUP OrderedAbelianGroup +++ Author: +++ Date Created: +++ Date Last Updated: +++ Basic Functions: +++ Related Constructors: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ References: +++ Description: +++ Ordered sets which are also abelian groups, such that the +++ addition preserves the ordering. +OrderedAbelianGroup(): Category == + Join(OrderedCancellationAbelianMonoid, AbelianGroup) + +@ +<>= +"OAGROUP" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=OAGROUP"]; +"OAGROUP" -> "OCAMON" +"OAGROUP" -> "ABELGRP" + +@ +<>= +"OrderedAbelianGroup()" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=OAGROUP"]; +"OrderedAbelianGroup()" -> "OrderedCancellationAbelianMonoid()" +"OrderedAbelianGroup()" -> "AbelianGroup()" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"OrderedAbelianGroup()" [color=lightblue]; +"OrderedAbelianGroup()" -> "OrderedCancellationAbelianMonoid()" +"OrderedAbelianGroup()" -> "AbelianGroup()" + +"OrderedCancellationAbelianMonoid()" [color=lightblue]; +"OrderedCancellationAbelianMonoid()" -> "OAMON..." +"OrderedCancellationAbelianMonoid()" -> "CABMON..." + +"AbelianGroup()" [color=lightblue]; +"AbelianGroup()" -> "CABMON..." +"AbelianGroup()" -> "REPDB..." + +"REPDB..." [color="#00EE00"]; +"OAMON..." [color=lightblue]; +"CABMON..." [color=lightblue]; +} + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{OrderedAbelianMonoidSup}{OAMONS} +\pagepic{ps/v102orderedabelianmonoidsup.ps}{OAMONS}{0.75} + +{\bf See:}\\ +\pagefrom{OrderedCancellationAbelianMonoid}{OCAMON} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{OAMONS}{0} & +\cross{OAMONS}{coerce} & +\cross{OAMONS}{hash} & +\cross{OAMONS}{latex} & +\cross{OAMONS}{max} \\ +\cross{OAMONS}{min} & +\cross{OAMONS}{sample} & +\cross{OAMONS}{subtractIfCan} & +\cross{OAMONS}{sup} & +\cross{OAMONS}{zero?} \\ +\cross{OAMONS}{?\~{}=?} & +\cross{OAMONS}{?*?} & +\cross{OAMONS}{?$<=$?} & +\cross{OAMONS}{?+?} & +\cross{OAMONS}{?$<$?} \\ +\cross{OAMONS}{?=?} & +\cross{OAMONS}{?$>$?} & +\cross{OAMONS}{?$>=$?} && +\end{tabular} + +These are directly exported but not implemented: +\begin{verbatim} + sup : (%,%) -> % +\end{verbatim} + +These exports come from OrderedCancellationAbelianMonoid(): +\begin{verbatim} + 0 : () -> % + coerce : % -> OutputForm + hash : % -> SingleInteger + latex : % -> String + max : (%,%) -> % + min : (%,%) -> % + sample : () -> % + subtractIfCan : (%,%) -> Union(%,"failed") + zero? : % -> Boolean + ?~=? : (%,%) -> Boolean + ?*? : (NonNegativeInteger,%) -> % + ?*? : (PositiveInteger,%) -> % + ?+? : (%,%) -> % + ? Boolean + ?<=? : (%,%) -> Boolean + ?=? : (%,%) -> Boolean + ?>? : (%,%) -> Boolean + ?>=? : (%,%) -> Boolean + +\end{verbatim} + +<>= +)abbrev category OAMONS OrderedAbelianMonoidSup +++ Author: +++ Date Created: +++ Date Last Updated: +++ Basic Functions: +++ Related Constructors: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ References: +++ Description: +++ This domain is an OrderedAbelianMonoid with a \spadfun{sup} +++ operation added. The purpose of the \spadfun{sup} operator +++ in this domain is to act as a supremum with respect to the +++ partial order imposed by \spadop{-}, rather than with respect to +++ the total \spad{>} order (since that is "max"). +++ +++ Axioms: +++ \spad{sup(a,b)-a \~~= "failed"} +++ \spad{sup(a,b)-b \~~= "failed"} +++ \spad{x-a \~~= "failed" and x-b \~~= "failed" => x >= sup(a,b)} + +OrderedAbelianMonoidSup(): Category == OrderedCancellationAbelianMonoid with + sup: (%,%) -> % + ++ sup(x,y) returns the least element from which both + ++ x and y can be subtracted. + +@ +<>= +"OAMONS" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=OAMONS"]; +"OAMONS" -> "OCAMON" + +@ +<>= +"OrderedAbelianMonoidSup()" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=OAMONS"]; +"OrderedAbelianMonoidSup()" -> "OrderedCancellationAbelianMonoid()" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"OrderedAbelianMonoidSup()" [color=lightblue]; +"OrderedAbelianMonoidSup()" -> "OrderedCancellationAbelianMonoid()" + +"OrderedCancellationAbelianMonoid()" [color=lightblue]; +"OrderedCancellationAbelianMonoid()" -> "OrderedAbelianMonoid()" +"OrderedCancellationAbelianMonoid()" -> "CancellationAbelianMonoid()" + +"OrderedAbelianMonoid()" [color=lightblue]; +"OrderedAbelianMonoid()" -> "OrderedAbelianSemiGroup()" +"OrderedAbelianMonoid()" -> "AbelianMonoid()" + +"OrderedAbelianSemiGroup()" [color=lightblue]; +"OrderedAbelianSemiGroup()" -> "OrderedSet()" +"OrderedAbelianSemiGroup()" -> "AbelianMonoid()" + +"OrderedSet()" [color=lightblue]; +"OrderedSet()" -> "SETCAT..." + +"CancellationAbelianMonoid()" [color=lightblue]; +"CancellationAbelianMonoid()" -> "AbelianMonoid()" + +"AbelianMonoid()" [color=lightblue]; +"AbelianMonoid()" -> "ABELSG..." + +"SETCAT..." [color=lightblue]; +"ABELSG..." [color=lightblue]; +} + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pagehead{OrderedMultisetAggregate}{OMSAGG} -\pagepic{ps/v102orderedmultisetaggregate.ps}{OMSAGG}{0.65} +\pagepic{ps/v102orderedmultisetaggregate.ps}{OMSAGG}{0.50} {\bf See:}\\ \pagefrom{MultisetAggregate}{MSETAGG} \pagefrom{PriorityQueueAggregate}{PRQAGG} {\bf Exports:}\\ -\begin{tabular}{lllll} - any? & bag & brace & coerce & construct\\ - convert & copy & count & dictionary & difference\\ - empty & empty? & eq? & duplicates & eval\\ - every? & extract! & find & hash & insert!\\ - inspect & intersect & latex & less? & map\\ - map! & max & member? & members & merge\\ - merge! & min & more? & parts & reduce\\ - remove & remove! & removeDuplicates & removeDuplicates! & sample\\ - select & select! & set & size? & subset?\\ - symmetricDifference & union & \#? & ?$<$? & ?=?\\ - ?\~{}=? &&&& +\begin{tabular}{llll} +\cross{OMSAGG}{any?} & +\cross{OMSAGG}{bag} & +\cross{OMSAGG}{brace} & +\cross{OMSAGG}{coerce} \\ +\cross{OMSAGG}{construct} & +\cross{OMSAGG}{convert} & +\cross{OMSAGG}{copy} & +\cross{OMSAGG}{count} \\ +\cross{OMSAGG}{dictionary} & +\cross{OMSAGG}{difference} & +\cross{OMSAGG}{empty} & +\cross{OMSAGG}{empty?} \\ +\cross{OMSAGG}{eq?} & +\cross{OMSAGG}{duplicates} & +\cross{OMSAGG}{eval} & +\cross{OMSAGG}{every?} \\ +\cross{OMSAGG}{extract!} & +\cross{OMSAGG}{find} & +\cross{OMSAGG}{hash} & +\cross{OMSAGG}{insert!} \\ +\cross{OMSAGG}{inspect} & +\cross{OMSAGG}{intersect} & +\cross{OMSAGG}{latex} & +\cross{OMSAGG}{less?} \\ +\cross{OMSAGG}{map} & +\cross{OMSAGG}{map!} & +\cross{OMSAGG}{max} & +\cross{OMSAGG}{member?} \\ +\cross{OMSAGG}{members} & +\cross{OMSAGG}{merge} & +\cross{OMSAGG}{merge!} & +\cross{OMSAGG}{min} \\ +\cross{OMSAGG}{more?} & +\cross{OMSAGG}{parts} & +\cross{OMSAGG}{reduce} & +\cross{OMSAGG}{remove} \\ +\cross{OMSAGG}{remove!} & +\cross{OMSAGG}{removeDuplicates} & +\cross{OMSAGG}{removeDuplicates!} & +\cross{OMSAGG}{sample} \\ +\cross{OMSAGG}{select} & +\cross{OMSAGG}{select!} & +\cross{OMSAGG}{set} & +\cross{OMSAGG}{size?} \\ +\cross{OMSAGG}{subset?} & +\cross{OMSAGG}{symmetricDifference} & +\cross{OMSAGG}{union} & +\cross{OMSAGG}{\#?} \\ +\cross{OMSAGG}{?$<$?} & +\cross{OMSAGG}{?=?} & +\cross{OMSAGG}{?\~{}?} & \end{tabular} -\cross{OMSAGG}{any?} -\cross{OMSAGG}{bag} -\cross{OMSAGG}{brace} -\cross{OMSAGG}{coerce} -\cross{OMSAGG}{construct} -\cross{OMSAGG}{convert} -\cross{OMSAGG}{copy} -\cross{OMSAGG}{count} -\cross{OMSAGG}{dictionary} -\cross{OMSAGG}{difference} -\cross{OMSAGG}{empty} -\cross{OMSAGG}{empty?} -\cross{OMSAGG}{eq?} -\cross{OMSAGG}{duplicates} -\cross{OMSAGG}{eval} -\cross{OMSAGG}{every?} -\cross{OMSAGG}{extract!} -\cross{OMSAGG}{find} -\cross{OMSAGG}{hash} -\cross{OMSAGG}{insert!} -\cross{OMSAGG}{inspect} -\cross{OMSAGG}{intersect} -\cross{OMSAGG}{latex} -\cross{OMSAGG}{less?} -\cross{OMSAGG}{map} -\cross{OMSAGG}{map!} -\cross{OMSAGG}{max} -\cross{OMSAGG}{member?} -\cross{OMSAGG}{members} -\cross{OMSAGG}{merge} -\cross{OMSAGG}{merge!} -\cross{OMSAGG}{min} -\cross{OMSAGG}{more?} -\cross{OMSAGG}{parts} -\cross{OMSAGG}{reduce} -\cross{OMSAGG}{remove} -\cross{OMSAGG}{remove!} -\cross{OMSAGG}{removeDuplicates} -\cross{OMSAGG}{removeDuplicates!} -\cross{OMSAGG}{sample} -\cross{OMSAGG}{select} -\cross{OMSAGG}{select!} -\cross{OMSAGG}{set} -\cross{OMSAGG}{size?} -\cross{OMSAGG}{subset?} -\cross{OMSAGG}{symmetricDifference} -\cross{OMSAGG}{union} -\cross{OMSAGG}{\#?} -\cross{OMSAGG}{?$<$?} -\cross{OMSAGG}{?=?} -\cross{OMSAGG}{?\~{}=?} - These are directly exported but not implemented: \begin{verbatim} min : % -> S @@ -11383,8 +11929,10 @@ These exports come from MultisetAggregate(S:OrderedSet): construct : List S -> % convert : % -> InputForm if S has KONVERT INFORM copy : % -> % - count : (S,%) -> NonNegativeInteger if S has SETCAT and $ has finiteAggregate - count : ((S -> Boolean),%) -> NonNegativeInteger if $ has finiteAggregate + count : (S,%) -> NonNegativeInteger + if S has SETCAT and $ has finiteAggregate + count : ((S -> Boolean),%) -> NonNegativeInteger + if $ has finiteAggregate dictionary : List S -> % dictionary : () -> % difference : (%,S) -> % @@ -11393,11 +11941,16 @@ These exports come from MultisetAggregate(S:OrderedSet): empty : () -> % empty? : % -> Boolean eq? : (%,%) -> Boolean - eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT - eval : (%,S,S) -> % if S has EVALAB S and S has SETCAT - eval : (%,Equation S) -> % if S has EVALAB S and S has SETCAT - eval : (%,List Equation S) -> % if S has EVALAB S and S has SETCAT - every? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate + eval : (%,List S,List S) -> % + if S has EVALAB S and S has SETCAT + eval : (%,S,S) -> % + if S has EVALAB S and S has SETCAT + eval : (%,Equation S) -> % + if S has EVALAB S and S has SETCAT + eval : (%,List Equation S) -> % + if S has EVALAB S and S has SETCAT + every? : ((S -> Boolean),%) -> Boolean + if $ has finiteAggregate extract! : % -> S find : ((S -> Boolean),%) -> Union(S,"failed") hash : % -> SingleInteger @@ -11409,18 +11962,27 @@ These exports come from MultisetAggregate(S:OrderedSet): less? : (%,NonNegativeInteger) -> Boolean map : ((S -> S),%) -> % map! : ((S -> S),%) -> % if $ has shallowlyMutable - member? : (S,%) -> Boolean if S has SETCAT and $ has finiteAggregate + member? : (S,%) -> Boolean + if S has SETCAT and $ has finiteAggregate members : % -> List S if $ has finiteAggregate more? : (%,NonNegativeInteger) -> Boolean parts : % -> List S if $ has finiteAggregate - reduce : (((S,S) -> S),%) -> S if $ has finiteAggregate - reduce : (((S,S) -> S),%,S) -> S if $ has finiteAggregate - reduce : (((S,S) -> S),%,S,S) -> S if S has SETCAT and $ has finiteAggregate - remove : ((S -> Boolean),%) -> % if $ has finiteAggregate - remove : (S,%) -> % if S has SETCAT and $ has finiteAggregate - remove! : ((S -> Boolean),%) -> % if $ has finiteAggregate - remove! : (S,%) -> % if $ has finiteAggregate - removeDuplicates : % -> % if S has SETCAT and $ has finiteAggregate + reduce : (((S,S) -> S),%) -> S + if $ has finiteAggregate + reduce : (((S,S) -> S),%,S) -> S + if $ has finiteAggregate + reduce : (((S,S) -> S),%,S,S) -> S + if S has SETCAT and $ has finiteAggregate + remove : ((S -> Boolean),%) -> % + if $ has finiteAggregate + remove : (S,%) -> % + if S has SETCAT and $ has finiteAggregate + remove! : ((S -> Boolean),%) -> % + if $ has finiteAggregate + remove! : (S,%) -> % + if $ has finiteAggregate + removeDuplicates : % -> % + if S has SETCAT and $ has finiteAggregate removeDuplicates! : % -> % sample : () -> % select : ((S -> Boolean),%) -> % if $ has finiteAggregate @@ -11514,12 +12076,10 @@ digraph pic { "DictionaryOperations(a:SetCategory)" -> "BGAGG..." "DictionaryOperations(a:SetCategory)" -> "CLAGG..." -"PriorityQueueAggregate(a:SetCategory)" - [color=seagreen,href="books/bookvol10.2.pamphlet#nameddest=PRQAGG"]; +"PriorityQueueAggregate(a:SetCategory)" [color=seagreen]; "PriorityQueueAggregate(a:SetCategory)" -> "PriorityQueueAggregate(a:Type)" -"PriorityQueueAggregate(a:Type)" - [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=PRQAGG"]; +"PriorityQueueAggregate(a:Type)" [color=lightblue]; "PriorityQueueAggregate(a:Type)" -> "BGAGG..." "BGAGG..." [color=lightblue]; @@ -11529,6 +12089,376 @@ digraph pic { @ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{Ring}{RING} +\pagepic{ps/v102ring.ps}{RING}{1.00} + +{\bf See:}\\ +\pageto{OrderedRing}{ORDRING} +\pagefrom{LeftModule}{LMODULE} +\pagefrom{Monoid}{MONOID} +\pagefrom{Rng}{RNG} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{RING}{1} & +\cross{RING}{0} & +\cross{RING}{characteristic} & +\cross{RING}{coerce} & +\cross{RING}{hash} \\ +\cross{RING}{latex} & +\cross{RING}{one?} & +\cross{RING}{recip} & +\cross{RING}{sample} & +\cross{RING}{subtractIfCan} \\ +\cross{RING}{zero?} & +\cross{RING}{?\~{}=?} & +\cross{RING}{?*?} & +\cross{RING}{?**?} & +\cross{RING}{?\^{}?} \\ +\cross{RING}{?*?} & +\cross{RING}{?**?} & +\cross{RING}{?+?} & +\cross{RING}{?-?} & +\cross{RING}{-?} \\ +\cross{RING}{?=?} &&&& +\end{tabular} + +These are directly exported but not implemented: +\begin{verbatim} + characteristic : () -> NonNegativeInteger +\end{verbatim} + +These are implemented by this category: +\begin{verbatim} + coerce : Integer -> % +\end{verbatim} + +These exports come from Rng(): +\begin{verbatim} + 0 : () -> % + coerce : % -> OutputForm + hash : % -> SingleInteger + latex : % -> String + sample : () -> % + subtractIfCan : (%,%) -> Union(%,"failed") + zero? : % -> Boolean + ?+? : (%,%) -> % + ?=? : (%,%) -> Boolean + ?~=? : (%,%) -> Boolean + ?*? : (NonNegativeInteger,%) -> % + ?*? : (PositiveInteger,%) -> % + ?*? : (Integer,%) -> % + ?*? : (%,%) -> % + ?-? : (%,%) -> % + -? : % -> % + ?**? : (%,PositiveInteger) -> % + ?^? : (%,PositiveInteger) -> % +\end{verbatim} + +These exports come from Monoid(): +\begin{verbatim} + 1 : () -> % + one? : % -> Boolean + recip : % -> Union(%,"failed") + ?**? : (%,NonNegativeInteger) -> % + ?^? : (%,NonNegativeInteger) -> % +\end{verbatim} + +TPDHERE: Note that none of the exports of LeftModule are needed. +Perhaps this can be eliminated. + +These exports come from LeftModule(Ring): +\begin{verbatim} +\end{verbatim} + +<>= +)abbrev category RING Ring +++ Author: +++ Date Created: +++ Date Last Updated: +++ Basic Functions: +++ Related Constructors: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ References: +++ Description: +++ The category of rings with unity, always associative, but +++ not necessarily commutative. +Ring(): Category == Join(Rng,Monoid,LeftModule(%)) with + characteristic: () -> NonNegativeInteger + ++ characteristic() returns the characteristic of the ring + ++ this is the smallest positive integer n such that + ++ \spad{n*x=0} for all x in the ring, or zero if no such n + ++ exists. + --We can not make this a constant, since some domains are mutable + coerce: Integer -> % + ++ coerce(i) converts the integer i to a member of the given domain. +-- recip: % -> Union(%,"failed") -- inherited from Monoid + unitsKnown + ++ recip truly yields + ++ reciprocal or "failed" if not a unit. + ++ Note: \spad{recip(0) = "failed"}. + add + n:Integer + coerce(n) == n * 1$% + +@ +<>= +"RING" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=RING"]; +"RING" -> "RNG" +"RING" -> "MONOID" +"RING" -> "LMODULE" + +@ +<>= +"Ring()" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=RING"]; +"Ring()" -> "Rng()" +"Ring()" -> "Monoid()" +"Ring()" -> "LeftModule(a:Ring)" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"Ring()" [color=lightblue]; +"Ring()" -> "Rng()" +"Ring()" -> "Monoid()" +"Ring()" -> "LeftModule(a:Ring)" + +"Rng()" [color=lightblue]; +"Rng()" -> "AbelianGroup()" +"Rng()" -> "SemiGroup()" + +"Monoid()" [color=lightblue]; +"Monoid()" -> "SemiGroup()" + +"LeftModule(a:Ring)" [color=seagreen]; +"LeftModule(a:Ring)" -> "LeftModule(a:Rng)" + +"LeftModule(a:Rng)" [color=lightblue]; +"LeftModule(a:Rng)" -> "AbelianGroup()" + +"AbelianGroup()" [color=lightblue]; +"AbelianGroup()" -> "CABMON..." +"AbelianGroup()" -> "REPDB..." + +"SemiGroup()" [color=lightblue]; +"SemiGroup()" -> "SETCAT..." +"SemiGroup()" -> "REPSQ..." + +"REPDB..." [color="#00EE00"]; +"REPSQ..." [color="#00EE00"]; +"SETCAT..." [color=lightblue]; +"CABMON..." [color=lightblue]; +} + +@ +\chapter{Category Layer 9} +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{OrderedRing}{ORDRING} +\pagepic{ps/v102orderedring.ps}{ORDRING}{0.65} + +{\bf See:}\\ +\pagefrom{Monoid}{MONOID} +\pagefrom{OrderedAbelianGroup}{OAGROUP} +\pagefrom{Ring}{RING} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{ORDRING}{1} & +\cross{ORDRING}{0} & +\cross{ORDRING}{abs} & +\cross{ORDRING}{characteristic} & +\cross{ORDRING}{coerce} \\ +\cross{ORDRING}{hash} & +\cross{ORDRING}{latex} & +\cross{ORDRING}{max} & +\cross{ORDRING}{min} & +\cross{ORDRING}{negative?} \\ +\cross{ORDRING}{one?} & +\cross{ORDRING}{positive?} & +\cross{ORDRING}{recip} & +\cross{ORDRING}{sample} & +\cross{ORDRING}{sign} \\ +\cross{ORDRING}{subtractIfCan} & +\cross{ORDRING}{zero?} & +\cross{ORDRING}{?\^{}?} & +\cross{ORDRING}{?\~{}=?} & +\cross{ORDRING}{?*?} \\ +\cross{ORDRING}{?**?} & +\cross{ORDRING}{?+?} & +\cross{ORDRING}{-?} & +\cross{ORDRING}{?-?} & +\cross{ORDRING}{?$<$?} \\ +\cross{ORDRING}{?$<=$?} & +\cross{ORDRING}{?=?} & +\cross{ORDRING}{?$>$?} & +\cross{ORDRING}{?$>=$?} & +\end{tabular} + +These are implemented by this category: +\begin{verbatim} + abs : % -> % + negative? : % -> Boolean + positive? : % -> Boolean + sign : % -> Integer +\end{verbatim} + +These exports come from OrderedAbelianGroup(): +\begin{verbatim} + 0 : () -> % + coerce : % -> OutputForm + hash : % -> SingleInteger + latex : % -> String + max : (%,%) -> % + min : (%,%) -> % + sample : () -> % + subtractIfCan : (%,%) -> Union(%,"failed") + zero? : % -> Boolean + ? Boolean + ?<=? : (%,%) -> Boolean + ?=? : (%,%) -> Boolean + ?>? : (%,%) -> Boolean + ?>=? : (%,%) -> Boolean + ?~=? : (%,%) -> Boolean + ?*? : (NonNegativeInteger,%) -> % + ?*? : (PositiveInteger,%) -> % + ?*? : (Integer,%) -> % + ?+? : (%,%) -> % + -? : % -> % + ?-? : (%,%) -> % +\end{verbatim} + +These exports come from Ring(): +\begin{verbatim} + 1 : () -> % + characteristic : () -> NonNegativeInteger + coerce : Integer -> % + one? : % -> Boolean + recip : % -> Union(%,"failed") + ?**? : (%,NonNegativeInteger) -> % + ?**? : (%,PositiveInteger) -> % + ?*? : (%,%) -> % + ?^? : (%,NonNegativeInteger) -> % + ?^? : (%,PositiveInteger) -> % +\end{verbatim} + +TPDHERE: Note that none of the exports of Monoid are needed. +Perhaps this can be eliminated. + +These exports come from Monoid(); +\begin{verbatim} +\end{verbatim} + +<>= +)abbrev category ORDRING OrderedRing +++ Author: +++ Date Created: +++ Date Last Updated: +++ Basic Functions: +++ Related Constructors: +++ Also See: +++ AMS Classifications: +++ Keywords: +++ References: +++ Description: +++ Ordered sets which are also rings, that is, domains where the ring +++ operations are compatible with the ordering. +++ +++ Axiom: +++ \spad{0 ab< ac} +OrderedRing(): Category == Join(OrderedAbelianGroup,Ring,Monoid) with + positive?: % -> Boolean + ++ positive?(x) tests whether x is strictly greater than 0. + negative?: % -> Boolean + ++ negative?(x) tests whether x is strictly less than 0. + sign : % -> Integer + ++ sign(x) is 1 if x is positive, -1 if x is negative, + ++ 0 if x equals 0. + abs : % -> % + ++ abs(x) returns the absolute value of x. + add + positive? x == x>0 + negative? x == x<0 + sign x == + positive? x => 1 + negative? x => -1 + zero? x => 0 + error "x satisfies neither positive?, negative? or zero?" + abs x == + positive? x => x + negative? x => -x + zero? x => 0 + error "x satisfies neither positive?, negative? or zero?" + +@ +<>= +"ORDRING" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=ORDRING"]; +"ORDRING" -> "OAGROUP" +"ORDRING" -> "RING" +"ORDRING" -> "MONOID" + +@ +<>= +"OrderedRing()" + [color=lightblue,href="books/bookvol10.2.pamphlet#nameddest=ORDRING"]; +"OrderedRing()" -> "OrderedAbelianGroup()" +"OrderedRing()" -> "Ring()" +"OrderedRing()" -> "Monoid()" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"OrderedRing()" [color=lightblue]; +"OrderedRing()" -> "OrderedAbelianGroup()" +"OrderedRing()" -> "Ring()" +"OrderedRing()" -> "Monoid()" + +"Ring()" [color=lightblue]; +"Ring()" -> "Rng()" +"Ring()" -> "Monoid()" +"Ring()" -> "LeftModule(a:Ring)" + +"Rng()" [color=lightblue]; +"Rng()" -> "ABELGRP..." +"Rng()" -> "SemiGroup()" + +"Monoid()" [color=lightblue]; +"Monoid()" -> "SemiGroup()" + +"OrderedAbelianGroup()" [color=lightblue]; +"OrderedAbelianGroup()" -> "OCAMON..." +"OrderedAbelianGroup()" -> "ABELGRP..." + +"LeftModule(a:Ring)" [color=seagreen]; +"LeftModule(a:Ring)" -> "LeftModule(a:Rng)" + +"LeftModule(a:Rng)" [color=lightblue]; +"LeftModule(a:Rng)" -> "ABELGRP..." + +"SemiGroup()" [color=lightblue]; +"SemiGroup()" -> "SETCAT..." +"SemiGroup()" -> "REPSQ..." + +"REPSQ..." [color="#00EE00"]; +"OCAMON..." [color=lightblue]; +"SETCAT..." [color=lightblue]; +"ABELGRP..." [color=lightblue]; +} + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \chapter{Category Layers} \section{category BTAGG BitAggregate} <>= @@ -14012,6 +14942,139 @@ Note that this code is not included in the generated catdef.spad file. (QUOTE |lookupComplete|))) @ +\section{ORDRING.lsp BOOTSTRAP} +{\bf ORDRING} depends on {\bf INT}. We need to break this cycle to build +the algebra. So we keep a cached copy of the translated {\bf ORDRING} +category which we can write into the {\bf MID} directory. We compile +the lisp code and copy the {\bf ORDRING.o} file to the {\bf OUT} directory. +This is eventually forcibly replaced by a recompiled version. + +Technically I can't justify this bootstrap stanza based on the lattice +since {\bf INT} is already bootstrapped. However using {\bf INT} naked +generates a "value stack overflow" error suggesting an infinite recursive +loop. This code is here to experiment with breaking that loop. + +Note that this code is not included in the generated catdef.spad file. + +<>= + +(|/VERSIONCHECK| 2) + +(SETQ |OrderedRing;AL| (QUOTE NIL)) + +(DEFUN |OrderedRing| NIL + (LET (#:G84457) + (COND + (|OrderedRing;AL|) + (T (SETQ |OrderedRing;AL| (|OrderedRing;|)))))) + +(DEFUN |OrderedRing;| NIL + (PROG (#1=#:G84455) + (RETURN + (PROG1 + (LETT #1# + (|Join| + (|OrderedAbelianGroup|) + (|Ring|) + (|Monoid|) + (|mkCategory| + (QUOTE |domain|) + (QUOTE ( + ((|positive?| ((|Boolean|) |$|)) T) + ((|negative?| ((|Boolean|) |$|)) T) + ((|sign| ((|Integer|) |$|)) T) + ((|abs| (|$| |$|)) T))) + NIL + (QUOTE ((|Integer|) (|Boolean|))) + NIL)) + |OrderedRing|) + (SETELT #1# 0 (QUOTE (|OrderedRing|))))))) + +(MAKEPROP (QUOTE |OrderedRing|) (QUOTE NILADIC) T) + +@ +\section{ORDRING-.lsp BOOTSTRAP} +{\bf ORDRING-} depends on {\bf ORDRING}. We need to break this cycle to build +the algebra. So we keep a cached copy of the translated {\bf ORDRING-} +category which we can write into the {\bf MID} directory. We compile +the lisp code and copy the {\bf ORDRING-.o} file to the {\bf OUT} directory. +This is eventually forcibly replaced by a recompiled version. + +Note that this code is not included in the generated catdef.spad file. + +<>= + +(|/VERSIONCHECK| 2) + +(DEFUN |ORDRING-;positive?;SB;1| (|x| |$|) + (SPADCALL (|spadConstant| |$| 7) |x| (QREFELT |$| 9))) + +(DEFUN |ORDRING-;negative?;SB;2| (|x| |$|) + (SPADCALL |x| (|spadConstant| |$| 7) (QREFELT |$| 9))) + +(DEFUN |ORDRING-;sign;SI;3| (|x| |$|) + (COND + ((SPADCALL |x| (QREFELT |$| 12)) 1) + ((SPADCALL |x| (QREFELT |$| 13)) -1) + ((SPADCALL |x| (QREFELT |$| 15)) 0) + ((QUOTE T) + (|error| "x satisfies neither positive?, negative? or zero?")))) + +(DEFUN |ORDRING-;abs;2S;4| (|x| |$|) + (COND + ((SPADCALL |x| (QREFELT |$| 12)) |x|) + ((SPADCALL |x| (QREFELT |$| 13)) (SPADCALL |x| (QREFELT |$| 18))) + ((SPADCALL |x| (QREFELT |$| 15)) (|spadConstant| |$| 7)) + ((QUOTE T) + (|error| "x satisfies neither positive?, negative? or zero?")))) + +(DEFUN |OrderedRing&| (|#1|) + (PROG (|DV$1| |dv$| |$| |pv$|) + (RETURN + (PROGN + (LETT |DV$1| (|devaluate| |#1|) . #1=(|OrderedRing&|)) + (LETT |dv$| (LIST (QUOTE |OrderedRing&|) |DV$1|) . #1#) + (LETT |$| (GETREFV 20) . #1#) + (QSETREFV |$| 0 |dv$|) + (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) + (|stuffDomainSlots| |$|) + (QSETREFV |$| 6 |#1|) + |$|)))) + +(MAKEPROP + (QUOTE |OrderedRing&|) + (QUOTE |infovec|) + (LIST + (QUOTE + #(NIL NIL NIL NIL NIL NIL + (|local| |#1|) + (0 . |Zero|) + (|Boolean|) + (4 . |<|) + |ORDRING-;positive?;SB;1| + |ORDRING-;negative?;SB;2| + (10 . |positive?|) + (15 . |negative?|) + (20 . |One|) + (24 . |zero?|) + (|Integer|) + |ORDRING-;sign;SI;3| + (29 . |-|) + |ORDRING-;abs;2S;4|)) + (QUOTE #(|sign| 34 |positive?| 39 |negative?| 44 |abs| 49)) + (QUOTE NIL) + (CONS + (|makeByteWordVec2| 1 (QUOTE NIL)) + (CONS + (QUOTE #()) + (CONS + (QUOTE #()) + (|makeByteWordVec2| 19 + (QUOTE + (0 6 0 7 2 6 8 0 0 9 1 6 8 0 12 1 6 8 0 13 0 6 0 14 1 6 8 0 15 + 1 6 0 0 18 1 0 16 0 17 1 0 8 0 10 1 0 8 0 11 1 0 0 0 19)))))) + (QUOTE |lookupComplete|))) +@ \section{RCAGG.lsp BOOTSTRAP} {\bf RCAGG} depends on a chain of files. We need to break this cycle to build the algebra. So we keep a cached copy of the translated {\bf RCAGG} @@ -14149,6 +15212,103 @@ Note that this code is not included in the generated catdef.spad file. 10 2 0 15 0 0 18)))))) (QUOTE |lookupComplete|))) @ +\section{RING.lsp BOOTSTRAP} +{\bf RING} depends on itself. We need to break this cycle to build +the algebra. So we keep a cached copy of the translated {\bf RING} +category which we can write into the {\bf MID} directory. We compile +the lisp code and copy the {\bf RING.o} file to the {\bf OUT} directory. +This is eventually forcibly replaced by a recompiled version. + +Note that this code is not included in the generated catdef.spad file. + +<>= + +(|/VERSIONCHECK| 2) + +(SETQ |Ring;AL| (QUOTE NIL)) + +(DEFUN |Ring| NIL + (LET (#:G82789) + (COND + (|Ring;AL|) + (T (SETQ |Ring;AL| (|Ring;|)))))) + +(DEFUN |Ring;| NIL + (PROG (#1=#:G82787) + (RETURN + (PROG1 + (LETT #1# + (|Join| + (|Rng|) + (|Monoid|) + (|LeftModule| (QUOTE |$|)) + (|mkCategory| + (QUOTE |domain|) + (QUOTE ( + ((|characteristic| ((|NonNegativeInteger|))) T) + ((|coerce| (|$| (|Integer|))) T))) + (QUOTE ((|unitsKnown| T))) + (QUOTE ((|Integer|) (|NonNegativeInteger|))) + NIL)) + |Ring|) + (SETELT #1# 0 (QUOTE (|Ring|))))))) + +(MAKEPROP (QUOTE |Ring|) (QUOTE NILADIC) T) + +@ +\section{RING-.lsp BOOTSTRAP} +{\bf RING-} depends on {\bf RING}. We need to break this cycle to build +the algebra. So we keep a cached copy of the translated {\bf RING-} +category which we can write into the {\bf MID} directory. We compile +the lisp code and copy the {\bf RING-.o} file to the {\bf OUT} directory. +This is eventually forcibly replaced by a recompiled version. + +Note that this code is not included in the generated catdef.spad file. + +<>= + +(|/VERSIONCHECK| 2) + +(DEFUN |RING-;coerce;IS;1| (|n| |$|) + (SPADCALL |n| (|spadConstant| |$| 7) (QREFELT |$| 9))) + +(DEFUN |Ring&| (|#1|) + (PROG (|DV$1| |dv$| |$| |pv$|) + (RETURN + (PROGN + (LETT |DV$1| (|devaluate| |#1|) . #1=(|Ring&|)) + (LETT |dv$| (LIST (QUOTE |Ring&|) |DV$1|) . #1#) + (LETT |$| (GETREFV 12) . #1#) + (QSETREFV |$| 0 |dv$|) + (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) + (|stuffDomainSlots| |$|) + (QSETREFV |$| 6 |#1|) + |$|)))) + +(MAKEPROP + (QUOTE |Ring&|) + (QUOTE |infovec|) + (LIST + (QUOTE + #(NIL NIL NIL NIL NIL NIL + (|local| |#1|) + (0 . |One|) + (|Integer|) + (4 . |*|) + |RING-;coerce;IS;1| + (|OutputForm|))) + (QUOTE #(|coerce| 10)) + (QUOTE NIL) + (CONS + (|makeByteWordVec2| 1 (QUOTE NIL)) + (CONS + (QUOTE #()) + (CONS + (QUOTE #()) + (|makeByteWordVec2| 10 (QUOTE (0 6 0 7 2 6 0 8 0 9 1 0 0 8 10)))))) + (QUOTE |lookupComplete|))) + +@ \section{RNG.lsp BOOTSTRAP} {\bf RNG} depends on a chain of files. We need to break this cycle to build the algebra. So we keep a @@ -15591,6 +16751,7 @@ Note that this code is not included in the generated catdef.spad file. <> <> <> +<> <> <> <> @@ -15605,26 +16766,34 @@ Note that this code is not included in the generated catdef.spad file. <> <> <> +<> <> <> <> <> <> +<> <> <> <> <> <> +<> <> +<> <> +<> <> <> <> +<> <> <> <> <> <> +<> +<> <> <> <> @@ -15654,6 +16823,7 @@ digraph dotabb { <> <> <> +<> <> <> <> @@ -15673,21 +16843,28 @@ digraph dotabb { <> <> <> +<> <> <> <> <> <> +<> <> +<> <> +<> <> <> <> +<> <> <> <> <> <> +<> +<> <> <> <> @@ -15720,6 +16897,7 @@ digraph dotfull { <> <> <> +<> <> <> <> @@ -15739,21 +16917,28 @@ digraph dotfull { <> <> <> +<> <> <> <> <> <> +<> <> +<> <> +<> <> <> <> +<> <> <> <> <> <> +<> +<> <> <> <> diff --git a/books/ps/v102bimodule.ps b/books/ps/v102bimodule.ps new file mode 100644 index 0000000..b830c3f --- /dev/null +++ b/books/ps/v102bimodule.ps @@ -0,0 +1,636 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 353 440 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 353 440 +%%PageOrientation: Portrait +gsave +36 36 317 404 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 402 lineto +315 402 lineto +315 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 402 lineto +315 402 lineto +315 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% BiModule(a:Ring,b:Ring) +[ /Rect [ 84 360 246 396 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (books/bookvol10.2.pamphlet#nameddest=BMODULE) >> + /Subtype /Link +/ANN pdfmark +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 246 396 moveto +84 396 lineto +84 360 lineto +246 360 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 246 396 moveto +84 396 lineto +84 360 lineto +246 360 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +92 373 moveto +(BiModule\(a:Ring,b:Ring\)) +[9.36 3.84 12.48 6.96 6.96 6.96 3.84 6.24 4.56 6.24 3.84 9.36 3.84 6.96 6.96 3.6 6.96 3.84 9.36 3.84 6.96 6.96 4.56] +xshow +end grestore +end grestore +% LeftModule(a:Ring) +gsave 10 dict begin +filled +0.404 0.667 0.545 nodecolor +0.404 0.667 0.545 nodecolor +newpath 155 324 moveto +25 324 lineto +25 288 lineto +155 288 lineto +closepath +fill +0.404 0.667 0.545 nodecolor +newpath 155 324 moveto +25 324 lineto +25 288 lineto +155 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +33 301 moveto +(LeftModule\(a:Ring\)) +[8.64 6.24 4.8 3.84 12.48 6.96 6.96 6.96 3.84 6.24 4.56 6.24 3.84 9.36 3.84 6.96 6.96 4.56] +xshow +end grestore +end grestore +% BiModule(a:Ring,b:Ring)->LeftModule(a:Ring) +newpath 146 360 moveto +137 351 126 341 116 331 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 119 329 moveto +109 324 lineto +114 334 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 119 329 moveto +109 324 lineto +114 334 lineto +closepath +stroke +end grestore +% RightModule(a:Ring) +gsave 10 dict begin +filled +0.404 0.667 0.545 nodecolor +0.404 0.667 0.545 nodecolor +newpath 309 324 moveto +173 324 lineto +173 288 lineto +309 288 lineto +closepath +fill +0.404 0.667 0.545 nodecolor +newpath 309 324 moveto +173 324 lineto +173 288 lineto +309 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +180 301 moveto +(RightModule\(a:Ring\)) +[9.36 3.84 6.96 6.96 3.84 12.48 6.96 6.96 6.96 3.84 6.24 4.56 6.24 3.84 9.36 3.84 6.96 6.96 4.56] +xshow +end grestore +end grestore +% BiModule(a:Ring,b:Ring)->RightModule(a:Ring) +newpath 184 360 moveto +194 351 205 341 215 331 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 217 334 moveto +222 324 lineto +212 329 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 217 334 moveto +222 324 lineto +212 329 lineto +closepath +stroke +end grestore +% LeftModule(a:Rng) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 154 252 moveto +28 252 lineto +28 216 lineto +154 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 154 252 moveto +28 252 lineto +28 216 lineto +154 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +36 229 moveto +(LeftModule\(a:Rng\)) +[8.64 6.24 4.8 3.84 12.48 6.96 6.96 6.96 3.84 6.24 4.56 6.24 3.84 9.36 6.96 6.96 4.56] +xshow +end grestore +end grestore +% LeftModule(a:Ring)->LeftModule(a:Rng) +newpath 90 288 moveto +91 280 91 271 91 262 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 95 262 moveto +91 252 lineto +88 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 95 262 moveto +91 252 lineto +88 262 lineto +closepath +stroke +end grestore +% RightModule(a:Rng) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 307 252 moveto +173 252 lineto +173 216 lineto +307 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 307 252 moveto +173 252 lineto +173 216 lineto +307 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +181 229 moveto +(RightModule\(a:Rng\)) +[9.36 3.84 6.96 6.96 3.84 12.48 6.96 6.96 6.96 3.84 6.24 4.56 6.24 3.84 9.36 6.96 6.96 4.56] +xshow +end grestore +end grestore +% RightModule(a:Ring)->RightModule(a:Rng) +newpath 241 288 moveto +240 280 240 271 240 262 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 244 262 moveto +240 252 lineto +237 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 244 262 moveto +240 252 lineto +237 262 lineto +closepath +stroke +end grestore +% AbelianGroup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 218 180 moveto +112 180 lineto +112 144 lineto +218 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 218 180 moveto +112 180 lineto +112 144 lineto +218 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +120 157 moveto +(AbelianGroup\(\)) +[9.84 6.96 6.24 3.84 3.84 6.24 6.96 10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% RightModule(a:Rng)->AbelianGroup() +newpath 221 216 moveto +212 207 201 197 191 187 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 194 185 moveto +184 180 lineto +189 190 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 194 185 moveto +184 180 lineto +189 190 lineto +closepath +stroke +end grestore +% CancellationAbelianMonoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 184 108 moveto +0 108 lineto +0 72 lineto +184 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 184 108 moveto +0 108 lineto +0 72 lineto +184 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 85 moveto +(CancellationAbelianMonoid\(\)) +[9.36 6.24 6.96 6.24 6.24 3.84 3.84 6.24 3.84 3.84 6.96 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% AbelianGroup()->CancellationAbelianMonoid() +newpath 147 144 moveto +138 135 127 125 117 115 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 120 113 moveto +110 108 lineto +115 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 120 113 moveto +110 108 lineto +115 118 lineto +closepath +stroke +end grestore +% REPDB... +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 274 108 moveto +202 108 lineto +202 72 lineto +274 72 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 274 108 moveto +202 108 lineto +202 72 lineto +274 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +209 85 moveto +(REPDB...) +[9.36 8.64 7.68 10.08 9.36 3.6 3.6 3.6] +xshow +end grestore +end grestore +% AbelianGroup()->REPDB... +newpath 183 144 moveto +192 135 203 125 213 115 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 215 118 moveto +220 108 lineto +210 113 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 215 118 moveto +220 108 lineto +210 113 lineto +closepath +stroke +end grestore +% LeftModule(a:Rng)->AbelianGroup() +newpath 110 216 moveto +119 207 130 197 140 187 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 142 190 moveto +147 180 lineto +137 185 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 142 190 moveto +147 180 lineto +137 185 lineto +closepath +stroke +end grestore +% ABELMON... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 141 36 moveto +43 36 lineto +43 0 lineto +141 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 141 36 moveto +43 36 lineto +43 0 lineto +141 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +51 13 moveto +(ABELMON...) +[10.08 9.36 8.64 8.64 12.48 10.08 9.84 3.6 3.6 3.6] +xshow +end grestore +end grestore +% CancellationAbelianMonoid()->ABELMON... +newpath 92 72 moveto +92 64 92 55 92 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 96 46 moveto +92 36 lineto +89 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 96 46 moveto +92 36 lineto +89 46 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v102group.ps b/books/ps/v102group.ps new file mode 100644 index 0000000..d0e930f --- /dev/null +++ b/books/ps/v102group.ps @@ -0,0 +1,791 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 554 512 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 554 512 +%%PageOrientation: Portrait +gsave +36 36 518 476 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 474 lineto +516 474 lineto +516 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 474 lineto +516 474 lineto +516 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% Group() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 386 468 moveto +324 468 lineto +324 432 lineto +386 432 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 386 468 moveto +324 468 lineto +324 432 lineto +386 432 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +332 445 moveto +(Group\(\)) +[10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Monoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 338 396 moveto +268 396 lineto +268 360 lineto +338 360 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 338 396 moveto +268 396 lineto +268 360 lineto +338 360 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +275 373 moveto +(Monoid\(\)) +[12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Group()->Monoid() +newpath 342 432 moveto +336 424 329 413 322 404 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 325 402 moveto +316 396 lineto +319 406 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 325 402 moveto +316 396 lineto +319 406 lineto +closepath +stroke +end grestore +% RepeatedSquaring(Group) +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 510 324 moveto +346 324 lineto +346 288 lineto +510 288 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 510 324 moveto +346 324 lineto +346 288 lineto +510 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +354 301 moveto +(RepeatedSquaring\(Group\)) +[9.12 6.24 6.96 6.24 6.24 3.84 6.24 6.96 7.68 6.72 6.96 6.24 5.04 3.84 6.96 6.96 4.56 10.08 4.8 6.96 6.96 6.96 4.56] +xshow +end grestore +end grestore +% Group()->RepeatedSquaring(Group) +newpath 364 432 moveto +377 407 400 362 414 333 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 417 334 moveto +419 324 lineto +411 331 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 417 334 moveto +419 324 lineto +411 331 lineto +closepath +stroke +end grestore +% SemiGroup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 328 324 moveto +238 324 lineto +238 288 lineto +328 288 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 328 324 moveto +238 324 lineto +238 288 lineto +328 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +246 301 moveto +(SemiGroup\(\)) +[7.68 6.24 10.8 3.84 10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Monoid()->SemiGroup() +newpath 298 360 moveto +296 352 293 343 291 334 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 294 333 moveto +288 324 lineto +288 335 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 294 333 moveto +288 324 lineto +288 335 lineto +closepath +stroke +end grestore +% RepeatedSquaring(a:SetCategory) +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 490 180 moveto +284 180 lineto +284 144 lineto +490 144 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 490 180 moveto +284 180 lineto +284 144 lineto +490 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +291 157 moveto +(RepeatedSquaring\(a:SetCategory\)) +[9.12 6.24 6.96 6.24 6.24 3.84 6.24 6.96 7.68 6.72 6.96 6.24 5.04 3.84 6.96 6.96 4.56 6.24 3.84 7.68 6 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56] +xshow +end grestore +end grestore +% RepeatedSquaring(Group)->RepeatedSquaring(a:SetCategory) +newpath 425 288 moveto +422 269 416 240 409 216 curveto +406 207 403 198 399 189 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 402 188 moveto +395 180 lineto +396 191 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 402 188 moveto +395 180 lineto +396 191 lineto +closepath +stroke +end grestore +% SetCategory() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 190 252 moveto +96 252 lineto +96 216 lineto +190 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 190 252 moveto +96 252 lineto +96 216 lineto +190 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +103 229 moveto +(SetCategory\(\)) +[7.68 6 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56 4.56] +xshow +end grestore +end grestore +% SemiGroup()->SetCategory() +newpath 248 288 moveto +229 279 206 267 187 257 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 188 254 moveto +178 252 lineto +185 260 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 188 254 moveto +178 252 lineto +185 260 lineto +closepath +stroke +end grestore +% RepeatedSquaring(SemiGroup) +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 400 252 moveto +208 252 lineto +208 216 lineto +400 216 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 400 252 moveto +208 252 lineto +208 216 lineto +400 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +216 229 moveto +(RepeatedSquaring\(SemiGroup\)) +[9.12 6.24 6.96 6.24 6.24 3.84 6.24 6.96 7.68 6.72 6.96 6.24 5.04 3.84 6.96 6.96 4.56 7.68 6.24 10.8 3.84 10.08 4.8 6.96 6.96 6.96 4.56] +xshow +end grestore +end grestore +% SemiGroup()->RepeatedSquaring(SemiGroup) +newpath 288 288 moveto +291 280 294 271 296 262 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 299 263 moveto +299 252 lineto +293 261 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 299 263 moveto +299 252 lineto +293 261 lineto +closepath +stroke +end grestore +% BasicType() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 84 108 moveto +0 108 lineto +0 72 lineto +84 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 84 108 moveto +0 108 lineto +0 72 lineto +84 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 85 moveto +(BasicType\(\)) +[9.36 6.24 5.52 3.84 6.24 7.2 6.96 6.96 6.24 4.56 4.56] +xshow +end grestore +end grestore +% SetCategory()->BasicType() +newpath 112 216 moveto +99 206 83 194 73 180 curveto +60 162 52 137 47 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 50 117 moveto +45 108 lineto +44 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 50 117 moveto +45 108 lineto +44 118 lineto +closepath +stroke +end grestore +% CoercibleTo(OutputForm) +gsave 10 dict begin +filled +0.404 0.667 0.545 nodecolor +0.404 0.667 0.545 nodecolor +newpath 246 180 moveto +82 180 lineto +82 144 lineto +246 144 lineto +closepath +fill +0.404 0.667 0.545 nodecolor +newpath 246 180 moveto +82 180 lineto +82 144 lineto +246 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +90 157 moveto +(CoercibleTo\(OutputForm\)) +[9.36 6.96 6.24 4.8 6.24 3.84 6.96 3.84 6.24 7.44 6.96 4.56 10.08 6.96 3.84 6.96 6.96 3.84 7.44 6.96 5.04 10.8 4.56] +xshow +end grestore +end grestore +% SetCategory()->CoercibleTo(OutputForm) +newpath 148 216 moveto +151 208 154 199 156 190 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 159 191 moveto +159 180 lineto +153 189 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 159 191 moveto +159 180 lineto +153 189 lineto +closepath +stroke +end grestore +% RepeatedSquaring(SemiGroup)->RepeatedSquaring(a:SetCategory) +newpath 325 216 moveto +335 207 348 196 359 187 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 362 189 moveto +367 180 lineto +357 184 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 362 189 moveto +367 180 lineto +357 184 lineto +closepath +stroke +end grestore +% Category +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 139 36 moveto +71 36 lineto +71 0 lineto +139 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 139 36 moveto +71 36 lineto +71 0 lineto +139 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +79 13 moveto +(Category) +[9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96] +xshow +end grestore +end grestore +% BasicType()->Category +newpath 58 72 moveto +66 63 75 53 82 44 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 85 46 moveto +89 36 lineto +80 41 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 85 46 moveto +89 36 lineto +80 41 lineto +closepath +stroke +end grestore +% CoercibleTo(a:Type) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 234 108 moveto +102 108 lineto +102 72 lineto +234 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 234 108 moveto +102 108 lineto +102 72 lineto +234 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +110 85 moveto +(CoercibleTo\(a:Type\)) +[9.36 6.96 6.24 4.8 6.24 3.84 6.96 3.84 6.24 7.44 6.96 4.56 6.24 3.84 7.2 6.96 6.96 6.24 4.56] +xshow +end grestore +end grestore +% CoercibleTo(OutputForm)->CoercibleTo(a:Type) +newpath 165 144 moveto +166 136 166 127 166 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 169 118 moveto +167 108 lineto +163 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 169 118 moveto +167 108 lineto +163 118 lineto +closepath +stroke +end grestore +% CoercibleTo(a:Type)->Category +newpath 152 72 moveto +144 63 135 53 128 44 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 130 41 moveto +121 36 lineto +125 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 130 41 moveto +121 36 lineto +125 46 lineto +closepath +stroke +end grestore +% Package +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 418 108 moveto +356 108 lineto +356 72 lineto +418 72 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 418 108 moveto +356 108 lineto +356 72 lineto +418 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +363 85 moveto +(Package) +[7.44 6.24 6 6.96 6.24 6.72 6.24] +xshow +end grestore +end grestore +% RepeatedSquaring(a:SetCategory)->Package +newpath 387 144 moveto +387 136 387 127 387 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 391 118 moveto +387 108 lineto +384 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 391 118 moveto +387 108 lineto +384 118 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v102leftmodule.ps b/books/ps/v102leftmodule.ps new file mode 100644 index 0000000..df491a4 --- /dev/null +++ b/books/ps/v102leftmodule.ps @@ -0,0 +1,519 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 456 368 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 456 368 +%%PageOrientation: Portrait +gsave +36 36 420 332 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 330 lineto +418 330 lineto +418 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 330 lineto +418 330 lineto +418 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% LeftModule(a:Rng) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 262 324 moveto +136 324 lineto +136 288 lineto +262 288 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 262 324 moveto +136 324 lineto +136 288 lineto +262 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +144 301 moveto +(LeftModule\(a:Rng\)) +[8.64 6.24 4.8 3.84 12.48 6.96 6.96 6.96 3.84 6.24 4.56 6.24 3.84 9.36 6.96 6.96 4.56] +xshow +end grestore +end grestore +% AbelianGroup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 252 252 moveto +146 252 lineto +146 216 lineto +252 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 252 252 moveto +146 252 lineto +146 216 lineto +252 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +154 229 moveto +(AbelianGroup\(\)) +[9.84 6.96 6.24 3.84 3.84 6.24 6.96 10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% LeftModule(a:Rng)->AbelianGroup() +newpath 199 288 moveto +199 280 199 271 199 262 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 203 262 moveto +199 252 lineto +196 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 203 262 moveto +199 252 lineto +196 262 lineto +closepath +stroke +end grestore +% CancellationAbelianMonoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 184 180 moveto +0 180 lineto +0 144 lineto +184 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 184 180 moveto +0 180 lineto +0 144 lineto +184 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 157 moveto +(CancellationAbelianMonoid\(\)) +[9.36 6.24 6.96 6.24 6.24 3.84 3.84 6.24 3.84 3.84 6.96 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% AbelianGroup()->CancellationAbelianMonoid() +newpath 172 216 moveto +159 207 142 196 128 186 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 129 183 moveto +119 180 lineto +125 188 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 129 183 moveto +119 180 lineto +125 188 lineto +closepath +stroke +end grestore +% RepeatedDoubling(AbelianGroup) +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 412 180 moveto +202 180 lineto +202 144 lineto +412 144 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 412 180 moveto +202 180 lineto +202 144 lineto +412 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +210 157 moveto +(RepeatedDoubling\(AbelianGroup\)) +[9.12 6.24 6.96 6.24 6.24 3.84 6.24 6.96 10.08 6.96 6.96 6.96 3.84 3.84 6.96 6.96 4.56 9.84 6.96 6.24 3.84 3.84 6.24 6.96 10.08 4.8 6.96 6.96 6.96 4.56] +xshow +end grestore +end grestore +% AbelianGroup()->RepeatedDoubling(AbelianGroup) +newpath 226 216 moveto +240 207 257 196 271 186 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 274 188 moveto +280 180 lineto +270 183 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 274 188 moveto +280 180 lineto +270 183 lineto +closepath +stroke +end grestore +% ABELMON... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 141 108 moveto +43 108 lineto +43 72 lineto +141 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 141 108 moveto +43 108 lineto +43 72 lineto +141 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +51 85 moveto +(ABELMON...) +[10.08 9.36 8.64 8.64 12.48 10.08 9.84 3.6 3.6 3.6] +xshow +end grestore +end grestore +% CancellationAbelianMonoid()->ABELMON... +newpath 92 144 moveto +92 136 92 127 92 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 96 118 moveto +92 108 lineto +89 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 96 118 moveto +92 108 lineto +89 118 lineto +closepath +stroke +end grestore +% RepeatedDoubling(a:SetCategory) +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 411 108 moveto +203 108 lineto +203 72 lineto +411 72 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 411 108 moveto +203 108 lineto +203 72 lineto +411 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +210 85 moveto +(RepeatedDoubling\(a:SetCategory\)) +[9.12 6.24 6.96 6.24 6.24 3.84 6.24 6.96 10.08 6.96 6.96 6.96 3.84 3.84 6.96 6.96 4.56 6.24 3.84 7.68 6 3.84 9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96 4.56] +xshow +end grestore +end grestore +% RepeatedDoubling(AbelianGroup)->RepeatedDoubling(a:SetCategory) +newpath 307 144 moveto +307 136 307 127 307 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 311 118 moveto +307 108 lineto +304 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 311 118 moveto +307 108 lineto +304 118 lineto +closepath +stroke +end grestore +% Package +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 338 36 moveto +276 36 lineto +276 0 lineto +338 0 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 338 36 moveto +276 36 lineto +276 0 lineto +338 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +283 13 moveto +(Package) +[7.44 6.24 6 6.96 6.24 6.72 6.24] +xshow +end grestore +end grestore +% RepeatedDoubling(a:SetCategory)->Package +newpath 307 72 moveto +307 64 307 55 307 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 311 46 moveto +307 36 lineto +304 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 311 46 moveto +307 36 lineto +304 46 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v102orderedabeliangroup.ps b/books/ps/v102orderedabeliangroup.ps new file mode 100644 index 0000000..8608006 --- /dev/null +++ b/books/ps/v102orderedabeliangroup.ps @@ -0,0 +1,493 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 398 224 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 398 224 +%%PageOrientation: Portrait +gsave +36 36 362 188 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 186 lineto +360 186 lineto +360 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 186 lineto +360 186 lineto +360 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% OrderedAbelianGroup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 283 180 moveto +133 180 lineto +133 144 lineto +283 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 283 180 moveto +133 180 lineto +133 144 lineto +283 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +140 157 moveto +(OrderedAbelianGroup\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedCancellationAbelianMonoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 230 108 moveto +0 108 lineto +0 72 lineto +230 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 230 108 moveto +0 108 lineto +0 72 lineto +230 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 85 moveto +(OrderedCancellationAbelianMonoid\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.36 6.24 6.96 6.24 6.24 3.84 3.84 6.24 3.84 3.84 6.96 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedAbelianGroup()->OrderedCancellationAbelianMonoid() +newpath 185 144 moveto +174 135 159 124 146 114 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 148 111 moveto +138 108 lineto +144 117 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 148 111 moveto +138 108 lineto +144 117 lineto +closepath +stroke +end grestore +% AbelianGroup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 354 108 moveto +248 108 lineto +248 72 lineto +354 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 354 108 moveto +248 108 lineto +248 72 lineto +354 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +256 85 moveto +(AbelianGroup\(\)) +[9.84 6.96 6.24 3.84 3.84 6.24 6.96 10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedAbelianGroup()->AbelianGroup() +newpath 231 144 moveto +242 135 257 124 270 114 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 272 117 moveto +278 108 lineto +268 111 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 272 117 moveto +278 108 lineto +268 111 lineto +closepath +stroke +end grestore +% OAMON... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 148 36 moveto +70 36 lineto +70 0 lineto +148 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 148 36 moveto +70 36 lineto +70 0 lineto +148 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +77 13 moveto +(OAMON...) +[9.36 10.08 12.48 10.08 9.84 3.6 3.6 3.6] +xshow +end grestore +end grestore +% OrderedCancellationAbelianMonoid()->OAMON... +newpath 113 72 moveto +112 64 112 55 111 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 115 46 moveto +111 36 lineto +108 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 115 46 moveto +111 36 lineto +108 46 lineto +closepath +stroke +end grestore +% CABMON... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 254 36 moveto +166 36 lineto +166 0 lineto +254 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 254 36 moveto +166 36 lineto +166 0 lineto +254 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +174 13 moveto +(CABMON...) +[9.12 10.08 9.36 12.48 10.08 9.84 3.6 3.6 3.6] +xshow +end grestore +end grestore +% OrderedCancellationAbelianMonoid()->CABMON... +newpath 139 72 moveto +150 63 165 52 178 42 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 180 45 moveto +186 36 lineto +176 39 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 180 45 moveto +186 36 lineto +176 39 lineto +closepath +stroke +end grestore +% AbelianGroup()->CABMON... +newpath 278 72 moveto +267 63 253 52 241 42 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 243 39 moveto +233 36 lineto +239 45 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 243 39 moveto +233 36 lineto +239 45 lineto +closepath +stroke +end grestore +% REPDB... +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 344 36 moveto +272 36 lineto +272 0 lineto +344 0 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 344 36 moveto +272 36 lineto +272 0 lineto +344 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +279 13 moveto +(REPDB...) +[9.36 8.64 7.68 10.08 9.36 3.6 3.6 3.6] +xshow +end grestore +end grestore +% AbelianGroup()->REPDB... +newpath 303 72 moveto +304 64 304 55 305 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 308 46 moveto +306 36 lineto +302 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 308 46 moveto +306 36 lineto +302 46 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v102orderedabelianmonoidsup.ps b/books/ps/v102orderedabelianmonoidsup.ps new file mode 100644 index 0000000..76d969b --- /dev/null +++ b/books/ps/v102orderedabelianmonoidsup.ps @@ -0,0 +1,652 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 464 440 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 464 440 +%%PageOrientation: Portrait +gsave +36 36 428 404 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 402 lineto +426 402 lineto +426 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 402 lineto +426 402 lineto +426 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% OrderedAbelianMonoidSup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 355 396 moveto +175 396 lineto +175 360 lineto +355 360 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 355 396 moveto +175 396 lineto +175 360 lineto +355 360 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +182 373 moveto +(OrderedAbelianMonoidSup\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 7.68 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedCancellationAbelianMonoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 380 324 moveto +150 324 lineto +150 288 lineto +380 288 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 380 324 moveto +150 324 lineto +150 288 lineto +380 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +158 301 moveto +(OrderedCancellationAbelianMonoid\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.36 6.24 6.96 6.24 6.24 3.84 3.84 6.24 3.84 3.84 6.96 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedAbelianMonoidSup()->OrderedCancellationAbelianMonoid() +newpath 265 360 moveto +265 352 265 343 265 334 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 269 334 moveto +265 324 lineto +262 334 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 269 334 moveto +265 324 lineto +262 334 lineto +closepath +stroke +end grestore +% OrderedAbelianMonoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 288 252 moveto +128 252 lineto +128 216 lineto +288 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 288 252 moveto +128 252 lineto +128 216 lineto +288 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +136 229 moveto +(OrderedAbelianMonoid\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedCancellationAbelianMonoid()->OrderedAbelianMonoid() +newpath 251 288 moveto +244 279 236 269 228 260 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 231 258 moveto +222 252 lineto +225 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 231 258 moveto +222 252 lineto +225 262 lineto +closepath +stroke +end grestore +% CancellationAbelianMonoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 420 180 moveto +236 180 lineto +236 144 lineto +420 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 420 180 moveto +236 180 lineto +236 144 lineto +420 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +244 157 moveto +(CancellationAbelianMonoid\(\)) +[9.36 6.24 6.96 6.24 6.24 3.84 3.84 6.24 3.84 3.84 6.96 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedCancellationAbelianMonoid()->CancellationAbelianMonoid() +newpath 277 288 moveto +283 278 291 264 297 252 curveto +306 232 314 208 320 190 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 323 191 moveto +323 180 lineto +317 189 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 323 191 moveto +323 180 lineto +317 189 lineto +closepath +stroke +end grestore +% OrderedAbelianSemiGroup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 180 180 moveto +0 180 lineto +0 144 lineto +180 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 180 180 moveto +0 180 lineto +0 144 lineto +180 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 157 moveto +(OrderedAbelianSemiGroup\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 7.68 6.24 10.8 3.84 10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedAbelianMonoid()->OrderedAbelianSemiGroup() +newpath 178 216 moveto +163 207 144 195 128 185 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 129 182 moveto +119 180 lineto +126 188 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 129 182 moveto +119 180 lineto +126 188 lineto +closepath +stroke +end grestore +% AbelianMonoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 266 108 moveto +152 108 lineto +152 72 lineto +266 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 266 108 moveto +152 108 lineto +152 72 lineto +266 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +159 85 moveto +(AbelianMonoid\(\)) +[9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedAbelianMonoid()->AbelianMonoid() +newpath 208 216 moveto +208 191 209 147 209 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 213 118 moveto +209 108 lineto +206 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 213 118 moveto +209 108 lineto +206 118 lineto +closepath +stroke +end grestore +% CancellationAbelianMonoid()->AbelianMonoid() +newpath 298 144 moveto +283 135 264 123 248 113 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 249 110 moveto +239 108 lineto +246 116 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 249 110 moveto +239 108 lineto +246 116 lineto +closepath +stroke +end grestore +% OrderedAbelianSemiGroup()->AbelianMonoid() +newpath 120 144 moveto +135 135 154 123 170 113 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 172 116 moveto +179 108 lineto +169 110 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 172 116 moveto +179 108 lineto +169 110 lineto +closepath +stroke +end grestore +% OrderedSet() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 134 108 moveto +46 108 lineto +46 72 lineto +134 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 134 108 moveto +46 108 lineto +46 72 lineto +134 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +53 85 moveto +(OrderedSet\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 4.56 4.56] +xshow +end grestore +end grestore +% OrderedAbelianSemiGroup()->OrderedSet() +newpath 90 144 moveto +90 136 90 127 90 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 94 118 moveto +90 108 lineto +87 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 94 118 moveto +90 108 lineto +87 118 lineto +closepath +stroke +end grestore +% ABELSG... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 250 36 moveto +168 36 lineto +168 0 lineto +250 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 250 36 moveto +168 36 lineto +168 0 lineto +250 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +175 13 moveto +(ABELSG...) +[10.08 9.36 8.64 8.64 7.68 10.08 3.6 3.6 3.6] +xshow +end grestore +end grestore +% AbelianMonoid()->ABELSG... +newpath 209 72 moveto +209 64 209 55 209 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 213 46 moveto +209 36 lineto +206 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 213 46 moveto +209 36 lineto +206 46 lineto +closepath +stroke +end grestore +% SETCAT... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 129 36 moveto +51 36 lineto +51 0 lineto +129 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 129 36 moveto +51 36 lineto +51 0 lineto +129 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +59 13 moveto +(SETCAT...) +[7.68 8.64 8.64 9.12 9.36 7.44 3.6 3.6 3.6] +xshow +end grestore +end grestore +% OrderedSet()->SETCAT... +newpath 90 72 moveto +90 64 90 55 90 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 94 46 moveto +90 36 lineto +87 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 94 46 moveto +90 36 lineto +87 46 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v102orderedcancellationabelianmonoid.ps b/books/ps/v102orderedcancellationabelianmonoid.ps new file mode 100644 index 0000000..1fb5a28 --- /dev/null +++ b/books/ps/v102orderedcancellationabelianmonoid.ps @@ -0,0 +1,606 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 464 368 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 464 368 +%%PageOrientation: Portrait +gsave +36 36 428 332 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 330 lineto +426 330 lineto +426 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 330 lineto +426 330 lineto +426 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% OrderedCancellationAbelianMonoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 380 324 moveto +150 324 lineto +150 288 lineto +380 288 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 380 324 moveto +150 324 lineto +150 288 lineto +380 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +158 301 moveto +(OrderedCancellationAbelianMonoid\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.36 6.24 6.96 6.24 6.24 3.84 3.84 6.24 3.84 3.84 6.96 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedAbelianMonoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 288 252 moveto +128 252 lineto +128 216 lineto +288 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 288 252 moveto +128 252 lineto +128 216 lineto +288 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +136 229 moveto +(OrderedAbelianMonoid\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedCancellationAbelianMonoid()->OrderedAbelianMonoid() +newpath 251 288 moveto +244 279 236 269 228 260 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 231 258 moveto +222 252 lineto +225 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 231 258 moveto +222 252 lineto +225 262 lineto +closepath +stroke +end grestore +% CancellationAbelianMonoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 420 180 moveto +236 180 lineto +236 144 lineto +420 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 420 180 moveto +236 180 lineto +236 144 lineto +420 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +244 157 moveto +(CancellationAbelianMonoid\(\)) +[9.36 6.24 6.96 6.24 6.24 3.84 3.84 6.24 3.84 3.84 6.96 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedCancellationAbelianMonoid()->CancellationAbelianMonoid() +newpath 277 288 moveto +283 278 291 264 297 252 curveto +306 232 314 208 320 190 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 323 191 moveto +323 180 lineto +317 189 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 323 191 moveto +323 180 lineto +317 189 lineto +closepath +stroke +end grestore +% OrderedAbelianSemiGroup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 180 180 moveto +0 180 lineto +0 144 lineto +180 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 180 180 moveto +0 180 lineto +0 144 lineto +180 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 157 moveto +(OrderedAbelianSemiGroup\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 7.68 6.24 10.8 3.84 10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedAbelianMonoid()->OrderedAbelianSemiGroup() +newpath 178 216 moveto +163 207 144 195 128 185 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 129 182 moveto +119 180 lineto +126 188 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 129 182 moveto +119 180 lineto +126 188 lineto +closepath +stroke +end grestore +% AbelianMonoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 266 108 moveto +152 108 lineto +152 72 lineto +266 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 266 108 moveto +152 108 lineto +152 72 lineto +266 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +159 85 moveto +(AbelianMonoid\(\)) +[9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedAbelianMonoid()->AbelianMonoid() +newpath 208 216 moveto +208 191 209 147 209 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 213 118 moveto +209 108 lineto +206 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 213 118 moveto +209 108 lineto +206 118 lineto +closepath +stroke +end grestore +% CancellationAbelianMonoid()->AbelianMonoid() +newpath 298 144 moveto +283 135 264 123 248 113 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 249 110 moveto +239 108 lineto +246 116 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 249 110 moveto +239 108 lineto +246 116 lineto +closepath +stroke +end grestore +% OrderedAbelianSemiGroup()->AbelianMonoid() +newpath 120 144 moveto +135 135 154 123 170 113 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 172 116 moveto +179 108 lineto +169 110 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 172 116 moveto +179 108 lineto +169 110 lineto +closepath +stroke +end grestore +% OrderedSet() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 134 108 moveto +46 108 lineto +46 72 lineto +134 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 134 108 moveto +46 108 lineto +46 72 lineto +134 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +53 85 moveto +(OrderedSet\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 7.68 6 3.84 4.56 4.56] +xshow +end grestore +end grestore +% OrderedAbelianSemiGroup()->OrderedSet() +newpath 90 144 moveto +90 136 90 127 90 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 94 118 moveto +90 108 lineto +87 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 94 118 moveto +90 108 lineto +87 118 lineto +closepath +stroke +end grestore +% ABELSG... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 250 36 moveto +168 36 lineto +168 0 lineto +250 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 250 36 moveto +168 36 lineto +168 0 lineto +250 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +175 13 moveto +(ABELSG...) +[10.08 9.36 8.64 8.64 7.68 10.08 3.6 3.6 3.6] +xshow +end grestore +end grestore +% AbelianMonoid()->ABELSG... +newpath 209 72 moveto +209 64 209 55 209 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 213 46 moveto +209 36 lineto +206 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 213 46 moveto +209 36 lineto +206 46 lineto +closepath +stroke +end grestore +% SETCAT... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 129 36 moveto +51 36 lineto +51 0 lineto +129 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 129 36 moveto +51 36 lineto +51 0 lineto +129 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +59 13 moveto +(SETCAT...) +[7.68 8.64 8.64 9.12 9.36 7.44 3.6 3.6 3.6] +xshow +end grestore +end grestore +% OrderedSet()->SETCAT... +newpath 90 72 moveto +90 64 90 55 90 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 94 46 moveto +90 36 lineto +87 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 94 46 moveto +90 36 lineto +87 46 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v102orderedring.ps b/books/ps/v102orderedring.ps new file mode 100644 index 0000000..f0edfac --- /dev/null +++ b/books/ps/v102orderedring.ps @@ -0,0 +1,832 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 515 368 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 515 368 +%%PageOrientation: Portrait +gsave +36 36 479 332 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 330 lineto +477 330 lineto +477 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 330 lineto +477 330 lineto +477 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% OrderedRing() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 368 324 moveto +270 324 lineto +270 288 lineto +368 288 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 368 324 moveto +270 324 lineto +270 288 lineto +368 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +277 301 moveto +(OrderedRing\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.36 3.84 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedAbelianGroup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 191 252 moveto +41 252 lineto +41 216 lineto +191 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 191 252 moveto +41 252 lineto +41 216 lineto +191 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +48 229 moveto +(OrderedAbelianGroup\(\)) +[10.08 4.56 6.96 6.24 4.8 6.24 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedRing()->OrderedAbelianGroup() +newpath 270 289 moveto +242 279 207 266 177 255 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 178 252 moveto +167 252 lineto +176 258 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 178 252 moveto +167 252 lineto +176 258 lineto +closepath +stroke +end grestore +% Ring() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 346 252 moveto +292 252 lineto +292 216 lineto +346 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 346 252 moveto +292 252 lineto +292 216 lineto +346 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +300 229 moveto +(Ring\(\)) +[9.36 3.84 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedRing()->Ring() +newpath 319 288 moveto +319 280 319 271 319 262 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 323 262 moveto +319 252 lineto +316 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 323 262 moveto +319 252 lineto +316 262 lineto +closepath +stroke +end grestore +% Monoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 434 180 moveto +364 180 lineto +364 144 lineto +434 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 434 180 moveto +364 180 lineto +364 144 lineto +434 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +371 157 moveto +(Monoid\(\)) +[12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% OrderedRing()->Monoid() +newpath 332 288 moveto +339 278 348 264 355 252 curveto +367 232 379 208 387 189 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 390 191 moveto +391 180 lineto +384 188 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 390 191 moveto +391 180 lineto +384 188 lineto +closepath +stroke +end grestore +% ABELGRP... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 254 36 moveto +164 36 lineto +164 0 lineto +254 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 254 36 moveto +164 36 lineto +164 0 lineto +254 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +171 13 moveto +(ABELGRP...) +[10.08 9.36 8.64 8.64 10.08 9.36 6.24 3.6 3.6 3.6] +xshow +end grestore +end grestore +% OrderedAbelianGroup()->ABELGRP... +newpath 114 216 moveto +112 184 110 118 137 72 curveto +144 60 155 50 166 42 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 168 45 moveto +174 36 lineto +164 39 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 168 45 moveto +174 36 lineto +164 39 lineto +closepath +stroke +end grestore +% OCAMON... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 88 180 moveto +0 180 lineto +0 144 lineto +88 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 88 180 moveto +0 180 lineto +0 144 lineto +88 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 157 moveto +(OCAMON...) +[10.08 9.12 10.08 12.48 10.08 9.84 3.6 3.6 3.6] +xshow +end grestore +end grestore +% OrderedAbelianGroup()->OCAMON... +newpath 98 216 moveto +89 207 79 197 69 187 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 72 185 moveto +62 180 lineto +67 190 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 72 185 moveto +62 180 lineto +67 190 lineto +closepath +stroke +end grestore +% Ring()->Monoid() +newpath 339 216 moveto +349 207 361 196 372 187 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 374 190 moveto +379 180 lineto +369 185 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 374 190 moveto +379 180 lineto +369 185 lineto +closepath +stroke +end grestore +% Rng() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 346 180 moveto +292 180 lineto +292 144 lineto +346 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 346 180 moveto +292 180 lineto +292 144 lineto +346 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +302 157 moveto +(Rng\(\)) +[9.36 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Ring()->Rng() +newpath 319 216 moveto +319 208 319 199 319 190 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 323 190 moveto +319 180 lineto +316 190 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 323 190 moveto +319 180 lineto +316 190 lineto +closepath +stroke +end grestore +% LeftModule(a:Ring) +gsave 10 dict begin +filled +0.404 0.667 0.545 nodecolor +0.404 0.667 0.545 nodecolor +newpath 274 180 moveto +144 180 lineto +144 144 lineto +274 144 lineto +closepath +fill +0.404 0.667 0.545 nodecolor +newpath 274 180 moveto +144 180 lineto +144 144 lineto +274 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +152 157 moveto +(LeftModule\(a:Ring\)) +[8.64 6.24 4.8 3.84 12.48 6.96 6.96 6.96 3.84 6.24 4.56 6.24 3.84 9.36 3.84 6.96 6.96 4.56] +xshow +end grestore +end grestore +% Ring()->LeftModule(a:Ring) +newpath 292 216 moveto +278 207 260 196 245 186 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 247 183 moveto +237 180 lineto +243 189 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 247 183 moveto +237 180 lineto +243 189 lineto +closepath +stroke +end grestore +% SemiGroup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 435 108 moveto +345 108 lineto +345 72 lineto +435 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 435 108 moveto +345 108 lineto +345 72 lineto +435 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +353 85 moveto +(SemiGroup\(\)) +[7.68 6.24 10.8 3.84 10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Monoid()->SemiGroup() +newpath 397 144 moveto +396 136 395 127 394 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 397 117 moveto +392 108 lineto +391 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 397 117 moveto +392 108 lineto +391 118 lineto +closepath +stroke +end grestore +% Rng()->ABELGRP... +newpath 314 144 moveto +309 125 298 94 281 72 curveto +272 61 260 50 248 42 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 250 39 moveto +240 36 lineto +246 45 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 250 39 moveto +240 36 lineto +246 45 lineto +closepath +stroke +end grestore +% Rng()->SemiGroup() +newpath 337 144 moveto +346 135 356 125 365 116 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 368 118 moveto +372 108 lineto +363 113 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 368 118 moveto +372 108 lineto +363 113 lineto +closepath +stroke +end grestore +% LeftModule(a:Rng) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 272 108 moveto +146 108 lineto +146 72 lineto +272 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 272 108 moveto +146 108 lineto +146 72 lineto +272 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +154 85 moveto +(LeftModule\(a:Rng\)) +[8.64 6.24 4.8 3.84 12.48 6.96 6.96 6.96 3.84 6.24 4.56 6.24 3.84 9.36 6.96 6.96 4.56] +xshow +end grestore +end grestore +% LeftModule(a:Ring)->LeftModule(a:Rng) +newpath 209 144 moveto +209 136 209 127 209 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 213 118 moveto +209 108 lineto +206 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 213 118 moveto +209 108 lineto +206 118 lineto +closepath +stroke +end grestore +% SETCAT... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 471 36 moveto +393 36 lineto +393 0 lineto +471 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 471 36 moveto +393 36 lineto +393 0 lineto +471 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +401 13 moveto +(SETCAT...) +[7.68 8.64 8.64 9.12 9.36 7.44 3.6 3.6 3.6] +xshow +end grestore +end grestore +% SemiGroup()->SETCAT... +newpath 401 72 moveto +406 64 411 54 417 45 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 420 46 moveto +422 36 lineto +414 43 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 420 46 moveto +422 36 lineto +414 43 lineto +closepath +stroke +end grestore +% REPSQ... +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 375 36 moveto +305 36 lineto +305 0 lineto +375 0 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 375 36 moveto +305 36 lineto +305 0 lineto +375 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +312 13 moveto +(REPSQ...) +[9.36 8.64 7.68 7.68 10.08 3.6 3.6 3.6] +xshow +end grestore +end grestore +% SemiGroup()->REPSQ... +newpath 377 72 moveto +372 64 365 54 359 44 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 362 42 moveto +353 36 lineto +356 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 362 42 moveto +353 36 lineto +356 46 lineto +closepath +stroke +end grestore +% LeftModule(a:Rng)->ABELGRP... +newpath 209 72 moveto +209 64 209 55 209 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 213 46 moveto +209 36 lineto +206 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 213 46 moveto +209 36 lineto +206 46 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v102rightmodule.ps b/books/ps/v102rightmodule.ps new file mode 100644 index 0000000..fa2565d --- /dev/null +++ b/books/ps/v102rightmodule.ps @@ -0,0 +1,427 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 318 296 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 318 296 +%%PageOrientation: Portrait +gsave +36 36 282 260 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 258 lineto +280 258 lineto +280 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 258 lineto +280 258 lineto +280 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% RightModule(a:Rng) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 232 252 moveto +98 252 lineto +98 216 lineto +232 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 232 252 moveto +98 252 lineto +98 216 lineto +232 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +106 229 moveto +(RightModule\(a:Rng\)) +[9.36 3.84 6.96 6.96 3.84 12.48 6.96 6.96 6.96 3.84 6.24 4.56 6.24 3.84 9.36 6.96 6.96 4.56] +xshow +end grestore +end grestore +% AbelianGroup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 218 180 moveto +112 180 lineto +112 144 lineto +218 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 218 180 moveto +112 180 lineto +112 144 lineto +218 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +120 157 moveto +(AbelianGroup\(\)) +[9.84 6.96 6.24 3.84 3.84 6.24 6.96 10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% RightModule(a:Rng)->AbelianGroup() +newpath 165 216 moveto +165 208 165 199 165 190 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 169 190 moveto +165 180 lineto +162 190 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 169 190 moveto +165 180 lineto +162 190 lineto +closepath +stroke +end grestore +% CancellationAbelianMonoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 184 108 moveto +0 108 lineto +0 72 lineto +184 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 184 108 moveto +0 108 lineto +0 72 lineto +184 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 85 moveto +(CancellationAbelianMonoid\(\)) +[9.36 6.24 6.96 6.24 6.24 3.84 3.84 6.24 3.84 3.84 6.96 6.96 9.84 6.96 6.24 3.84 3.84 6.24 6.96 12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% AbelianGroup()->CancellationAbelianMonoid() +newpath 147 144 moveto +138 135 127 125 117 115 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 120 113 moveto +110 108 lineto +115 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 120 113 moveto +110 108 lineto +115 118 lineto +closepath +stroke +end grestore +% REPDB... +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 274 108 moveto +202 108 lineto +202 72 lineto +274 72 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 274 108 moveto +202 108 lineto +202 72 lineto +274 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +209 85 moveto +(REPDB...) +[9.36 8.64 7.68 10.08 9.36 3.6 3.6 3.6] +xshow +end grestore +end grestore +% AbelianGroup()->REPDB... +newpath 183 144 moveto +192 135 203 125 213 115 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 215 118 moveto +220 108 lineto +210 113 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 215 118 moveto +220 108 lineto +210 113 lineto +closepath +stroke +end grestore +% ABELMON... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 141 36 moveto +43 36 lineto +43 0 lineto +141 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 141 36 moveto +43 36 lineto +43 0 lineto +141 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +51 13 moveto +(ABELMON...) +[10.08 9.36 8.64 8.64 12.48 10.08 9.84 3.6 3.6 3.6] +xshow +end grestore +end grestore +% CancellationAbelianMonoid()->ABELMON... +newpath 92 72 moveto +92 64 92 55 92 46 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 96 46 moveto +92 36 lineto +89 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 96 46 moveto +92 36 lineto +89 46 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v102ring.ps b/books/ps/v102ring.ps new file mode 100644 index 0000000..d91d60f --- /dev/null +++ b/books/ps/v102ring.ps @@ -0,0 +1,744 @@ +%!PS-Adobe-2.0 +%%Creator: dot version 2.8 (Thu Sep 14 20:34:11 UTC 2006) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: 36 36 403 368 +%%EndComments +save +%%BeginProlog +/DotDict 200 dict def +DotDict begin + +/setupLatin1 { +mark +/EncodingVector 256 array def + EncodingVector 0 + +ISOLatin1Encoding 0 255 getinterval putinterval +EncodingVector 45 /hyphen put + +% Set up ISO Latin 1 character encoding +/starnetISO { + dup dup findfont dup length dict begin + { 1 index /FID ne { def }{ pop pop } ifelse + } forall + /Encoding EncodingVector def + currentdict end definefont +} def +/Times-Roman starnetISO def +/Times-Italic starnetISO def +/Times-Bold starnetISO def +/Times-BoldItalic starnetISO def +/Helvetica starnetISO def +/Helvetica-Oblique starnetISO def +/Helvetica-Bold starnetISO def +/Helvetica-BoldOblique starnetISO def +/Courier starnetISO def +/Courier-Oblique starnetISO def +/Courier-Bold starnetISO def +/Courier-BoldOblique starnetISO def +cleartomark +} bind def + +%%BeginResource: procset graphviz 0 0 +/coord-font-family /Times-Roman def +/default-font-family /Times-Roman def +/coordfont coord-font-family findfont 8 scalefont def + +/InvScaleFactor 1.0 def +/set_scale { + dup 1 exch div /InvScaleFactor exch def + dup scale +} bind def + +% styles +/solid { [] 0 setdash } bind def +/dashed { [9 InvScaleFactor mul dup ] 0 setdash } bind def +/dotted { [1 InvScaleFactor mul 6 InvScaleFactor mul] 0 setdash } bind def +/invis {/fill {newpath} def /stroke {newpath} def /show {pop newpath} def} bind def +/bold { 2 setlinewidth } bind def +/filled { } bind def +/unfilled { } bind def +/rounded { } bind def +/diagonals { } bind def + +% hooks for setting color +/nodecolor { sethsbcolor } bind def +/edgecolor { sethsbcolor } bind def +/graphcolor { sethsbcolor } bind def +/nopcolor {pop pop pop} bind def + +/beginpage { % i j npages + /npages exch def + /j exch def + /i exch def + /str 10 string def + npages 1 gt { + gsave + coordfont setfont + 0 0 moveto + (\() show i str cvs show (,) show j str cvs show (\)) show + grestore + } if +} bind def + +/set_font { + findfont exch + scalefont setfont +} def + +% draw aligned label in bounding box aligned to current point +/alignedtext { % width adj text + /text exch def + /adj exch def + /width exch def + gsave + width 0 gt { + text stringwidth pop adj mul 0 rmoveto + } if + [] 0 setdash + text show + grestore +} def + +/boxprim { % xcorner ycorner xsize ysize + 4 2 roll + moveto + 2 copy + exch 0 rlineto + 0 exch rlineto + pop neg 0 rlineto + closepath +} bind def + +/ellipse_path { + /ry exch def + /rx exch def + /y exch def + /x exch def + matrix currentmatrix + newpath + x y translate + rx ry scale + 0 0 1 0 360 arc + setmatrix +} bind def + +/endpage { showpage } bind def +/showpage { } def + +/layercolorseq + [ % layer color sequence - darkest to lightest + [0 0 0] + [.2 .8 .8] + [.4 .8 .8] + [.6 .8 .8] + [.8 .8 .8] + ] +def + +/layerlen layercolorseq length def + +/setlayer {/maxlayer exch def /curlayer exch def + layercolorseq curlayer 1 sub layerlen mod get + aload pop sethsbcolor + /nodecolor {nopcolor} def + /edgecolor {nopcolor} def + /graphcolor {nopcolor} def +} bind def + +/onlayer { curlayer ne {invis} if } def + +/onlayers { + /myupper exch def + /mylower exch def + curlayer mylower lt + curlayer myupper gt + or + {invis} if +} def + +/curlayer 0 def + +%%EndResource +%%EndProlog +%%BeginSetup +14 default-font-family set_font +1 setmiterlimit +% /arrowlength 10 def +% /arrowwidth 5 def + +% make sure pdfmark is harmless for PS-interpreters other than Distiller +/pdfmark where {pop} {userdict /pdfmark /cleartomark load put} ifelse +% make '<<' and '>>' safe on PS Level 1 devices +/languagelevel where {pop languagelevel}{1} ifelse +2 lt { + userdict (<<) cvn ([) cvn load put + userdict (>>) cvn ([) cvn load put +} if + +%%EndSetup +%%Page: 1 1 +%%PageBoundingBox: 36 36 403 368 +%%PageOrientation: Portrait +gsave +36 36 367 332 boxprim clip newpath +36 36 translate +0 0 1 beginpage +1.0000 set_scale +4 4 translate 0 rotate +0.167 0.600 1.000 graphcolor +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 330 lineto +365 330 lineto +365 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 330 lineto +365 330 lineto +365 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% Ring() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 202 324 moveto +148 324 lineto +148 288 lineto +202 288 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 202 324 moveto +148 324 lineto +148 288 lineto +202 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +156 301 moveto +(Ring\(\)) +[9.36 3.84 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Rng() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 202 252 moveto +148 252 lineto +148 216 lineto +202 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 202 252 moveto +148 252 lineto +148 216 lineto +202 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +158 229 moveto +(Rng\(\)) +[9.36 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Ring()->Rng() +newpath 175 288 moveto +175 280 175 271 175 262 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 179 262 moveto +175 252 lineto +172 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 179 262 moveto +175 252 lineto +172 262 lineto +closepath +stroke +end grestore +% Monoid() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 290 252 moveto +220 252 lineto +220 216 lineto +290 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 290 252 moveto +220 252 lineto +220 216 lineto +290 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +227 229 moveto +(Monoid\(\)) +[12.48 6.96 6.96 6.96 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Ring()->Monoid() +newpath 195 288 moveto +205 279 217 268 228 259 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 230 262 moveto +235 252 lineto +225 257 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 230 262 moveto +235 252 lineto +225 257 lineto +closepath +stroke +end grestore +% LeftModule(a:Ring) +gsave 10 dict begin +filled +0.404 0.667 0.545 nodecolor +0.404 0.667 0.545 nodecolor +newpath 130 252 moveto +0 252 lineto +0 216 lineto +130 216 lineto +closepath +fill +0.404 0.667 0.545 nodecolor +newpath 130 252 moveto +0 252 lineto +0 216 lineto +130 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 229 moveto +(LeftModule\(a:Ring\)) +[8.64 6.24 4.8 3.84 12.48 6.96 6.96 6.96 3.84 6.24 4.56 6.24 3.84 9.36 3.84 6.96 6.96 4.56] +xshow +end grestore +end grestore +% Ring()->LeftModule(a:Ring) +newpath 148 288 moveto +134 279 116 268 101 258 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 103 255 moveto +93 252 lineto +99 261 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 103 255 moveto +93 252 lineto +99 261 lineto +closepath +stroke +end grestore +% AbelianGroup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 157 108 moveto +51 108 lineto +51 72 lineto +157 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 157 108 moveto +51 108 lineto +51 72 lineto +157 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +59 85 moveto +(AbelianGroup\(\)) +[9.84 6.96 6.24 3.84 3.84 6.24 6.96 10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Rng()->AbelianGroup() +newpath 169 216 moveto +163 197 152 168 140 144 curveto +135 134 129 125 123 116 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 126 114 moveto +117 108 lineto +120 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 126 114 moveto +117 108 lineto +120 118 lineto +closepath +stroke +end grestore +% SemiGroup() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 296 180 moveto +206 180 lineto +206 144 lineto +296 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 296 180 moveto +206 180 lineto +206 144 lineto +296 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +214 157 moveto +(SemiGroup\(\)) +[7.68 6.24 10.8 3.84 10.08 4.8 6.96 6.96 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Rng()->SemiGroup() +newpath 194 216 moveto +204 207 215 197 225 187 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 227 190 moveto +232 180 lineto +222 185 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 227 190 moveto +232 180 lineto +222 185 lineto +closepath +stroke +end grestore +% Monoid()->SemiGroup() +newpath 254 216 moveto +253 208 253 199 253 190 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 256 190 moveto +252 180 lineto +250 190 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 256 190 moveto +252 180 lineto +250 190 lineto +closepath +stroke +end grestore +% LeftModule(a:Rng) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 131 180 moveto +5 180 lineto +5 144 lineto +131 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 131 180 moveto +5 180 lineto +5 144 lineto +131 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +13 157 moveto +(LeftModule\(a:Rng\)) +[8.64 6.24 4.8 3.84 12.48 6.96 6.96 6.96 3.84 6.24 4.56 6.24 3.84 9.36 6.96 6.96 4.56] +xshow +end grestore +end grestore +% LeftModule(a:Ring)->LeftModule(a:Rng) +newpath 66 216 moveto +67 208 67 199 67 190 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 71 190 moveto +67 180 lineto +64 190 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 71 190 moveto +67 180 lineto +64 190 lineto +closepath +stroke +end grestore +% CABMON... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 99 36 moveto +11 36 lineto +11 0 lineto +99 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 99 36 moveto +11 36 lineto +11 0 lineto +99 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +19 13 moveto +(CABMON...) +[9.12 10.08 9.36 12.48 10.08 9.84 3.6 3.6 3.6] +xshow +end grestore +end grestore +% AbelianGroup()->CABMON... +newpath 92 72 moveto +86 64 79 54 73 44 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 76 42 moveto +67 36 lineto +70 46 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 76 42 moveto +67 36 lineto +70 46 lineto +closepath +stroke +end grestore +% REPDB... +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 189 36 moveto +117 36 lineto +117 0 lineto +189 0 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 189 36 moveto +117 36 lineto +117 0 lineto +189 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +124 13 moveto +(REPDB...) +[9.36 8.64 7.68 10.08 9.36 3.6 3.6 3.6] +xshow +end grestore +end grestore +% AbelianGroup()->REPDB... +newpath 116 72 moveto +122 64 129 54 135 44 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 138 46 moveto +141 36 lineto +132 42 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 138 46 moveto +141 36 lineto +132 42 lineto +closepath +stroke +end grestore +% SETCAT... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 271 108 moveto +193 108 lineto +193 72 lineto +271 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 271 108 moveto +193 108 lineto +193 72 lineto +271 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +201 85 moveto +(SETCAT...) +[7.68 8.64 8.64 9.12 9.36 7.44 3.6 3.6 3.6] +xshow +end grestore +end grestore +% SemiGroup()->SETCAT... +newpath 246 144 moveto +244 136 242 127 240 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 243 117 moveto +237 108 lineto +237 119 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 243 117 moveto +237 108 lineto +237 119 lineto +closepath +stroke +end grestore +% REPSQ... +gsave 10 dict begin +filled +0.333 1.000 0.933 nodecolor +0.333 1.000 0.933 nodecolor +newpath 359 108 moveto +289 108 lineto +289 72 lineto +359 72 lineto +closepath +fill +0.333 1.000 0.933 nodecolor +newpath 359 108 moveto +289 108 lineto +289 72 lineto +359 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +296 85 moveto +(REPSQ...) +[9.36 8.64 7.68 7.68 10.08 3.6 3.6 3.6] +xshow +end grestore +end grestore +% SemiGroup()->REPSQ... +newpath 269 144 moveto +278 135 289 125 299 115 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 301 118 moveto +306 108 lineto +296 113 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 301 118 moveto +306 108 lineto +296 113 lineto +closepath +stroke +end grestore +% LeftModule(a:Rng)->AbelianGroup() +newpath 77 144 moveto +81 136 86 126 91 117 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 94 119 moveto +95 108 lineto +88 116 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 94 119 moveto +95 108 lineto +88 116 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/src/algebra/catdef.spad.pamphlet b/src/algebra/catdef.spad.pamphlet index 9252bff..e564a0c 100644 --- a/src/algebra/catdef.spad.pamphlet +++ b/src/algebra/catdef.spad.pamphlet @@ -47,38 +47,6 @@ Algebra(R:CommutativeRing): Category == coerce(x:R):% == x * 1$% @ -\section{category BMODULE BiModule} -<>= -"BMODULE" -> "LMODULE" -"BiModule(a:Ring,b:Ring)" -> "LeftModule(a:Ring)" -"BiModule(a:CommutativeRing,b:CommutativeRing)" -> "BiModule(a:Ring,b:Ring)" -"BiModule(a:Ring,b:OrderedAbelianMonoid)" -> "BiModule(a:Ring,b:Ring)" -"BMODULE" -> "RMODULE" -"BiModule(a:Ring,b:Ring)" -> "RightModule(a:Ring)" -@ -<>= -)abbrev category BMODULE BiModule -++ Author: -++ Date Created: -++ Date Last Updated: -++ Basic Functions: -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: -++ References: -++ Description: -++ A \spadtype{BiModule} is both a left and right module with respect -++ to potentially different rings. -++ -++ Axiom: -++ \spad{ r*(x*s) = (r*x)*s } -BiModule(R:Ring,S:Ring):Category == - Join(LeftModule(R),RightModule(S)) with - leftUnitary ++ \spad{1 * x = x} - rightUnitary ++ \spad{x * 1 = x} - -@ \section{category CHARNZ CharacteristicNonZero} <>= "CHARNZ" -> "RING" @@ -1992,55 +1960,6 @@ Note that this code is not included in the generated catdef.spad file. (QUOTE |lookupComplete|))) @ -\section{category GROUP Group} -<>= -"GROUP" -> "MONOID" -"Group()" -> "Monoid()" -@ -<>= -)abbrev category GROUP Group -++ Author: -++ Date Created: -++ Date Last Updated: -++ Basic Functions: -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: -++ References: -++ Description: -++ The class of multiplicative groups, i.e. monoids with -++ multiplicative inverses. -++ -++ Axioms: -++ \spad{leftInverse("*":(%,%)->%,inv)}\tab{30}\spad{ inv(x)*x = 1 } -++ \spad{rightInverse("*":(%,%)->%,inv)}\tab{30}\spad{ x*inv(x) = 1 } -Group(): Category == Monoid with - --operations - inv: % -> % ++ inv(x) returns the inverse of x. - "/": (%,%) -> % ++ x/y is the same as x times the inverse of y. - "**": (%,Integer) -> % ++ x**n returns x raised to the integer power n. - "^": (%,Integer) -> % ++ x^n returns x raised to the integer power n. - unitsKnown ++ unitsKnown asserts that recip only returns - ++ "failed" for non-units. - conjugate: (%,%) -> % - ++ conjugate(p,q) computes \spad{inv(q) * p * q}; this is 'right action - ++ by conjugation'. - commutator: (%,%) -> % - ++ commutator(p,q) computes \spad{inv(p) * inv(q) * p * q}. - add - import RepeatedSquaring(%) - x:% / y:% == x*inv(y) - recip(x:%) == inv(x) - _^(x:%, n:Integer):% == x ** n - x:% ** n:Integer == - zero? n => 1 - n<0 => expt(inv(x),(-n) pretend PositiveInteger) - expt(x,n pretend PositiveInteger) - conjugate(p,q) == inv(q) * p * q - commutator(p,q) == inv(p) * inv(q) * p * q - -@ \section{category INTDOM IntegralDomain} <>= "INTDOM" -> "COMRING" @@ -2273,38 +2192,6 @@ Note that this code is not included in the generated catdef.spad file. (QUOTE |lookupComplete|))) @ -\section{category LMODULE LeftModule} -<>= -"LMODULE" -> "ABELGRP" -"LeftModule(a:Rng)" -> "AbelianGroup()" -"LeftModule(a:Ring)" -> "LeftModule(a:Rng)" -@ -<>= -)abbrev category LMODULE LeftModule -++ Author: -++ Date Created: -++ Date Last Updated: -++ Basic Functions: -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: -++ References: -++ Description: -++ The category of left modules over an rng (ring not necessarily with unit). -++ This is an abelian group which supports left multiplation by elements of -++ the rng. -++ -++ Axioms: -++ \spad{ (a*b)*x = a*(b*x) } -++ \spad{ (a+b)*x = (a*x)+(b*x) } -++ \spad{ a*(x+y) = (a*x)+(a*y) } -LeftModule(R:Rng):Category == AbelianGroup with - --operations - "*": (R,%) -> % ++ r*x returns the left multiplication of the module element x - ++ by the ring element r. - -@ \section{category LINEXP LinearlyExplicitRingOver} <>= "LINEXP" -> "RING" @@ -2365,92 +2252,6 @@ Module(R:CommutativeRing): Category == BiModule(R,R) if not(R is %) then x:%*r:R == r*x @ -\section{category OAGROUP OrderedAbelianGroup} -<>= -"OAGROUP" -> "OCAMON" -"OrderedAbelianGroup()" -> "OrderedCancellationAbelianMonoid()" -"OAGROUP" -> "ABELGRP" -"OrderedAbelianGroup()" -> "AbelianGroup()" -@ -<>= -)abbrev category OAGROUP OrderedAbelianGroup -++ Author: -++ Date Created: -++ Date Last Updated: -++ Basic Functions: -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: -++ References: -++ Description: -++ Ordered sets which are also abelian groups, such that the addition preserves -++ the ordering. - -OrderedAbelianGroup(): Category == - Join(OrderedCancellationAbelianMonoid, AbelianGroup) - -@ -\section{category OAMONS OrderedAbelianMonoidSup} -<>= -"OAMONS" -> "OCAMON" -"OrderedAbelianMonoidSup()" -> "OrderedCancellationAbelianMonoid()" -@ -<>= -)abbrev category OAMONS OrderedAbelianMonoidSup -++ Author: -++ Date Created: -++ Date Last Updated: -++ Basic Functions: -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: -++ References: -++ Description: -++ This domain is an OrderedAbelianMonoid with a \spadfun{sup} operation added. -++ The purpose of the \spadfun{sup} operator in this domain is to act as a supremum -++ with respect to the partial order imposed by \spadop{-}, rather than with respect to -++ the total \spad{>} order (since that is "max"). -++ -++ Axioms: -++ \spad{sup(a,b)-a \~~= "failed"} -++ \spad{sup(a,b)-b \~~= "failed"} -++ \spad{x-a \~~= "failed" and x-b \~~= "failed" => x >= sup(a,b)} - -OrderedAbelianMonoidSup(): Category == OrderedCancellationAbelianMonoid with - --operation - sup: (%,%) -> % - ++ sup(x,y) returns the least element from which both - ++ x and y can be subtracted. - -@ -\section{category OCAMON OrderedCancellationAbelianMonoid} -<>= -"OCAMON" -> "OAMON" -"OrderedCancellationAbelianMonoid()" -> "OrderedAbelianMonoid()" -"OCAMON" -> "CABMON" -"OrderedCancellationAbelianMonoid()" -> "CancellationAbelianMonoid()" -@ -<>= -)abbrev category OCAMON OrderedCancellationAbelianMonoid -++ Author: -++ Date Created: -++ Date Last Updated: -++ Basic Functions: -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: -++ References: -++ Description: -++ Ordered sets which are also abelian cancellation monoids, such that the addition -++ preserves the ordering. - -OrderedCancellationAbelianMonoid(): Category == - Join(OrderedAbelianMonoid, CancellationAbelianMonoid) - -@ \section{category OINTDOM OrderedIntegralDomain} <>= "OINTDOM" -> "INTDOM" @@ -2509,190 +2310,6 @@ Note that this code is not included in the generated catdef.spad file. (MAKEPROP (QUOTE |OrderedIntegralDomain|) (QUOTE NILADIC) T) @ -\section{category ORDRING OrderedRing} -<>= -"ORDRING" -> "OAGROUP" -"OrderedRing()" -> "OrderedAbelianGroup()" -"ORDRING" -> "RING" -"OrderedRing()" -> "Ring()" -"ORDRING" -> "MONOID" -"OrderedRing()" -> "Monoid()" -@ -<>= -)abbrev category ORDRING OrderedRing -++ Author: -++ Date Created: -++ Date Last Updated: -++ Basic Functions: -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: -++ References: -++ Description: -++ Ordered sets which are also rings, that is, domains where the ring -++ operations are compatible with the ordering. -++ -++ Axiom: -++ \spad{0 ab< ac} - -OrderedRing(): Category == Join(OrderedAbelianGroup,Ring,Monoid) with - positive?: % -> Boolean - ++ positive?(x) tests whether x is strictly greater than 0. - negative?: % -> Boolean - ++ negative?(x) tests whether x is strictly less than 0. - sign : % -> Integer - ++ sign(x) is 1 if x is positive, -1 if x is negative, 0 if x equals 0. - abs : % -> % - ++ abs(x) returns the absolute value of x. - add - positive? x == x>0 - negative? x == x<0 - sign x == - positive? x => 1 - negative? x => -1 - zero? x => 0 - error "x satisfies neither positive?, negative? or zero?" - abs x == - positive? x => x - negative? x => -x - zero? x => 0 - error "x satisfies neither positive?, negative? or zero?" - -@ -\section{ORDRING.lsp BOOTSTRAP} -{\bf ORDRING} depends on {\bf INT}. We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf ORDRING} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf ORDRING.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. - -Technically I can't justify this bootstrap stanza based on the lattice -since {\bf INT} is already bootstrapped. However using {\bf INT} naked -generates a "value stack overflow" error suggesting an infinite recursive -loop. This code is here to experiment with breaking that loop. - -Note that this code is not included in the generated catdef.spad file. - -<>= - -(|/VERSIONCHECK| 2) - -(SETQ |OrderedRing;AL| (QUOTE NIL)) - -(DEFUN |OrderedRing| NIL - (LET (#:G84457) - (COND - (|OrderedRing;AL|) - (T (SETQ |OrderedRing;AL| (|OrderedRing;|)))))) - -(DEFUN |OrderedRing;| NIL - (PROG (#1=#:G84455) - (RETURN - (PROG1 - (LETT #1# - (|Join| - (|OrderedAbelianGroup|) - (|Ring|) - (|Monoid|) - (|mkCategory| - (QUOTE |domain|) - (QUOTE ( - ((|positive?| ((|Boolean|) |$|)) T) - ((|negative?| ((|Boolean|) |$|)) T) - ((|sign| ((|Integer|) |$|)) T) - ((|abs| (|$| |$|)) T))) - NIL - (QUOTE ((|Integer|) (|Boolean|))) - NIL)) - |OrderedRing|) - (SETELT #1# 0 (QUOTE (|OrderedRing|))))))) - -(MAKEPROP (QUOTE |OrderedRing|) (QUOTE NILADIC) T) - -@ -\section{ORDRING-.lsp BOOTSTRAP} -{\bf ORDRING-} depends on {\bf ORDRING}. We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf ORDRING-} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf ORDRING-.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. - -Note that this code is not included in the generated catdef.spad file. - -<>= - -(|/VERSIONCHECK| 2) - -(DEFUN |ORDRING-;positive?;SB;1| (|x| |$|) - (SPADCALL (|spadConstant| |$| 7) |x| (QREFELT |$| 9))) - -(DEFUN |ORDRING-;negative?;SB;2| (|x| |$|) - (SPADCALL |x| (|spadConstant| |$| 7) (QREFELT |$| 9))) - -(DEFUN |ORDRING-;sign;SI;3| (|x| |$|) - (COND - ((SPADCALL |x| (QREFELT |$| 12)) 1) - ((SPADCALL |x| (QREFELT |$| 13)) -1) - ((SPADCALL |x| (QREFELT |$| 15)) 0) - ((QUOTE T) - (|error| "x satisfies neither positive?, negative? or zero?")))) - -(DEFUN |ORDRING-;abs;2S;4| (|x| |$|) - (COND - ((SPADCALL |x| (QREFELT |$| 12)) |x|) - ((SPADCALL |x| (QREFELT |$| 13)) (SPADCALL |x| (QREFELT |$| 18))) - ((SPADCALL |x| (QREFELT |$| 15)) (|spadConstant| |$| 7)) - ((QUOTE T) - (|error| "x satisfies neither positive?, negative? or zero?")))) - -(DEFUN |OrderedRing&| (|#1|) - (PROG (|DV$1| |dv$| |$| |pv$|) - (RETURN - (PROGN - (LETT |DV$1| (|devaluate| |#1|) . #1=(|OrderedRing&|)) - (LETT |dv$| (LIST (QUOTE |OrderedRing&|) |DV$1|) . #1#) - (LETT |$| (GETREFV 20) . #1#) - (QSETREFV |$| 0 |dv$|) - (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) - (|stuffDomainSlots| |$|) - (QSETREFV |$| 6 |#1|) - |$|)))) - -(MAKEPROP - (QUOTE |OrderedRing&|) - (QUOTE |infovec|) - (LIST - (QUOTE - #(NIL NIL NIL NIL NIL NIL - (|local| |#1|) - (0 . |Zero|) - (|Boolean|) - (4 . |<|) - |ORDRING-;positive?;SB;1| - |ORDRING-;negative?;SB;2| - (10 . |positive?|) - (15 . |negative?|) - (20 . |One|) - (24 . |zero?|) - (|Integer|) - |ORDRING-;sign;SI;3| - (29 . |-|) - |ORDRING-;abs;2S;4|)) - (QUOTE #(|sign| 34 |positive?| 39 |negative?| 44 |abs| 49)) - (QUOTE NIL) - (CONS - (|makeByteWordVec2| 1 (QUOTE NIL)) - (CONS - (QUOTE #()) - (CONS - (QUOTE #()) - (|makeByteWordVec2| 19 - (QUOTE - (0 6 0 7 2 6 8 0 0 9 1 6 8 0 12 1 6 8 0 13 0 6 0 14 1 6 8 0 15 - 1 6 0 0 18 1 0 16 0 17 1 0 8 0 10 1 0 8 0 11 1 0 0 0 19)))))) - (QUOTE |lookupComplete|))) -@ \section{category PDRING PartialDifferentialRing} <>= "PDRING" -> "RING" @@ -2889,180 +2506,6 @@ PrincipalIdealDomain(): Category == GcdDomain with ++ is not in the ideal generated by the fi. @ -\section{category RMODULE RightModule} -<>= -"RMODULE" -> "ABELGRP" -"RightModule(a:Rng)" -> "AbelianGroup()" -"RightModule(a:Ring)" -> "RightModule(a:Rng)" -@ -<>= -)abbrev category RMODULE RightModule -++ Author: -++ Date Created: -++ Date Last Updated: -++ Basic Functions: -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: -++ References: -++ Description: -++ The category of right modules over an rng (ring not necessarily with unit). -++ This is an abelian group which supports right multiplation by elements of -++ the rng. -++ -++ Axioms: -++ \spad{ x*(a*b) = (x*a)*b } -++ \spad{ x*(a+b) = (x*a)+(x*b) } -++ \spad{ (x+y)*x = (x*a)+(y*a) } -RightModule(R:Rng):Category == AbelianGroup with - --operations - "*": (%,R) -> % ++ x*r returns the right multiplication of the module element x - ++ by the ring element r. - -@ -\section{category RING Ring} -<>= -"RING" -> "RNG" -"Ring()" -> "Rng()" -"RING" -> "MONOID" -"Ring()" -> "Monoid()" -"RING" -> "LMODULE" -"Ring()" -> "LeftModule(a:Ring)" -@ -<>= -)abbrev category RING Ring -++ Author: -++ Date Created: -++ Date Last Updated: -++ Basic Functions: -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: -++ References: -++ Description: -++ The category of rings with unity, always associative, but -++ not necessarily commutative. - ---Ring(): Category == Join(Rng,Monoid,LeftModule(%:Rng)) with -Ring(): Category == Join(Rng,Monoid,LeftModule(%)) with - --operations - characteristic: () -> NonNegativeInteger - ++ characteristic() returns the characteristic of the ring - ++ this is the smallest positive integer n such that - ++ \spad{n*x=0} for all x in the ring, or zero if no such n - ++ exists. - --We can not make this a constant, since some domains are mutable - coerce: Integer -> % - ++ coerce(i) converts the integer i to a member of the given domain. --- recip: % -> Union(%,"failed") -- inherited from Monoid - unitsKnown - ++ recip truly yields - ++ reciprocal or "failed" if not a unit. - ++ Note: \spad{recip(0) = "failed"}. - add - n:Integer - coerce(n) == n * 1$% - -@ -\section{RING.lsp BOOTSTRAP} -{\bf RING} depends on itself. We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf RING} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf RING.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. - -Note that this code is not included in the generated catdef.spad file. - -<>= - -(|/VERSIONCHECK| 2) - -(SETQ |Ring;AL| (QUOTE NIL)) - -(DEFUN |Ring| NIL - (LET (#:G82789) - (COND - (|Ring;AL|) - (T (SETQ |Ring;AL| (|Ring;|)))))) - -(DEFUN |Ring;| NIL - (PROG (#1=#:G82787) - (RETURN - (PROG1 - (LETT #1# - (|Join| - (|Rng|) - (|Monoid|) - (|LeftModule| (QUOTE |$|)) - (|mkCategory| - (QUOTE |domain|) - (QUOTE ( - ((|characteristic| ((|NonNegativeInteger|))) T) - ((|coerce| (|$| (|Integer|))) T))) - (QUOTE ((|unitsKnown| T))) - (QUOTE ((|Integer|) (|NonNegativeInteger|))) - NIL)) - |Ring|) - (SETELT #1# 0 (QUOTE (|Ring|))))))) - -(MAKEPROP (QUOTE |Ring|) (QUOTE NILADIC) T) - -@ -\section{RING-.lsp BOOTSTRAP} -{\bf RING-} depends on {\bf RING}. We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf RING-} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf RING-.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. - -Note that this code is not included in the generated catdef.spad file. - -<>= - -(|/VERSIONCHECK| 2) - -(DEFUN |RING-;coerce;IS;1| (|n| |$|) - (SPADCALL |n| (|spadConstant| |$| 7) (QREFELT |$| 9))) - -(DEFUN |Ring&| (|#1|) - (PROG (|DV$1| |dv$| |$| |pv$|) - (RETURN - (PROGN - (LETT |DV$1| (|devaluate| |#1|) . #1=(|Ring&|)) - (LETT |dv$| (LIST (QUOTE |Ring&|) |DV$1|) . #1#) - (LETT |$| (GETREFV 12) . #1#) - (QSETREFV |$| 0 |dv$|) - (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) - (|stuffDomainSlots| |$|) - (QSETREFV |$| 6 |#1|) - |$|)))) - -(MAKEPROP - (QUOTE |Ring&|) - (QUOTE |infovec|) - (LIST - (QUOTE - #(NIL NIL NIL NIL NIL NIL - (|local| |#1|) - (0 . |One|) - (|Integer|) - (4 . |*|) - |RING-;coerce;IS;1| - (|OutputForm|))) - (QUOTE #(|coerce| 10)) - (QUOTE NIL) - (CONS - (|makeByteWordVec2| 1 (QUOTE NIL)) - (CONS - (QUOTE #()) - (CONS - (QUOTE #()) - (|makeByteWordVec2| 10 (QUOTE (0 6 0 7 2 6 0 8 0 9 1 0 0 8 10)))))) - (QUOTE |lookupComplete|))) - -@ \section{category UFD UniqueFactorizationDomain} <>= "UFD" -> "GCDDOM" @@ -3346,11 +2789,6 @@ VectorSpace(S:Field): Category == Module(S) with <<*>>= <> -<> -<> -<> -<> -<> <> <> <> @@ -3368,11 +2806,7 @@ VectorSpace(S:Field): Category == Module(S) with <> <> <> -<> -<> -<> <> -<> <> <> <>