diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet index 57d4df1..940e136 100644 --- a/books/bookvol10.2.pamphlet +++ b/books/bookvol10.2.pamphlet @@ -41,6 +41,11 @@ \includegraphics[scale=#3]{#1}% \index{images!#2}} %% +%% \refto is a link to a referenced page that returns it arg +%% +\newcommand{\refto}[1]{% e.g. \refto{name} +(p\pageref{#1}) #1} +%% %% pageto is a forward link to a referenced page %% \newcommand{\pageto}[2]{% e.g. \pageto{abb}{name} @@ -1333,6 +1338,7 @@ digraph pic { \pagepic{ps/v102retractableto.ps}{RETRACT}{1.00} {\bf See:}\\ +\pageto{ExtensionField}{XF} \pageto{FullyRetractableTo}{FRETRCT} \pageto{GradedAlgebra}{GRALG} \pagefrom{Category}{CATEGORY} @@ -1423,6 +1429,10 @@ RetractableTo(S: Type): Category == with [color=seagreen,href="bookvol10.2.pdf#nameddest=RETRACT"]; "RetractableTo(CommutativeRing)" -> "RetractableTo(a:Type)" +"RetractableTo(Field)" + [color=seagreen,href="bookvol10.2.pdf#nameddest=RETRACT"]; +"RetractableTo(Field)" -> "RetractableTo(a:Type)" + @ <>= digraph pic { @@ -1820,7 +1830,7 @@ These are implemented by this category: qsetelt! : (%,Dom,Im) -> Im if $ has shallowlyMutable \end{verbatim} -This export comes from Eltable: +These exports come from \refto{Eltable}(): \begin{verbatim} ?.? : (%,Dom) -> Im \end{verbatim} @@ -1925,7 +1935,7 @@ eval : (%,Equation R) -> % eval : (%,List R,List R) -> % \end{verbatim} -These exports come from InnerEvalable(R:SetCategory,R:SetCategory): +These exports come from \refto{InnerEvalable}(R:SetCategory,R:SetCategory): \begin{verbatim} eval : (%,R,R) -> % \end{verbatim} @@ -2028,7 +2038,7 @@ These are implemented by this category: if S has RETRACT FRAC INT \end{verbatim} -These exports come from RetractableTo(S:Type): +These exports come from \refto{RetractableTo}(S:Type): \begin{verbatim} coerce : S -> % retract : % -> S @@ -2135,7 +2145,7 @@ These are implemented by this category: ?\/? : (%,%) -> % \end{verbatim} -These exports come from BasicType(): +These exports come from \refto{BasicType}(): \begin{verbatim} ?=? : (%,%) -> Boolean ?~=? : (%,%) -> Boolean @@ -2222,13 +2232,13 @@ These are implemented by this category: latex : % -> String \end{verbatim} -These exports come from BasicType(): +These exports come from \refto{BasicType}(): \begin{verbatim} ?=? : (%,%) -> Boolean ?~=? : (%,%) -> Boolean \end{verbatim} -These exports come from CoercibleTo(OutputForm): +These exports come from \refto{CoercibleTo}(OutputForm): \begin{verbatim} coerce : % -> OutputForm \end{verbatim} @@ -2352,7 +2362,7 @@ These are implemented by this category: pi : () -> % \end{verbatim} -These exports come from TrigonometricFunctionCategory(): +These exports come from \refto{TrigonometricFunctionCategory}(): \begin{verbatim} cos : % -> % cot : % -> % @@ -2362,7 +2372,7 @@ These exports come from TrigonometricFunctionCategory(): tan : % -> % \end{verbatim} -These exports come from ArcTrigonometricFunctionCategory(): +These exports come from \refto{ArcTrigonometricFunctionCategory}(): \begin{verbatim} acos : % -> % acot : % -> % @@ -2372,7 +2382,7 @@ These exports come from ArcTrigonometricFunctionCategory(): atan : % -> % \end{verbatim} -These exports come from HyperbolicFunctionCategory(): +These exports come from \refto{HyperbolicFunctionCategory}(): \begin{verbatim} cosh : % -> % coth : % -> % @@ -2382,7 +2392,7 @@ These exports come from HyperbolicFunctionCategory(): tanh : % -> % \end{verbatim} -These exports come from ArcHyperbolicFunctionCategory(): +These exports come from \refto{ArcHyperbolicFunctionCategory}(): \begin{verbatim} acosh : % -> % acoth : % -> % @@ -2392,7 +2402,7 @@ These exports come from ArcHyperbolicFunctionCategory(): atanh : % -> % \end{verbatim} -These exports come from ElementaryFunctionCategory(): +These exports come from \refto{ElementaryFunctionCategory}(): \begin{verbatim} ?**? : (%,%) -> % exp : % -> % @@ -2524,7 +2534,7 @@ These are implemented by this category: ?*? : (PositiveInteger,%) -> % \end{verbatim} -These exports come from SetCategory(): +These exports come from \refto{SetCategory}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -2640,7 +2650,7 @@ These are directly exported but not implemented: size : () -> NonNegativeInteger \end{verbatim} -These exports come from SetCategory(): +These exports come from \refto{SetCategory}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -2763,7 +2773,7 @@ These are implemented by this category: ?-? : (%,%) -> % \end{verbatim} -These exports come from SetCategory(): +These exports come from \refto{SetCategory}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -2938,7 +2948,7 @@ These are implemented by this category: ?=? : (%,%) -> Boolean if S has SETCAT \end{verbatim} -These exports come from Aggregate: +These exports come from \refto{Aggregate}: \begin{verbatim} copy : % -> % empty : () -> % @@ -2950,7 +2960,7 @@ These exports come from Aggregate: size? : (%,NonNegativeInteger) -> Boolean \end{verbatim} -These exports come from Evalable(a:Type): +These exports come from \refto{Evalable}(a:Type): \begin{verbatim} eval : (%,List S,List S) -> % if S has EVALAB S and S has SETCAT @@ -2960,7 +2970,7 @@ These exports come from Evalable(a:Type): if S has EVALAB S and S has SETCAT \end{verbatim} -These exports come from SetCategory(): +These exports come from \refto{SetCategory}(): \begin{verbatim} hash : % -> SingleInteger if S has SETCAT ?~=? : (%,%) -> Boolean if S has SETCAT @@ -3150,13 +3160,13 @@ These are directly exported but not implemented: Si : % -> % \end{verbatim} -These exports come from PrimitiveFunctionCategory() +These exports come from \refto{PrimitiveFunctionCategory}() \begin{verbatim} integral : (%,Symbol) -> % integral : (%,SegmentBinding %) -> % \end{verbatim} -These exports come from TranscendentalFunctionCategory(): +These exports come from \refto{TranscendentalFunctionCategory}(): \begin{verbatim} ?**? : (%,%) -> % acos : % -> % @@ -3308,7 +3318,7 @@ These are implemented by this category: ?**? : (%,PositiveInteger) -> % \end{verbatim} -These exports come from SetCategory(): +These exports come from \refto{SetCategory}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -3454,7 +3464,7 @@ These are implemented by this category: ?<=? : (%,%) -> Boolean \end{verbatim} -These exports come from SetCategory(): +These exports come from \refto{SetCategory}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -3584,7 +3594,7 @@ These are implemented by this category: ?^? : (%,PositiveInteger) -> % \end{verbatim} -These exports come from SetCategory(): +These exports come from \refto{SetCategory}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -3698,7 +3708,7 @@ These are directly exported but not implemented: nextItem : % -> Union(%,"failed") \end{verbatim} -These exports come from SetCategory(): +These exports come from \refto{SetCategory}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -3814,7 +3824,7 @@ These are implemented by this category: ?*? : (NonNegativeInteger,%) -> % \end{verbatim} -These exports come from AbelianSemiGroup(): +These exports come from \refto{AbelianSemiGroup}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -3977,7 +3987,7 @@ These are implemented by this category: bag : List S -> % \end{verbatim} -These exports come from HomogeneousAggregate(S:Type): +These exports come from \refto{HomogeneousAggregate}(S:Type): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -4164,7 +4174,7 @@ These are implemented by this category: #? : % -> NonNegativeInteger if $ has finiteAggregate \end{verbatim} -These exports come from HomogeneousAggregate(S:Type): +These exports come from \refto{HomogeneousAggregate}(S:Type): \begin{verbatim} coerce : % -> OutputForm if S has SETCAT copy : % -> % @@ -4198,7 +4208,7 @@ These exports come from HomogeneousAggregate(S:Type): ?~=? : (%,%) -> Boolean if S has SETCAT \end{verbatim} -These exports come from ConvertibleTo(S:Type): +These exports come from \refto{ConvertibleTo}(S:Type): \begin{verbatim} convert : % -> InputForm if S has KONVERT INFORM \end{verbatim} @@ -4377,7 +4387,7 @@ These are implemented by this category: ?*? : (R,%) -> % \end{verbatim} -These exports come from GradedModule(R, E)\\ +These exports come from \refto{GradedModule}(R, E)\\ where R:CommutativeRing and E:AbelianMonoid: \begin{verbatim} coerce : % -> OutputForm @@ -4391,7 +4401,7 @@ where R:CommutativeRing and E:AbelianMonoid: ?+? : (%,%) -> % \end{verbatim} -These exports come from ,RetractableTo(R:CommutativeRing): +These exports come from \refto{RetractableTo}(R:CommutativeRing): \begin{verbatim} coerce : R -> % retract : % -> R @@ -4574,7 +4584,7 @@ These are implemented by this category: swap! : (%,Index,Index) -> Void if $ has shallowlyMutable \end{verbatim} -These exports come from HomogeneousAggregate(Entry:Type): +These exports come from \refto{HomogeneousAggregate}(Entry:Type): \begin{verbatim} any? : ((Entry -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -4612,7 +4622,7 @@ These exports come from HomogeneousAggregate(Entry:Type): ?=? : (%,%) -> Boolean if Entry has SETCAT \end{verbatim} -These exports come from EltableAggregate(Index:SetCategory,Entry:Type): +These exports come from \refto{EltableAggregate}(Index:SetCategory,Entry:Type): \begin{verbatim} qelt : (%,Index) -> Entry qsetelt! : (%,Index,Entry) -> Entry if $ has shallowlyMutable @@ -4807,7 +4817,7 @@ These are implemented by this category: ?**? : (%,NonNegativeInteger) -> % \end{verbatim} -These exports come from Monad(): +These exports come from \refto{Monad}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -4981,7 +4991,7 @@ These are implemented by this category: ?**? : (%,NonNegativeInteger) -> % \end{verbatim} -These exports come from SemiGroup(): +These exports come from \refto{SemiGroup}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -5121,7 +5131,7 @@ digraph pic { \cross{ORDFIN}{?$>=$?} \\ \end{tabular} -These exports come from OrderedSet(): +These exports come from \refto{OrderedSet}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -5136,7 +5146,7 @@ These exports come from OrderedSet(): ?>=? : (%,%) -> Boolean \end{verbatim} -These exports come from Finite(): +These exports come from \refto{Finite}(): \begin{verbatim} index : PositiveInteger -> % lookup : % -> PositiveInteger @@ -5287,7 +5297,7 @@ These are implemented by this category: ?.value : (%,value) -> S \end{verbatim} -These exports come from HomogeneousAggregate(S:Type): +These exports come from \refto{HomogeneousAggregate}(S:Type): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -5543,7 +5553,7 @@ These are implemented by this category: ?=? : (%,%) -> Boolean if R has SETCAT \end{verbatim} -These exports come from HomogeneousAggregate(R:Type) +These exports come from \refto{HomogeneousAggregate}(R:Type) \begin{verbatim} empty : () -> % empty? : % -> Boolean @@ -6060,7 +6070,7 @@ These are implemented by this category: ?.left : (%,left) -> % \end{verbatim} -These exports come from RecursiveAggregate(S:Type) +These exports come from \refto{RecursiveAggregate}(S:Type) \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -6280,7 +6290,7 @@ These are directly exported but not implemented: subtractIfCan : (%,%) -> Union(%,"failed") \end{verbatim} -These exports come from AbelianMonoid(): +These exports come from \refto{AbelianMonoid}(): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -6447,7 +6457,7 @@ These are implemented by this category: dictionary : () -> % \end{verbatim} -These exports come from BagAggregate(S:SetCategory): +These exports come from \refto{BagAggregate}(S:SetCategory): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -6488,7 +6498,7 @@ These exports come from BagAggregate(S:SetCategory): ?~=? : (%,%) -> Boolean if S has SETCAT \end{verbatim} -These exports come from Collection(S:SetCategory) +These exports come from \refto{Collection}(S:SetCategory) \begin{verbatim} convert : % -> InputForm if S has KONVERT INFORM find : ((S -> Boolean),%) -> Union(S,"failed") @@ -6679,7 +6689,7 @@ These are directly exported but not implemented: tail : % -> % \end{verbatim} -These exports come from RecursiveAggregate(S:Type): +These exports come from \refto{RecursiveAggregate}(S:Type): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -6865,11 +6875,11 @@ These are implemented by this category: ?**? : (%,Integer) -> % \end{verbatim} -These exports come from Aggregate: +These exports come from \refto{Aggregate}: \begin{verbatim} \end{verbatim} -These exports come from Monoid(): +These exports come from \refto{Monoid}(): \begin{verbatim} 1 : () -> % coerce : % -> OutputForm @@ -7094,7 +7104,7 @@ These are implemented by this category: maxIndex : % -> Integer if Integer has ORDSET \end{verbatim} -These exports come from IndexedAggregate(Integer,S:Type) +These exports come from \refto{IndexedAggregate}(Integer,S:Type) \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -7145,7 +7155,7 @@ These exports come from IndexedAggregate(Integer,S:Type) ?=? : (%,%) -> Boolean if S has SETCAT \end{verbatim} -These exports come from Collection(S:Type): +These exports come from \refto{Collection}(S:Type): \begin{verbatim} construct : List S -> % convert : % -> InputForm if S has KONVERT INFORM @@ -7325,7 +7335,7 @@ digraph pic { \cross{OASGP}{?$>=$?} &&&& \end{tabular} -These exports come from OrderedSet(): +These exports come from \refto{OrderedSet}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -7340,7 +7350,7 @@ These exports come from OrderedSet(): ?~=? : (%,%) -> Boolean \end{verbatim} -These exports come from AbelianMonoid(): +These exports come from \refto{AbelianMonoid}(): \begin{verbatim} 0 : () -> % sample : () -> % @@ -7458,7 +7468,7 @@ digraph pic { \cross{ORDMON}{?\^{}?} && \end{tabular} -These exports come from Monoid(): +These exports come from \refto{Monoid}(): \begin{verbatim} 1 : () -> % coerce : % -> OutputForm @@ -7476,7 +7486,7 @@ These exports come from Monoid(): ?~=? : (%,%) -> Boolean \end{verbatim} -These exports come from OrderedSet(): +These exports come from \refto{OrderedSet}(): \begin{verbatim} max : (%,%) -> % min : (%,%) -> % @@ -7625,7 +7635,7 @@ These are directly exported but not implemented: merge! : (%,%) -> % \end{verbatim} -These exports come from BagAggregate(S:OrderedSet): +These exports come from \refto{BagAggregate}(S:OrderedSet): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -7801,7 +7811,7 @@ These are implemented by this category: rotate! : % -> % \end{verbatim} -These exports come from BagAggregate(S:Type): +These exports come from \refto{BagAggregate}(S:Type): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -8003,7 +8013,7 @@ These are implemented by this category: union : (%,S) -> % \end{verbatim} -These exports come from SetCategory(): +These exports come from \refto{SetCategory}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -8012,7 +8022,7 @@ These exports come from SetCategory(): ?~=? : (%,%) -> Boolean \end{verbatim} -These exports come from Collection(S:SetCategory): +These exports come from \refto{Collection}(S:SetCategory): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -8266,7 +8276,7 @@ These are directly exported but not implemented: top : % -> S \end{verbatim} -These exports come from BagAggregate(S:Type): +These exports come from \refto{BagAggregate}(S:Type): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -8505,7 +8515,7 @@ These are implemented by this category: ?.rest : (%,rest) -> % \end{verbatim} -These exports come from RecursiveAggregate(S:Type): +These exports come from \refto{RecursiveAggregate}(S:Type): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -8888,7 +8898,7 @@ These are implemented by this category: ?-? : (%,%) -> % \end{verbatim} -These exports come from CancellationAbelianMonoid(): +These exports come from \refto{CancellationAbelianMonoid}(): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -9069,7 +9079,7 @@ These are implemented by this category: remove! : ((S -> Boolean),%) -> % if $ has finiteAggregate \end{verbatim} -These exports come from DictionaryOperations(S:SetCategory): +These exports come from \refto{DictionaryOperations}(S:SetCategory): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -9295,7 +9305,7 @@ These are directly exported but not implemented: top! : % -> S \end{verbatim} -These exports come from StackAggregate(S:Type): +These exports come from \refto{StackAggregate}(S:Type): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -9342,7 +9352,7 @@ These exports come from StackAggregate(S:Type): ?~=? : (%,%) -> Boolean if S has SETCAT \end{verbatim} -These exports come from QueueAggregate(S:Type): +These exports come from \refto{QueueAggregate}(S:Type): \begin{verbatim} back : % -> S dequeue! : % -> S @@ -9551,7 +9561,7 @@ These are implemented by this category: select : ((S -> Boolean),%) -> % if $ has finiteAggregate \end{verbatim} -These exports come from LinearAggregate(S:Type): +These exports come from \refto{LinearAggregate}(S:Type): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -9855,7 +9865,7 @@ These are implemented by this category: if S has ORDSET and $ has shallowlyMutable \end{verbatim} -These exports come from LinearAggregate(S:Type): +These exports come from \refto{LinearAggregate}(S:Type): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -9944,7 +9954,7 @@ These exports come from LinearAggregate(S:Type): ?=? : (%,%) -> Boolean if S has SETCAT \end{verbatim} -These exports come from OrderedSet: +These exports come from \refto{OrderedSet}: \begin{verbatim} max : (%,%) -> % if S has ORDSET min : (%,%) -> % if S has ORDSET @@ -10142,7 +10152,7 @@ These are directly exported but not implemented: duplicates : % -> List Record(entry:S,count:NonNegativeInteger) \end{verbatim} -These exports come from DictionaryOperations(S:SetCategory): +These exports come from \refto{DictionaryOperations}(S:SetCategory): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -10309,7 +10319,7 @@ digraph pic { \cross{OAMON}{?*?} &&& \end{tabular} -These exports come from OrderedAbelianSemiGroup(): +These exports come from \refto{OrderedAbelianSemiGroup}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -10324,7 +10334,7 @@ These exports come from OrderedAbelianSemiGroup(): ?~=? : (%,%) -> Boolean \end{verbatim} -These exports come from AbelianMonoid(): +These exports come from \refto{AbelianMonoid}(): \begin{verbatim} 0 : () -> % sample : () -> % @@ -10506,7 +10516,7 @@ These are implemented by this category: ?.? : (%,UniversalSegment Integer) -> % \end{verbatim} -These exports come from UnaryRecursiveAggregate(S:Type): +These exports come from \refto{UnaryRecursiveAggregate}(S:Type): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -10589,7 +10599,7 @@ These exports come from UnaryRecursiveAggregate(S:Type): ?.value : (%,value) -> S \end{verbatim} -These exports come from LinearAggregate(S:Type): +These exports come from \refto{LinearAggregate}(S:Type): \begin{verbatim} construct : List S -> % delete : (%,Integer) -> % @@ -10819,7 +10829,7 @@ These are implemented by this category: commutator : (%,%) -> % \end{verbatim} -These exports come from AbelianGroup(): +These exports come from \refto{AbelianGroup}(): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -10838,7 +10848,7 @@ These exports come from AbelianGroup(): -? : % -> % \end{verbatim} -These exports come from Monad(): +These exports come from \refto{Monad}(): \begin{verbatim} leftPower : (%,PositiveInteger) -> % rightPower : (%,PositiveInteger) -> % @@ -11053,7 +11063,7 @@ These are implemented by this category: ? Boolean if S has ORDSET \end{verbatim} -These exports come from FiniteLinearAggregate(S:Type): +These exports come from \refto{FiniteLinearAggregate}(S:Type): \begin{verbatim} concat : (S,%) -> % concat : (%,S) -> % @@ -11518,7 +11528,7 @@ These are implemented by this category: ?=? : (%,%) -> Boolean \end{verbatim} -These exports come from Dictionary(S:SetCategory): +These exports come from \refto{Dictionary}(S:SetCategory): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -11590,7 +11600,7 @@ These exports come from Dictionary(S:SetCategory): ?~=? : (%,%) -> Boolean \end{verbatim} -These exports come from SetAggregate(S:SetCategory): +These exports come from \refto{SetAggregate}(S:SetCategory): \begin{verbatim} brace : () -> % difference : (%,S) -> % @@ -11811,7 +11821,7 @@ These are implemented by this category: keys : % -> List Key \end{verbatim} -These exports come from Dictionary(R) \\ +These exports come from \refto{Dictionary}(R) \\ where R=Record(a:SetCategory,b:SetCategory))\\ and S=Record(key: Key,entry: Entry) \begin{verbatim} @@ -12001,7 +12011,7 @@ These are directly exported but not implemented: ?*? : (R,%) -> % \end{verbatim} -These exports come from AbelianGroup(): +These exports come from \refto{AbelianGroup}(): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -12241,7 +12251,7 @@ These are implemented by this category: ? Boolean if S has ORDSET \end{verbatim} -These exports come from StreamAggregate(S:Type): +These exports come from \refto{StreamAggregate}(S:Type): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -12361,7 +12371,7 @@ These exports come from StreamAggregate(S:Type): ?~=? : (%,%) -> Boolean if S has SETCAT \end{verbatim} -These exports come from FiniteLinearAggregate(S:Type) +These exports come from \refto{FiniteLinearAggregate}(S:Type) \begin{verbatim} max : (%,%) -> % if S has ORDSET merge : (%,%) -> % if S has ORDSET @@ -12377,7 +12387,7 @@ These exports come from FiniteLinearAggregate(S:Type) ?>=? : (%,%) -> Boolean if S has ORDSET \end{verbatim} -These exports come from ExtensibleLinearAggregate(S:Type): +These exports come from \refto{ExtensibleLinearAggregate}(S:Type): \begin{verbatim} merge! : (%,%) -> % if S has ORDSET remove! : (S,%) -> % if S has SETCAT @@ -12717,7 +12727,7 @@ digraph pic { \cross{MSETAGG}{?=?} & \end{tabular} -These exports come from MultiDictionary(S:SetCategory): +These exports come from \refto{MultiDictionary}(S:SetCategory): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate bag : List S -> % @@ -12782,7 +12792,7 @@ These exports come from MultiDictionary(S:SetCategory): ?=? : (%,%) -> Boolean \end{verbatim} -These exports come from SetAggregate(S:SetCategory): +These exports come from \refto{SetAggregate}(S:SetCategory): \begin{verbatim} brace : () -> % brace : List S -> % @@ -12889,7 +12899,7 @@ digraph pic { \cross{OCAMON}{?$>=$?} &&& \end{tabular} -These exports come from OrderedAbelianMonoid(): +These exports come from \refto{OrderedAbelianMonoid}(): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -12910,7 +12920,7 @@ These exports come from OrderedAbelianMonoid(): ?+? : (%,%) -> % \end{verbatim} -These exports come from CancellationAbelianMonoid(): +These exports come from \refto{CancellationAbelianMonoid}(): \begin{verbatim} subtractIfCan : (%,%) -> Union(%,"failed") \end{verbatim} @@ -13009,7 +13019,7 @@ These are directly exported but not implemented: ?*? : (%,R) -> % \end{verbatim} -These exports come from AbelianGroup(): +These exports come from \refto{AbelianGroup}(): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -13121,7 +13131,7 @@ Rng is a Ring that does not necessarily have a unit. \cross{RNG}{?\^{}?} \\ \end{tabular} -These exports come from AbelianGroup(): +These exports come from \refto{AbelianGroup}(): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -13140,7 +13150,7 @@ These exports come from AbelianGroup(): -? : % -> % \end{verbatim} -These exports come from SemiGroup(): +These exports come from \refto{SemiGroup}(): \begin{verbatim} ?*? : (%,%) -> % ?**? : (%,PositiveInteger) -> % @@ -13336,7 +13346,7 @@ These are implemented by this category: ?.? : (%,%) -> % \end{verbatim} -These exports come from OneDimensionalArrayAggregate(Character): +These exports come from \refto{OneDimensionalArrayAggregate}(Character): \begin{verbatim} any? : ((Character -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -13738,7 +13748,7 @@ These are implemented by this category: or Record(key: Key,entry: Entry) has SETCAT \end{verbatim} -These exports come from KeyedDictionary(Key,Entry)\\ +These exports come from \refto{KeyedDictionary}(Key,Entry)\\ where Key:SetCategory and Entry:SetCategory\\ and RecKE=Record(key: Key,entry: Entry): \begin{verbatim} @@ -13820,7 +13830,7 @@ and RecKE=Record(key: Key,entry: Entry): or RecKE has SETCAT \end{verbatim} -These exports come from IndexedAggregate(Key,Entry))\\ +These exports come from \refto{IndexedAggregate}(Key,Entry))\\ where Key:SetCategory and Entry:SetCategory\\ and RecKE=Record(key: Key,entry: Entry): \begin{verbatim} @@ -14182,7 +14192,7 @@ These are directly exported but not implemented: assoc : (Key,%) -> Union(Record(key: Key,entry: Entry),"failed") \end{verbatim} -These exports come from TableAggregate(Key, Entry)\\ +These exports come from \refto{TableAggregate}(Key, Entry)\\ where Key:SetCategory and Entry:SetCategory\\ and RecKE = Record(key: Key,entry: Entry) \begin{verbatim} @@ -14352,7 +14362,7 @@ and RecKE = Record(key: Key,entry: Entry) ?.? : (%,Key) -> Entry \end{verbatim} -These exports come from ListAggregate(a)\\ +These exports come from \refto{ListAggregate}(a)\\ where a is Record(key:Key,entry:Entry)\\ and RecKE=Record(key: Key,entry: Entry) \begin{verbatim} @@ -14594,7 +14604,7 @@ is true if $1 * x = x$ for all x. is true if $x * 1 = x$ for all x. \end{itemize} -These exports come from LeftModule(R:Ring): +These exports come from \refto{LeftModule}(R:Ring): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -14614,7 +14624,7 @@ These exports come from LeftModule(R:Ring): -? : % -> % \end{verbatim} -These exports come from RightModule(S:Ring): +These exports come from \refto{RightModule}(S:Ring): \begin{verbatim} ?*? : (%,S) -> % \end{verbatim} @@ -14803,7 +14813,7 @@ These are implemented by this category: nor : (%,%) -> % \end{verbatim} -These exports come from OrderedSet(): +These exports come from \refto{OrderedSet}(): \begin{verbatim} coerce : % -> OutputForm hash : % -> SingleInteger @@ -14821,7 +14831,7 @@ These exports come from OrderedSet(): TPDHERE: Note that none of the exports of Logic are needed. Perhaps this can be eliminated. -These exports come from OneDimensionalArrayAggregate(Boolean): +These exports come from \refto{OneDimensionalArrayAggregate}(Boolean): \begin{verbatim} any? : ((Boolean -> Boolean),%) -> Boolean if $ has finiteAggregate @@ -15089,7 +15099,7 @@ These are implemented by this category: coerce : Integer -> % \end{verbatim} -These exports come from NonAssociativeRng(): +These exports come from \refto{NonAssociativeRng}(): \begin{verbatim} 0 : () -> % antiCommutator : (%,%) -> % @@ -15115,7 +15125,7 @@ These exports come from NonAssociativeRng(): ?**? : (%,PositiveInteger) -> % \end{verbatim} -These exports come from MonadWithUnit(): +These exports come from \refto{MonadWithUnit}(): \begin{verbatim} 1 : () -> % leftPower : (%,NonNegativeInteger) -> % @@ -15242,7 +15252,7 @@ digraph pic { \cross{OAGROUP}{?$>=$?} & \end{tabular} -These exports come from OrderedCancellationAbelianMonoid(): +These exports come from \refto{OrderedCancellationAbelianMonoid}(): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -15264,7 +15274,7 @@ These exports come from OrderedCancellationAbelianMonoid(): ?+? : (%,%) -> % \end{verbatim} -These exports come from AbelianGroup(): +These exports come from \refto{AbelianGroup}(): \begin{verbatim} -? : % -> % ?*? : (Integer,%) -> % @@ -15361,7 +15371,7 @@ These are directly exported but not implemented: sup : (%,%) -> % \end{verbatim} -These exports come from OrderedCancellationAbelianMonoid(): +These exports come from \refto{OrderedCancellationAbelianMonoid}(): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -15528,7 +15538,7 @@ These are directly exported but not implemented: min : % -> S \end{verbatim} -These exports come from MultisetAggregate(S:OrderedSet): +These exports come from \refto{MultisetAggregate}(S:OrderedSet): \begin{verbatim} any? : ((S -> Boolean),%) -> Boolean if $ has finiteAggregate bag : List S -> % @@ -15611,7 +15621,7 @@ These exports come from MultisetAggregate(S:OrderedSet): ? Boolean \end{verbatim} -These exports come from PriorityQueueAggregate(S:OrderedSet): +These exports come from \refto{PriorityQueueAggregate}(S:OrderedSet): \begin{verbatim} max : % -> S merge : (%,%) -> % @@ -15760,7 +15770,7 @@ These are implemented by this category: coerce : Integer -> % \end{verbatim} -These exports come from Rng(): +These exports come from \refto{Rng}(): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -15782,7 +15792,7 @@ These exports come from Rng(): ?^? : (%,PositiveInteger) -> % \end{verbatim} -These exports come from Monoid(): +These exports come from \refto{Monoid}(): \begin{verbatim} 1 : () -> % one? : % -> Boolean @@ -15888,6 +15898,7 @@ digraph pic { \pagepic{ps/v102characteristicnonzero.ps}{CHARNZ}{0.90} {\bf See:}\\ +\pageto{FieldOfPrimeCharacteristic}{FPC} \pageto{FiniteRankAlgebra}{FINRALG} \pagefrom{Ring}{RING} @@ -15920,7 +15931,7 @@ These are directly exported but not implemented: charthRoot : % -> Union(%,"failed") \end{verbatim} -These exports come from Ring(): +These exports come from \refto{Ring}(): \begin{verbatim} 1 : () -> % 0 : () -> % @@ -16053,7 +16064,7 @@ digraph pic { \cross{CHARZ}{?=?} \\ \end{tabular} -These exports come from Ring(): +These exports come from \refto{Ring}(): \begin{verbatim} 1 : () -> % 0 : () -> % @@ -16193,7 +16204,7 @@ which is commutative. \end{itemize} -These exports come from Ring(): +These exports come from \refto{Ring}(): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -16356,7 +16367,7 @@ These are implemented by this category: differentiate : (%,NonNegativeInteger) -> % \end{verbatim} -These exports come from Ring(): +These exports come from \refto{Ring}(): \begin{verbatim} 1 : () -> % 0 : () -> % @@ -16519,7 +16530,7 @@ digraph pic { is true if $x * y ~= 0$ implies both x and y are non-zero. \end{itemize} -These exports come from Ring(): +These exports come from \refto{Ring}(): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -16677,7 +16688,7 @@ These are directly exported but not implemented: reducedSystem : Matrix % -> Matrix R \end{verbatim} -These exports come from Ring(): +These exports come from \refto{Ring}(): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -16842,7 +16853,7 @@ These are implemented by this category: sign : % -> Integer \end{verbatim} -These exports come from OrderedAbelianGroup(): +These exports come from \refto{OrderedAbelianGroup}(): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -16867,7 +16878,7 @@ These exports come from OrderedAbelianGroup(): ?-? : (%,%) -> % \end{verbatim} -These exports come from Ring(): +These exports come from \refto{Ring}(): \begin{verbatim} 1 : () -> % characteristic : () -> NonNegativeInteger @@ -16884,7 +16895,7 @@ These exports come from Ring(): TPDHERE: Note that none of the exports of Monoid are needed. Perhaps this can be eliminated. -These exports come from Monoid(); +These exports come from \refto{Monoid}(); \begin{verbatim} \end{verbatim} @@ -17039,7 +17050,7 @@ These are implemented by this category: D : (%,List S,List NonNegativeInteger) -> % \end{verbatim} -These exports come from Ring(): +These exports come from \refto{Ring}(): \begin{verbatim} characteristic : () -> NonNegativeInteger 0 : () -> % @@ -17245,7 +17256,7 @@ These are implemented by this category: differentiate : (%,Symbol) -> % if R has PDRING SYMBOL \end{verbatim} -These exports come from Ring(): +These exports come from \refto{Ring}(): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -17274,7 +17285,7 @@ These exports come from Ring(): ?^? : (%,PositiveInteger) -> % \end{verbatim} -These exports come from DifferentialRing(): +These exports come from \refto{DifferentialRing}(): \begin{verbatim} D : % -> % if R has DIFRING D : (%,NonNegativeInteger) -> % if R has DIFRING @@ -17282,7 +17293,7 @@ These exports come from DifferentialRing(): if R has DIFRING \end{verbatim} -These exports come from PartialDifferentialRing(Symbol): +These exports come from \refto{PartialDifferentialRing}(Symbol): \begin{verbatim} differentiate : (%,List Symbol) -> % if R has PDRING SYMBOL @@ -17444,7 +17455,7 @@ These are implemented by this category: if R has LINEXP INT \end{verbatim} -These exports come from LinearlyExplicitRingOver(a:Ring): +These exports come from \refto{LinearlyExplicitRingOver}(a:Ring): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -17603,7 +17614,7 @@ These are implemented by this category: ?*? : (%,R) -> % \end{verbatim} -These exports come from BiModule(a:Ring,b:Ring): +These exports come from \refto{BiModule}(a:Ring,b:Ring): \begin{verbatim} 0 : () -> % coerce : % -> OutputForm @@ -17738,7 +17749,7 @@ These are implemented by this category: coerce : R -> % \end{verbatim} -These exports come from Ring(): +These exports come from \refto{Ring}(): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -17767,7 +17778,7 @@ These exports come from Ring(): ?^? : (%,PositiveInteger) -> % \end{verbatim} -These exports come from Module(R:CommutativeRing): +These exports come from \refto{Module}(R:CommutativeRing): \begin{verbatim} ?*? : (R,%) -> % ?*? : (%,R) -> % @@ -17920,7 +17931,7 @@ These are implemented by this category: plenaryPower : (%,PositiveInteger) -> % \end{verbatim} -These exports come from NonAssociativeRng(): +These exports come from \refto{NonAssociativeRng}(): \begin{verbatim} 0 : () -> % antiCommutator : (%,%) -> % @@ -17946,7 +17957,7 @@ These exports come from NonAssociativeRng(): ?**? : (%,PositiveInteger) -> % \end{verbatim} -These exports come from Module(R:CommutativeRing): +These exports come from \refto{Module}(R:CommutativeRing): \begin{verbatim} ?*? : (R,%) -> % ?*? : (%,R) -> % @@ -18050,6 +18061,7 @@ digraph pic { \pagepic{ps/v102vectorspace.ps}{VSPACE}{1.00} {\bf See:}\\ +\pageto{ExtensionField}{XF} \pagefrom{Module}{MODULE} {\bf Exports:}\\ @@ -18081,7 +18093,7 @@ These are implemented by this category: ?/? : (%,S) -> % \end{verbatim} -These exports come from Module(): +These exports come from \refto{Module}(): \begin{verbatim} ?*? : (%,S) -> % 0 : () -> % @@ -18221,7 +18233,7 @@ These are implemented by this category: ?**? : (%,Integer) -> % \end{verbatim} -These exports come from EntireRing(): +These exports come from \refto{EntireRing}(): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -18250,7 +18262,7 @@ These exports come from EntireRing(): ?**? : (%,PositiveInteger) -> % \end{verbatim} -These exports come from Algebra(Fraction(Integer)): +These exports come from \refto{Algebra}(Fraction(Integer)): \begin{verbatim} coerce : Fraction Integer -> % ?*? : (%,Fraction Integer) -> % @@ -18497,7 +18509,7 @@ These are implemented by this category: structuralConstants : Vector % -> Vector Matrix R \end{verbatim} -These exports come from NonAssociativeAlgebra(R:CommutativeRing): +These exports come from \refto{NonAssociativeAlgebra}(R:CommutativeRing): \begin{verbatim} 0 : () -> % antiCommutator : (%,%) -> % @@ -19311,7 +19323,7 @@ These are implemented by this category: unitNormal : % -> Record(unit: %,canonical: %,associate: %) \end{verbatim} -These exports come from CommutativeRing(): +These exports come from \refto{CommutativeRing}(): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -19342,7 +19354,7 @@ These exports come from CommutativeRing(): TPDHERE: Should we construct this coercion? -These exports come from Algebra(a:IntegralDomain): +These exports come from \refto{Algebra}(a:IntegralDomain): \begin{verbatim} coerce : % -> % \end{verbatim} @@ -19582,7 +19594,7 @@ These are implemented by this category: unit : () -> Union(%,"failed") if R has INTDOM \end{verbatim} -These exports come from FiniteRankNonAssociativeAlgebra(R)\\ +These exports come from \refto{FiniteRankNonAssociativeAlgebra}(R)\\ where R:CommutativeRing: \begin{verbatim} 0 : () -> % @@ -20097,7 +20109,7 @@ These are implemented by this category: lcm : List % -> % \end{verbatim} -These exports come from IntegralDomain(): +These exports come from \refto{IntegralDomain}(): \begin{verbatim} associates? : (%,%) -> Boolean exquo : (%,%) -> Union(%,"failed") @@ -20294,7 +20306,7 @@ digraph pic { \cross{OINTDOM}{?\~{}=?} & \end{tabular} -These exports come from IntegralDomain(): +These exports come from \refto{IntegralDomain}(): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -20330,7 +20342,7 @@ These exports come from IntegralDomain(): ?^? : (%,PositiveInteger) -> % \end{verbatim} -These exports come from OrderedRing(): +These exports come from \refto{OrderedRing}(): \begin{verbatim} abs : % -> % max : (%,%) -> % @@ -20471,7 +20483,7 @@ These are directly exported but not implemented: principalIdeal : List % -> Record(coef: List %,generator: %) \end{verbatim} -These exports come from GcdDomain(): +These exports come from \refto{GcdDomain}(): \begin{verbatim} associates? : (%,%) -> Boolean exquo : (%,%) -> Union(%,"failed") @@ -20653,7 +20665,7 @@ These are implemented by this category: squareFreePart : % -> % \end{verbatim} -These exports come from GcdDomain(): +These exports come from \refto{GcdDomain}(): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -20854,7 +20866,7 @@ These are implemented by this category: ?rem? : (%,%) -> % \end{verbatim} -These exports come from PrincipalIdealDomain(): +These exports come from \refto{PrincipalIdealDomain}(): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -21171,7 +21183,7 @@ These are implemented by this category: Union(List SparseUnivariatePolynomial %,"failed") \end{verbatim} -These exports come from UniqueFactorizationDomain(): +These exports come from \refto{UniqueFactorizationDomain}(): \begin{verbatim} factor : % -> Factored % squareFree : % -> Factored % @@ -21355,6 +21367,8 @@ digraph pic { \pagepic{ps/v102field.ps}{FIELD}{1.00} {\bf See:}\\ +\pageto{ExtensionField}{XF} +\pageto{FieldOfPrimeCharacteristic}{FPC} \pageto{FiniteRankAlgebra}{FINRALG} \pagefrom{DivisionRing}{DIVRING} \pagefrom{EuclideanDomain}{EUCDOM} @@ -21433,7 +21447,7 @@ These are implemented by this category: ?/? : (%,%) -> % \end{verbatim} -These exports come from EuclideanDomain(): +These exports come from \refto{EuclideanDomain}(): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -21478,12 +21492,12 @@ These exports come from EuclideanDomain(): ?rem? : (%,%) -> % \end{verbatim} -These exports come from UniqueFactorizationDomain(): +These exports come from \refto{UniqueFactorizationDomain}(): \begin{verbatim} squareFreePart : % -> % \end{verbatim} -These exports come from DivisionRing(): +These exports come from \refto{DivisionRing}(): \begin{verbatim} coerce : Fraction Integer -> % ?*? : (Fraction Integer,%) -> % @@ -21581,6 +21595,222 @@ digraph pic { @ \chapter{Category Layer 17} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{FieldOfPrimeCharacteristic}{FPC} +\pagepic{ps/v102fieldofprimecharacteristic.ps}{FPC}{1.00} + +{\bf See:}\\ +\pagefrom{CharacteristicNonZero}{CHARNZ} +\pagefrom{Field}{FIELD} + +{\bf Exports:}\\ +\begin{tabular}{lllll} +\cross{FPC}{0} & +\cross{FPC}{1} & +\cross{FPC}{associates?} & +\cross{FPC}{characteristic} & +\cross{FPC}{charthRoot} \\ +\cross{FPC}{coerce} & +\cross{FPC}{discreteLog} & +\cross{FPC}{divide} & +\cross{FPC}{euclideanSize} & +\cross{FPC}{expressIdealMember} \\ +\cross{FPC}{exquo} & +\cross{FPC}{extendedEuclidean} & +\cross{FPC}{factor} & +\cross{FPC}{gcd} & +\cross{FPC}{gcdPolynomial} \\ +\cross{FPC}{hash} & +\cross{FPC}{inv} & +\cross{FPC}{latex} & +\cross{FPC}{lcm} & +\cross{FPC}{multiEuclidean} \\ +\cross{FPC}{one?} & +\cross{FPC}{order} & +\cross{FPC}{prime?} & +\cross{FPC}{primeFrobenius} & +\cross{FPC}{principalIdeal} \\ +\cross{FPC}{recip} & +\cross{FPC}{sample} & +\cross{FPC}{sizeLess?} & +\cross{FPC}{squareFree} & +\cross{FPC}{squareFreePart} \\ +\cross{FPC}{subtractIfCan} & +\cross{FPC}{unit?} & +\cross{FPC}{unitCanonical} & +\cross{FPC}{unitNormal} & +\cross{FPC}{zero?} \\ +\cross{FPC}{?*?} & +\cross{FPC}{?**?} & +\cross{FPC}{?+?} & +\cross{FPC}{?-?} & +\cross{FPC}{-?} \\ +\cross{FPC}{?/?} & +\cross{FPC}{?=?} & +\cross{FPC}{?\^{}?} & +\cross{FPC}{?rem?} & +\cross{FPC}{?quo?} \\ +\cross{FPC}{?\~{}=?} &&&& +\end{tabular} + +These are directly exported but not implemented: +\begin{verbatim} + order : % -> OnePointCompletion PositiveInteger + discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") +\end{verbatim} + +These are implemented by this category: +\begin{verbatim} + primeFrobenius : % -> % + primeFrobenius : (%,NonNegativeInteger) -> % +\end{verbatim} + +These exports come from \refto{Field}(): +\begin{verbatim} + 0 : () -> % + 1 : () -> % + associates? : (%,%) -> Boolean + characteristic : () -> NonNegativeInteger + coerce : % -> % + coerce : Integer -> % + coerce : % -> OutputForm + coerce : Fraction Integer -> % + divide : (%,%) -> Record(quotient: %,remainder: %) + euclideanSize : % -> NonNegativeInteger + expressIdealMember : (List %,%) -> Union(List %,"failed") + extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") + extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) + exquo : (%,%) -> Union(%,"failed") + factor : % -> Factored % + gcd : (%,%) -> % + gcd : List % -> % + gcdPolynomial : (SparseUnivariatePolynomial %, + SparseUnivariatePolynomial %) -> + SparseUnivariatePolynomial % + hash : % -> SingleInteger + inv : % -> % + latex : % -> String + lcm : List % -> % + lcm : (%,%) -> % + multiEuclidean : (List %,%) -> Union(List %,"failed") + one? : % -> Boolean + prime? : % -> Boolean + principalIdeal : List % -> Record(coef: List %,generator: %) + recip : % -> Union(%,"failed") + sample : () -> % + sizeLess? : (%,%) -> Boolean + squareFree : % -> Factored % + squareFreePart : % -> % + subtractIfCan : (%,%) -> Union(%,"failed") + unit? : % -> Boolean + unitCanonical : % -> % + unitNormal : % -> Record(unit: %,canonical: %,associate: %) + zero? : % -> Boolean + ?+? : (%,%) -> % + ?=? : (%,%) -> Boolean + ?~=? : (%,%) -> Boolean + ?*? : (Fraction Integer,%) -> % + ?*? : (%,Fraction Integer) -> % + ?*? : (%,%) -> % + ?*? : (Integer,%) -> % + ?*? : (PositiveInteger,%) -> % + ?*? : (NonNegativeInteger,%) -> % + ?-? : (%,%) -> % + -? : % -> % + ?**? : (%,Integer) -> % + ?**? : (%,PositiveInteger) -> % + ?**? : (%,NonNegativeInteger) -> % + ?^? : (%,PositiveInteger) -> % + ?^? : (%,NonNegativeInteger) -> % + ?/? : (%,%) -> % + ?quo? : (%,%) -> % + ?rem? : (%,%) -> % +\end{verbatim} + +These exports come from \refto{CharacteristicNonZero}(): +\begin{verbatim} + charthRoot : % -> Union(%,"failed") +\end{verbatim} + +<>= +)abbrev category FPC FieldOfPrimeCharacteristic +++ Author: J. Grabmeier, A. Scheerhorn +++ Date Created: 10 March 1991 +++ Date Last Updated: 31 March 1991 +++ Basic Operations: _+, _* +++ Related Constructors: +++ Also See: +++ AMS Classifications: +++ Keywords: field, finite field, prime characteristic +++ References: +++ J. Grabmeier, A. Scheerhorn: Finite Fields in AXIOM. +++ AXIOM Technical Report Series, ATR/5 NP2522. +++ Description: +++ FieldOfPrimeCharacteristic is the category of fields of prime +++ characteristic, e.g. finite fields, algebraic closures of +++ fields of prime characteristic, transcendental extensions of +++ of fields of prime characteristic. +FieldOfPrimeCharacteristic:Category == _ + Join(Field,CharacteristicNonZero) with + order: $ -> OnePointCompletion PositiveInteger + ++ order(a) computes the order of an element in the multiplicative + ++ group of the field. + ++ Error: if \spad{a} is 0. + discreteLog: ($,$) -> Union(NonNegativeInteger,"failed") + ++ discreteLog(b,a) computes s with \spad{b**s = a} if such an s exists. + primeFrobenius: $ -> $ + ++ primeFrobenius(a) returns \spad{a**p} where p is the characteristic. + primeFrobenius: ($,NonNegativeInteger) -> $ + ++ primeFrobenius(a,s) returns \spad{a**(p**s)} where p + ++ is the characteristic. + add + primeFrobenius(a) == a ** characteristic() + primeFrobenius(a,s) == a ** (characteristic()**s) + +@ +<>= +"FPC" + [color=lightblue,href="bookvol10.2.pdf#nameddest=FPC"]; +"FPC" -> "CHARNZ" +"FPC" -> "FIELD" + +@ +<>= +"FieldOfPrimeCharacteristic()" + [color=lightblue,href="bookvol10.2.pdf#nameddest=FPC"]; +"FieldOfPrimeCharacteristic()" -> "CharacteristicNonZero()" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"FieldOfPrimeCharacteristic()" [color=lightblue]; +"FieldOfPrimeCharacteristic()" -> "CHARNZ..." +"FieldOfPrimeCharacteristic()" -> "Field()" + +"Field()" [color=lightblue]; +"Field()" -> "EuclideanDomain()" +"Field()" -> "UniqueFactorizationDomain()" +"Field()" -> "DIVRING..." + +"EuclideanDomain()" [color=lightblue]; +"EuclideanDomain()" -> "PrincipalIdealDomain()" + +"UniqueFactorizationDomain()" [color=lightblue]; +"UniqueFactorizationDomain()" -> "GCDDOM..." + +"PrincipalIdealDomain()" [color=lightblue]; +"PrincipalIdealDomain()" -> "GCDDOM..." + +"GCDDOM..." [color=lightblue]; +"DIVRING..." [color=lightblue]; +"CHARNZ..." [color=lightblue]; +} + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pagehead{FiniteRankAlgebra}{FINRALG} \pagepic{ps/v102finiterankalgebra.ps}{FINRALG}{0.45} @@ -21644,7 +21874,7 @@ These are implemented by this category: traceMatrix : Vector % -> Matrix R \end{verbatim} -These exports come from Algebra(R:CommutativeRing): +These exports come from \refto{Algebra}(R:CommutativeRing): \begin{verbatim} 0 : () -> % 1 : () -> % @@ -21673,19 +21903,19 @@ These exports come from Algebra(R:CommutativeRing): ?^? : (%,NonNegativeInteger) -> % \end{verbatim} -These exports come from Field(): +These exports come from \refto{Field}(): \begin{verbatim} ?*? : (R,%) -> % ?*? : (%,R) -> % coerce : R -> % \end{verbatim} -These exports come from CharacteristicNonZero(): +These exports come from \refto{CharacteristicNonZero}(): \begin{verbatim} charthRoot : % -> Union(%,"failed") if R has CHARNZ \end{verbatim} -These exports come from CharacteristicZero(): +These exports come from \refto{CharacteristicZero}(): \begin{verbatim} \end{verbatim} @@ -21975,6 +22205,306 @@ digraph pic { @ \chapter{Category Layer 18} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{ExtensionField}{XF} +\pagepic{ps/v102extensionfield.ps}{XF}{0.75} + +{\bf See:}\\ +\pagefrom{Field}{FIELD} +\pagefrom{RetractableTo}{RETRACT} +\pagefrom{VectorSpace}{VSPACE} + +{\bf Exports:}\\ +\begin{tabular}{llll} +\cross{XF}{0} & +\cross{XF}{1} & +\cross{XF}{algebraic?} & +\cross{XF}{associates?} \\ +\cross{XF}{characteristic} & +\cross{XF}{charthRoot} & +\cross{XF}{coerce} & +\cross{XF}{degree} \\ +\cross{XF}{discreteLog} & +\cross{XF}{divide} & +\cross{XF}{euclideanSize} & +\cross{XF}{expressIdealMember} \\ +\cross{XF}{exquo} & +\cross{XF}{extendedEuclidean} & +\cross{XF}{extensionDegree} & +\cross{XF}{dimension} \\ +\cross{XF}{factor} & +\cross{XF}{Frobenius} & +\cross{XF}{gcd} & +\cross{XF}{gcdPolynomial} \\ +\cross{XF}{hash} & +\cross{XF}{inGroundField?} & +\cross{XF}{inv} & +\cross{XF}{latex} \\ +\cross{XF}{lcm} & +\cross{XF}{multiEuclidean} & +\cross{XF}{one?} & +\cross{XF}{order} \\ +\cross{XF}{prime?} & +\cross{XF}{primeFrbenius} & +\cross{XF}{principalIdeal} & +\cross{XF}{recip} \\ +\cross{XF}{retract} & +\cross{XF}{retractIfCan} & +\cross{XF}{sample} & +\cross{XF}{sizeLess?} \\ +\cross{XF}{squareFree} & +\cross{XF}{squareFreePart} & +\cross{XF}{subtractIfCan} & +\cross{XF}{transcendenceDegree} \\ +\cross{XF}{transcendent?} & +\cross{XF}{unit?} & +\cross{XF}{unitCanonical} & +\cross{XF}{unitNormal} \\ +\cross{XF}{zero?} & +\cross{XF}{?*?} & +\cross{XF}{?**?} & +\cross{XF}{?+?} \\ +\cross{XF}{?-?} & +\cross{XF}{-?} & +\cross{XF}{?/?} & +\cross{XF}{?=?} \\ +\cross{XF}{?\^{}?} & +\cross{XF}{?quo?} & +\cross{XF}{?rem?} & +\cross{XF}{?\~{}=?}\\ +\end{tabular} + +These are directly exported but not implemented: +\begin{verbatim} + inGroundField? : % -> Boolean + degree : % -> OnePointCompletion PositiveInteger + extensionDegree : () -> OnePointCompletion PositiveInteger + transcendenceDegree : () -> NonNegativeInteger +\end{verbatim} + +These are implemented by this category: +\begin{verbatim} + algebraic? : % -> Boolean + Frobenius : % -> % if F has FINITE + Frobenius : (%,NonNegativeInteger) -> % if F has FINITE + transcendent? : % -> Boolean +\end{verbatim} + + +These exports come from \refto{Field}(): +\begin{verbatim} + 0 : () -> % + 1 : () -> % + associates? : (%,%) -> Boolean + characteristic : () -> NonNegativeInteger + coerce : % -> % + coerce : Integer -> % + coerce : % -> OutputForm + coerce : Fraction Integer -> % + divide : (%,%) -> Record(quotient: %,remainder: %) + euclideanSize : % -> NonNegativeInteger + expressIdealMember : (List %,%) -> Union(List %,"failed") + exquo : (%,%) -> Union(%,"failed") + extendedEuclidean : (%,%,%) -> + Union(Record(coef1: %,coef2: %),"failed") + extendedEuclidean : (%,%) -> + Record(coef1: %,coef2: %,generator: %) + factor : % -> Factored % + gcd : List % -> % + gcd : (%,%) -> % + gcdPolynomial : (SparseUnivariatePolynomial %, + SparseUnivariatePolynomial %) -> + SparseUnivariatePolynomial % + hash : % -> SingleInteger + inv : % -> % + latex : % -> String + lcm : List % -> % + lcm : (%,%) -> % + multiEuclidean : (List %,%) -> Union(List %,"failed") + one? : % -> Boolean + prime? : % -> Boolean + principalIdeal : List % -> Record(coef: List %,generator: %) + recip : % -> Union(%,"failed") + sample : () -> % + squareFree : % -> Factored % + squareFreePart : % -> % + sizeLess? : (%,%) -> Boolean + subtractIfCan : (%,%) -> Union(%,"failed") + unit? : % -> Boolean + unitCanonical : % -> % + unitNormal : % -> Record(unit: %,canonical: %,associate: %) + zero? : % -> Boolean + ?/? : (%,%) -> % + ?+? : (%,%) -> % + ?=? : (%,%) -> Boolean + ?~=? : (%,%) -> Boolean + ?*? : (%,%) -> % + ?*? : (Integer,%) -> % + ?*? : (PositiveInteger,%) -> % + ?*? : (NonNegativeInteger,%) -> % + ?*? : (Fraction Integer,%) -> % + ?*? : (%,Fraction Integer) -> % + ?*? : (F,%) -> % + ?*? : (%,F) -> % + ?-? : (%,%) -> % + -? : % -> % + ?**? : (%,NonNegativeInteger) -> % + ?**? : (%,PositiveInteger) -> % + ?**? : (%,Integer) -> % + ?^? : (%,Integer) -> % + ?^? : (%,PositiveInteger) -> % + ?^? : (%,NonNegativeInteger) -> % + ?quo? : (%,%) -> % + ?rem? : (%,%) -> % +\end{verbatim} + +These exports come from \refto{RetractableTo}(F:Field): +\begin{verbatim} + coerce : F -> % + retract : % -> F + retractIfCan : % -> Union(F,"failed") +\end{verbatim} + +These exports come from \refto{VectorSpace}(F:Field): +\begin{verbatim} + dimension : () -> CardinalNumber + ?/? : (%,F) -> % +\end{verbatim} + +These exports come from \refto{FieldOfPrimeCharacteristic}(): +\begin{verbatim} + charthRoot : % -> Union(%,"failed") + if F has CHARNZ or F has FINITE + discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") + if F has CHARNZ or F has FINITE + order : % -> OnePointCompletion PositiveInteger + if F has CHARNZ or F has FINITE + primeFrobenius : % -> % + if F has CHARNZ or F has FINITE + primeFrobenius : (%,NonNegativeInteger) -> % + if F has CHARNZ or F has FINITE +\end{verbatim} + +<>= +)abbrev category XF ExtensionField +++ Author: J. Grabmeier, A. Scheerhorn +++ Date Created: 10 March 1991 +++ Date Last Updated: 31 March 1991 +++ Basic Operations: _+, _*, extensionDegree, algebraic?, transcendent? +++ Related Constructors: +++ Also See: +++ AMS Classifications: +++ Keywords: field, extension field +++ References: +++ J. Grabmeier, A. Scheerhorn: Finite Fields in AXIOM. +++ AXIOM Technical Report Series, ATR/5 NP2522. +++ Description: +++ ExtensionField {\em F} is the category of fields which extend +++ the field F +ExtensionField(F:Field) : Category == _ + Join(Field,RetractableTo F,VectorSpace F) with + if F has CharacteristicZero then CharacteristicZero + if F has CharacteristicNonZero then FieldOfPrimeCharacteristic + algebraic? : $ -> Boolean + ++ algebraic?(a) tests whether an element \spad{a} is algebraic with + ++ respect to the ground field F. + transcendent? : $ -> Boolean + ++ transcendent?(a) tests whether an element \spad{a} is transcendent + ++ with respect to the ground field F. + inGroundField?: $ -> Boolean + ++ inGroundField?(a) tests whether an element \spad{a} + ++ is already in the ground field F. + degree : $ -> OnePointCompletion PositiveInteger + ++ degree(a) returns the degree of minimal polynomial of an element + ++ \spad{a} if \spad{a} is algebraic + ++ with respect to the ground field F, and \spad{infinity} otherwise. + extensionDegree : () -> OnePointCompletion PositiveInteger + ++ extensionDegree() returns the degree of the field extension if the + ++ extension is algebraic, and \spad{infinity} if it is not. + transcendenceDegree : () -> NonNegativeInteger + ++ transcendenceDegree() returns the transcendence degree of the + ++ field extension, 0 if the extension is algebraic. + -- perhaps more absolute degree functions + if F has Finite then + FieldOfPrimeCharacteristic + Frobenius: $ -> $ + ++ Frobenius(a) returns \spad{a ** q} where q is the \spad{size()$F}. + Frobenius: ($,NonNegativeInteger) -> $ + ++ Frobenius(a,s) returns \spad{a**(q**s)} where q is the size()$F. + add + algebraic?(a) == not infinite? (degree(a)@OnePointCompletion_ + (PositiveInteger))$OnePointCompletion(PositiveInteger) + transcendent? a == infinite?(degree(a)@OnePointCompletion _ + (PositiveInteger))$OnePointCompletion(PositiveInteger) + if F has Finite then + Frobenius(a) == a ** size()$F + Frobenius(a,s) == a ** (size()$F ** s) + +@ +<>= +"XF" + [color=lightblue,href="bookvol10.2.pdf#nameddest=XF"]; +"XF" -> "FIELD" +"XF" -> "RETRACT" +"XF" -> "VSPACE" +"XF" -> "FPC" + +@ +<>= +"ExtensionField(a:Field)" + [color=lightblue,href="bookvol10.2.pdf#nameddest=XF"]; +"ExtensionField(a:Field)" -> "Field()" +"ExtensionField(a:Field)" -> "RetractableTo(Field)" +"ExtensionField(a:Field)" -> "VectorSpace(a:Field)" +"ExtensionField(a:Field)" -> "FieldOfPrimeCharacteristic()" + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"ExtensionField(a:Field)" [color=lightblue]; +"ExtensionField(a:Field)" -> "Field()" +"ExtensionField(a:Field)" -> "RetractableTo(Field)" +"ExtensionField(a:Field)" -> "VectorSpace(a:Field)" + +"FieldOfPrimeCharacteristic()" [color=lightblue]; +"FieldOfPrimeCharacteristic()" -> "CHARNZ..." +"FieldOfPrimeCharacteristic()" -> "Field()" + +"Field()" [color=lightblue]; +"Field()" -> "EuclideanDomain()" +"Field()" -> "UniqueFactorizationDomain()" +"Field()" -> "DIVRING..." + +"EuclideanDomain()" [color=lightblue]; +"EuclideanDomain()" -> "PrincipalIdealDomain()" + +"UniqueFactorizationDomain()" [color=lightblue]; +"UniqueFactorizationDomain()" -> "GCDDOM..." + +"PrincipalIdealDomain()" [color=lightblue]; +"PrincipalIdealDomain()" -> "GCDDOM..." + +"RetractableTo(Field)" [color=seagreen]; +"RetractableTo(Field)" -> "RetractableTo(a:Type)" + +"RetractableTo(a:Type)" [color=lightblue]; +"RetractableTo(a:Type)" -> "Category" + +"VectorSpace(a:Field)" [color=lightblue]; +"VectorSpace(a:Field)" -> "MODULE..." + +"MODULE..." [color=lightblue]; +"DIVRING..." [color=lightblue]; +"GCDDOM..." [color=lightblue]; +"CHARNZ..." [color=lightblue]; +"Category" [color=lightblue]; +} + +@ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \pagehead{FunctionFieldCategory}{FFCAT} \pagepic{ps/v102functionfieldcategory.ps}{FFCAT}{0.70} @@ -22461,15 +22991,15 @@ These are implemented by this category: yCoordinates : % -> Record(num: Vector UP,den: UP) \end{verbatim} -These exports come from Aggregate: +These exports come from \refto{Aggregate}: \begin{verbatim} \end{verbatim} -These exports come from Evalable(a:Type): +These exports come from \refto{Evalable}(a:Type): \begin{verbatim} \end{verbatim} -These exports come from SetCategory: +These exports come from \refto{SetCategory}: \begin{verbatim} \end{verbatim} @@ -22998,7 +23528,7 @@ These are implemented by this category: traceMatrix : () -> Matrix R \end{verbatim} -These exports come from FiniteRankAlgebra(R, UP)\\ +These exports come from \refto{FiniteRankAlgebra}(R, UP)\\ where R:CommutativeRing and UP:UnivariatePolynomialCategory R): \begin{verbatim} 0 : () -> % @@ -29161,6 +29691,7 @@ Note that this code is not included in the generated catdef.spad file. <> <> <> +<> <> <> <> @@ -29230,6 +29761,7 @@ Note that this code is not included in the generated catdef.spad file. <> <> <> +<> @ <>= digraph dotabb { @@ -29280,6 +29812,7 @@ digraph dotabb { <> <> <> +<> <> <> <> @@ -29348,6 +29881,7 @@ digraph dotabb { <> <> <> +<> } @ <>= @@ -29401,6 +29935,7 @@ digraph dotfull { <> <> <> +<> <> <> <> @@ -29469,6 +30004,7 @@ digraph dotfull { <> <> <> +<> } @ \eject @@ -29481,6 +30017,8 @@ AMS, Providence, 1968 Academic Press, New York, 1966 \bibitem{5} R. Wisbauer: Bimodule Structure of Algebra Lecture Notes Univ. Duesseldorf 1991 +\bibitem{6} J. Grabmeier, A. Scheerhorn: Finite Fields in AXIOM. +AXIOM Technical Report Series, ATR/5 NP2522. \end{thebibliography} \printindex \end{document} diff --git a/books/ps/v102extensionfield.ps b/books/ps/v102extensionfield.ps new file mode 100644 index 0000000..af26994 --- /dev/null +++ b/books/ps/v102extensionfield.ps @@ -0,0 +1,883 @@ +%!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 574 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 574 440 +%%PageOrientation: Portrait +gsave +36 36 538 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 +536 402 lineto +536 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 402 lineto +536 402 lineto +536 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% ExtensionField(a:Field) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 303 396 moveto +155 396 lineto +155 360 lineto +303 360 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 303 396 moveto +155 396 lineto +155 360 lineto +303 360 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +163 373 moveto +(ExtensionField\(a:Field\)) +[8.64 6.96 3.84 6.24 6.96 5.52 3.84 6.96 6.96 7.44 3.84 6.24 3.84 6.96 4.56 6.24 3.84 7.44 3.84 6.24 3.84 6.96 4.56] +xshow +end grestore +end grestore +% Field() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 228 252 moveto +174 252 lineto +174 216 lineto +228 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 228 252 moveto +174 252 lineto +174 216 lineto +228 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +182 229 moveto +(Field\(\)) +[7.44 3.84 6.24 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% ExtensionField(a:Field)->Field() +newpath 211 360 moveto +203 350 194 337 189 324 curveto +182 304 186 280 191 262 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 194 263 moveto +194 252 lineto +188 261 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 194 263 moveto +194 252 lineto +188 261 lineto +closepath +stroke +end grestore +% RetractableTo(Field) +gsave 10 dict begin +filled +0.404 0.667 0.545 nodecolor +0.404 0.667 0.545 nodecolor +newpath 140 324 moveto +8 324 lineto +8 288 lineto +140 288 lineto +closepath +fill +0.404 0.667 0.545 nodecolor +newpath 140 324 moveto +8 324 lineto +8 288 lineto +140 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +16 301 moveto +(RetractableTo\(Field\)) +[9.12 6 3.84 4.8 6.24 6.24 4.08 6.24 6.96 3.84 6.24 7.44 6.96 4.56 7.44 3.84 6.24 3.84 6.96 4.56] +xshow +end grestore +end grestore +% ExtensionField(a:Field)->RetractableTo(Field) +newpath 190 360 moveto +169 350 144 339 122 328 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 124 325 moveto +113 324 lineto +121 331 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 124 325 moveto +113 324 lineto +121 331 lineto +closepath +stroke +end grestore +% VectorSpace(a:Field) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 530 324 moveto +396 324 lineto +396 288 lineto +530 288 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 530 324 moveto +396 324 lineto +396 288 lineto +530 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +403 301 moveto +(VectorSpace\(a:Field\)) +[8.88 6.24 6.24 3.84 6.96 4.8 7.68 6.96 6.24 6.24 6.24 4.56 6.24 3.84 7.44 3.84 6.24 3.84 6.96 4.56] +xshow +end grestore +end grestore +% ExtensionField(a:Field)->VectorSpace(a:Field) +newpath 288 360 moveto +321 350 361 337 395 327 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 396 330 moveto +405 324 lineto +394 324 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 396 330 moveto +405 324 lineto +394 324 lineto +closepath +stroke +end grestore +% FieldOfPrimeCharacteristic() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 378 324 moveto +198 324 lineto +198 288 lineto +378 288 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 378 324 moveto +198 324 lineto +198 288 lineto +378 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +206 301 moveto +(FieldOfPrimeCharacteristic\(\)) +[7.44 3.84 6.24 3.84 6.96 10.08 4.56 7.68 5.04 3.84 10.8 6.24 9.36 6.96 6.24 4.8 6.24 6.24 3.84 6.24 5.04 3.84 5.28 3.84 3.84 6.24 4.56 4.56] +xshow +end grestore +end grestore +% ExtensionField(a:Field)->FieldOfPrimeCharacteristic() +newpath 244 360 moveto +251 351 259 341 267 332 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 270 334 moveto +273 324 lineto +264 330 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 270 334 moveto +273 324 lineto +264 330 lineto +closepath +stroke +end grestore +% EuclideanDomain() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 389 180 moveto +263 180 lineto +263 144 lineto +389 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 389 180 moveto +263 180 lineto +263 144 lineto +389 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +270 157 moveto +(EuclideanDomain\(\)) +[8.64 6.96 6.24 3.84 3.84 6.96 6.24 6.24 6.96 10.08 6.96 10.8 6.24 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Field()->EuclideanDomain() +newpath 228 218 moveto +245 209 267 196 286 185 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 288 188 moveto +295 180 lineto +285 182 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 288 188 moveto +295 180 lineto +285 182 lineto +closepath +stroke +end grestore +% UniqueFactorizationDomain() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 228 108 moveto +44 108 lineto +44 72 lineto +228 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 228 108 moveto +44 108 lineto +44 72 lineto +228 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +51 85 moveto +(UniqueFactorizationDomain\(\)) +[9.6 6.96 3.84 6.72 6.96 6.24 7.2 6.24 6.24 3.84 6.96 5.04 3.84 6.24 6.24 3.84 3.84 6.96 6.96 10.08 6.96 10.8 6.24 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Field()->UniqueFactorizationDomain() +newpath 179 216 moveto +169 206 157 194 150 180 curveto +141 161 137 137 136 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 140 118 moveto +136 108 lineto +133 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 140 118 moveto +136 108 lineto +133 118 lineto +closepath +stroke +end grestore +% DIVRING... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 245 180 moveto +159 180 lineto +159 144 lineto +245 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 245 180 moveto +159 180 lineto +159 144 lineto +245 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +166 157 moveto +(DIVRING...) +[10.08 4.56 10.08 9.36 4.56 9.84 10.08 3.6 3.6 3.6] +xshow +end grestore +end grestore +% Field()->DIVRING... +newpath 201 216 moveto +202 208 202 199 202 190 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 206 190 moveto +202 180 lineto +199 190 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 206 190 moveto +202 180 lineto +199 190 lineto +closepath +stroke +end grestore +% RetractableTo(a:Type) +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 140 252 moveto +0 252 lineto +0 216 lineto +140 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 140 252 moveto +0 252 lineto +0 216 lineto +140 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +7 229 moveto +(RetractableTo\(a:Type\)) +[9.12 6 3.84 4.8 6.24 6.24 4.08 6.24 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 +% RetractableTo(Field)->RetractableTo(a:Type) +newpath 73 288 moveto +72 280 72 271 72 262 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 75 262 moveto +71 252 lineto +69 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 75 262 moveto +71 252 lineto +69 262 lineto +closepath +stroke +end grestore +% MODULE... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 507 252 moveto +419 252 lineto +419 216 lineto +507 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 507 252 moveto +419 252 lineto +419 216 lineto +507 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +427 229 moveto +(MODULE...) +[12.48 10.08 10.08 10.08 8.64 8.64 3.6 3.6 3.6] +xshow +end grestore +end grestore +% VectorSpace(a:Field)->MODULE... +newpath 463 288 moveto +463 280 463 271 463 262 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 467 262 moveto +463 252 lineto +460 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 467 262 moveto +463 252 lineto +460 262 lineto +closepath +stroke +end grestore +% FieldOfPrimeCharacteristic()->Field() +newpath 266 288 moveto +255 279 242 268 231 258 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 233 255 moveto +223 252 lineto +229 261 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 233 255 moveto +223 252 lineto +229 261 lineto +closepath +stroke +end grestore +% CHARNZ... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 330 252 moveto +246 252 lineto +246 216 lineto +330 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 330 252 moveto +246 252 lineto +246 216 lineto +330 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +253 229 moveto +(CHARNZ...) +[9.36 10.08 10.08 9.36 10.08 8.64 3.6 3.6 3.6] +xshow +end grestore +end grestore +% FieldOfPrimeCharacteristic()->CHARNZ... +newpath 288 288 moveto +288 280 288 271 288 262 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 292 262 moveto +288 252 lineto +285 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 292 262 moveto +288 252 lineto +285 262 lineto +closepath +stroke +end grestore +% PrincipalIdealDomain() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 398 108 moveto +248 108 lineto +248 72 lineto +398 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 398 108 moveto +248 108 lineto +248 72 lineto +398 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +256 85 moveto +(PrincipalIdealDomain\(\)) +[7.68 5.04 3.84 6.96 6.24 3.84 6.96 6.24 3.84 4.56 6.96 6.24 6.24 3.84 10.08 6.96 10.8 6.24 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% EuclideanDomain()->PrincipalIdealDomain() +newpath 325 144 moveto +324 136 324 127 324 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 328 118 moveto +324 108 lineto +321 118 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 328 118 moveto +324 108 lineto +321 118 lineto +closepath +stroke +end grestore +% GCDDOM... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 274 36 moveto +184 36 lineto +184 0 lineto +274 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 274 36 moveto +184 36 lineto +184 0 lineto +274 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +192 13 moveto +(GCDDOM...) +[10.08 9.36 10.08 10.08 10.08 12.48 3.6 3.6 3.6] +xshow +end grestore +end grestore +% UniqueFactorizationDomain()->GCDDOM... +newpath 159 72 moveto +170 63 185 52 198 42 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 200 45 moveto +206 36 lineto +196 39 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 200 45 moveto +206 36 lineto +196 39 lineto +closepath +stroke +end grestore +% PrincipalIdealDomain()->GCDDOM... +newpath 299 72 moveto +288 63 273 52 260 42 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 262 39 moveto +252 36 lineto +258 45 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 262 39 moveto +252 36 lineto +258 45 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 103 180 moveto +35 180 lineto +35 144 lineto +103 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 103 180 moveto +35 180 lineto +35 144 lineto +103 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +43 157 moveto +(Category) +[9.36 6.24 3.84 6.24 6.96 6.96 5.04 6.96] +xshow +end grestore +end grestore +% RetractableTo(a:Type)->Category +newpath 70 216 moveto +69 208 69 199 69 190 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 73 190 moveto +69 180 lineto +66 190 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 73 190 moveto +69 180 lineto +66 190 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/books/ps/v102fieldofprimecharacteristic.ps b/books/ps/v102fieldofprimecharacteristic.ps new file mode 100644 index 0000000..c5412b9 --- /dev/null +++ b/books/ps/v102fieldofprimecharacteristic.ps @@ -0,0 +1,585 @@ +%!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 396 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 396 368 +%%PageOrientation: Portrait +gsave +36 36 360 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 +358 330 lineto +358 -6 lineto +closepath +fill +0.167 0.600 1.000 graphcolor +newpath -6 -6 moveto +-6 330 lineto +358 330 lineto +358 -6 lineto +closepath +stroke +0.000 0.000 0.000 graphcolor +14.00 /Times-Roman set_font +% FieldOfPrimeCharacteristic() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 282 324 moveto +102 324 lineto +102 288 lineto +282 288 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 282 324 moveto +102 324 lineto +102 288 lineto +282 288 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +110 301 moveto +(FieldOfPrimeCharacteristic\(\)) +[7.44 3.84 6.24 3.84 6.96 10.08 4.56 7.68 5.04 3.84 10.8 6.24 9.36 6.96 6.24 4.8 6.24 6.24 3.84 6.24 5.04 3.84 5.28 3.84 3.84 6.24 4.56 4.56] +xshow +end grestore +end grestore +% CHARNZ... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 191 252 moveto +107 252 lineto +107 216 lineto +191 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 191 252 moveto +107 252 lineto +107 216 lineto +191 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +114 229 moveto +(CHARNZ...) +[9.36 10.08 10.08 9.36 10.08 8.64 3.6 3.6 3.6] +xshow +end grestore +end grestore +% FieldOfPrimeCharacteristic()->CHARNZ... +newpath 181 288 moveto +176 280 170 270 165 261 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 168 259 moveto +160 252 lineto +162 262 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 168 259 moveto +160 252 lineto +162 262 lineto +closepath +stroke +end grestore +% Field() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 263 252 moveto +209 252 lineto +209 216 lineto +263 216 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 263 252 moveto +209 252 lineto +209 216 lineto +263 216 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +217 229 moveto +(Field\(\)) +[7.44 3.84 6.24 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% FieldOfPrimeCharacteristic()->Field() +newpath 203 288 moveto +208 280 214 270 220 261 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 223 262 moveto +225 252 lineto +217 259 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 223 262 moveto +225 252 lineto +217 259 lineto +closepath +stroke +end grestore +% EuclideanDomain() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 161 180 moveto +35 180 lineto +35 144 lineto +161 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 161 180 moveto +35 180 lineto +35 144 lineto +161 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +42 157 moveto +(EuclideanDomain\(\)) +[8.64 6.96 6.24 3.84 3.84 6.96 6.24 6.24 6.96 10.08 6.96 10.8 6.24 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Field()->EuclideanDomain() +newpath 209 220 moveto +190 210 164 196 142 185 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 143 182 moveto +133 180 lineto +140 188 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 143 182 moveto +133 180 lineto +140 188 lineto +closepath +stroke +end grestore +% UniqueFactorizationDomain() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 352 108 moveto +168 108 lineto +168 72 lineto +352 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 352 108 moveto +168 108 lineto +168 72 lineto +352 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +175 85 moveto +(UniqueFactorizationDomain\(\)) +[9.6 6.96 3.84 6.72 6.96 6.24 7.2 6.24 6.24 3.84 6.96 5.04 3.84 6.24 6.24 3.84 3.84 6.96 6.96 10.08 6.96 10.8 6.24 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% Field()->UniqueFactorizationDomain() +newpath 239 216 moveto +243 191 250 147 255 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 258 118 moveto +257 108 lineto +252 117 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 258 118 moveto +257 108 lineto +252 117 lineto +closepath +stroke +end grestore +% DIVRING... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 350 180 moveto +264 180 lineto +264 144 lineto +350 144 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 350 180 moveto +264 180 lineto +264 144 lineto +350 144 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +271 157 moveto +(DIVRING...) +[10.08 4.56 10.08 9.36 4.56 9.84 10.08 3.6 3.6 3.6] +xshow +end grestore +end grestore +% Field()->DIVRING... +newpath 254 216 moveto +263 207 273 197 282 188 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 285 190 moveto +289 180 lineto +280 185 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 285 190 moveto +289 180 lineto +280 185 lineto +closepath +stroke +end grestore +% PrincipalIdealDomain() +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 150 108 moveto +0 108 lineto +0 72 lineto +150 72 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 150 108 moveto +0 108 lineto +0 72 lineto +150 72 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +8 85 moveto +(PrincipalIdealDomain\(\)) +[7.68 5.04 3.84 6.96 6.24 3.84 6.96 6.24 3.84 4.56 6.96 6.24 6.24 3.84 10.08 6.96 10.8 6.24 3.84 6.96 4.56 4.56] +xshow +end grestore +end grestore +% EuclideanDomain()->PrincipalIdealDomain() +newpath 92 144 moveto +89 136 86 127 84 118 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 87 117 moveto +81 108 lineto +81 119 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 87 117 moveto +81 108 lineto +81 119 lineto +closepath +stroke +end grestore +% GCDDOM... +gsave 10 dict begin +filled +0.537 0.247 0.902 nodecolor +0.537 0.247 0.902 nodecolor +newpath 212 36 moveto +122 36 lineto +122 0 lineto +212 0 lineto +closepath +fill +0.537 0.247 0.902 nodecolor +newpath 212 36 moveto +122 36 lineto +122 0 lineto +212 0 lineto +closepath +stroke +gsave 10 dict begin +0.000 0.000 0.000 nodecolor +130 13 moveto +(GCDDOM...) +[10.08 9.36 10.08 10.08 10.08 12.48 3.6 3.6 3.6] +xshow +end grestore +end grestore +% UniqueFactorizationDomain()->GCDDOM... +newpath 237 72 moveto +226 63 211 52 198 42 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 200 39 moveto +190 36 lineto +196 45 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 200 39 moveto +190 36 lineto +196 45 lineto +closepath +stroke +end grestore +% PrincipalIdealDomain()->GCDDOM... +newpath 98 72 moveto +109 63 124 52 136 42 curveto +stroke +gsave 10 dict begin +solid +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 138 45 moveto +144 36 lineto +134 39 lineto +closepath +fill +0.000 0.000 0.000 edgecolor +newpath 138 45 moveto +144 36 lineto +134 39 lineto +closepath +stroke +end grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +end +restore +%%EOF diff --git a/changelog b/changelog index f9e03cc..0cb9bd1 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,7 @@ +20080930 tpd books/ps/v102fieldofprimecharacteristic.ps added +20080930 tpd books/ps/v102extensionfield.ps added +20080930 tpd books/bookvol10.2 add XF, FPC from ffcat +20080930 tpd src/algebra/ffcat.spad move XF, FPC to bookvol10.2 20080928 tpd books/bookvol10.2 add trigcat categories 20080928 tpd books/ps/v102trigonometricfunctioncategory.ps 20080928 tpd books/ps/v102transcendentalfunctioncategory.ps diff --git a/src/algebra/ffcat.spad.pamphlet b/src/algebra/ffcat.spad.pamphlet index 9505c55..3872c81 100644 --- a/src/algebra/ffcat.spad.pamphlet +++ b/src/algebra/ffcat.spad.pamphlet @@ -24,99 +24,6 @@ -- Fields with finite characteristic \end{verbatim} -\section{category FPC FieldOfPrimeCharacteristic} -<>= -)abbrev category FPC FieldOfPrimeCharacteristic -++ Author: J. Grabmeier, A. Scheerhorn -++ Date Created: 10 March 1991 -++ Date Last Updated: 31 March 1991 -++ Basic Operations: _+, _* -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: field, finite field, prime characteristic -++ References: -++ J. Grabmeier, A. Scheerhorn: Finite Fields in AXIOM. -++ AXIOM Technical Report Series, ATR/5 NP2522. -++ Description: -++ FieldOfPrimeCharacteristic is the category of fields of prime -++ characteristic, e.g. finite fields, algebraic closures of -++ fields of prime characteristic, transcendental extensions of -++ of fields of prime characteristic. -FieldOfPrimeCharacteristic:Category == _ - Join(Field,CharacteristicNonZero) with - order: $ -> OnePointCompletion PositiveInteger - ++ order(a) computes the order of an element in the multiplicative - ++ group of the field. - ++ Error: if \spad{a} is 0. - discreteLog: ($,$) -> Union(NonNegativeInteger,"failed") - ++ discreteLog(b,a) computes s with \spad{b**s = a} if such an s exists. - primeFrobenius: $ -> $ - ++ primeFrobenius(a) returns \spad{a ** p} where p is the characteristic. - primeFrobenius: ($,NonNegativeInteger) -> $ - ++ primeFrobenius(a,s) returns \spad{a**(p**s)} where p - ++ is the characteristic. - add - primeFrobenius(a) == a ** characteristic() - primeFrobenius(a,s) == a ** (characteristic()**s) - -@ -\section{category XF ExtensionField} -<>= -)abbrev category XF ExtensionField -++ Author: J. Grabmeier, A. Scheerhorn -++ Date Created: 10 March 1991 -++ Date Last Updated: 31 March 1991 -++ Basic Operations: _+, _*, extensionDegree, algebraic?, transcendent? -++ Related Constructors: -++ Also See: -++ AMS Classifications: -++ Keywords: field, extension field -++ References: -++ J. Grabmeier, A. Scheerhorn: Finite Fields in AXIOM. -++ AXIOM Technical Report Series, ATR/5 NP2522. -++ Description: -++ ExtensionField {\em F} is the category of fields which extend -++ the field F -ExtensionField(F:Field) : Category == Join(Field,RetractableTo F,VectorSpace F) with - if F has CharacteristicZero then CharacteristicZero - if F has CharacteristicNonZero then FieldOfPrimeCharacteristic - algebraic? : $ -> Boolean - ++ algebraic?(a) tests whether an element \spad{a} is algebraic with - ++ respect to the ground field F. - transcendent? : $ -> Boolean - ++ transcendent?(a) tests whether an element \spad{a} is transcendent - ++ with respect to the ground field F. - inGroundField?: $ -> Boolean - ++ inGroundField?(a) tests whether an element \spad{a} - ++ is already in the ground field F. - degree : $ -> OnePointCompletion PositiveInteger - ++ degree(a) returns the degree of minimal polynomial of an element - ++ \spad{a} if \spad{a} is algebraic - ++ with respect to the ground field F, and \spad{infinity} otherwise. - extensionDegree : () -> OnePointCompletion PositiveInteger - ++ extensionDegree() returns the degree of the field extension if the - ++ extension is algebraic, and \spad{infinity} if it is not. - transcendenceDegree : () -> NonNegativeInteger - ++ transcendenceDegree() returns the transcendence degree of the - ++ field extension, 0 if the extension is algebraic. - -- perhaps more absolute degree functions - if F has Finite then - FieldOfPrimeCharacteristic - Frobenius: $ -> $ - ++ Frobenius(a) returns \spad{a ** q} where q is the \spad{size()$F}. - Frobenius: ($,NonNegativeInteger) -> $ - ++ Frobenius(a,s) returns \spad{a**(q**s)} where q is the size()$F. - add - algebraic?(a) == not infinite? (degree(a)@OnePointCompletion_ - (PositiveInteger))$OnePointCompletion(PositiveInteger) - transcendent? a == infinite?(degree(a)@OnePointCompletion _ - (PositiveInteger))$OnePointCompletion(PositiveInteger) - if F has Finite then - Frobenius(a) == a ** size()$F - Frobenius(a,s) == a ** (size()$F ** s) - -@ \section{category FAXF FiniteAlgebraicExtensionField} <>= )abbrev category FAXF FiniteAlgebraicExtensionField @@ -860,8 +767,6 @@ FiniteFieldSolveLinearPolynomialEquation(F:FiniteFieldCategory, <> <> -<> -<> <> <> <>