diff --git a/books/bookvol10.2.pamphlet b/books/bookvol10.2.pamphlet index 2680966..3f0b4fd 100644 --- a/books/bookvol10.2.pamphlet +++ b/books/bookvol10.2.pamphlet @@ -58302,6 +58302,9 @@ o )show PseudoAlgebraicClosureOfRationalNumberCategory @ +{\bf See:} + +\pageto{PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory}{PACEXTC} \pagefrom{ExtensionField}{XF} {\bf Exports:}\\ @@ -60495,6 +60498,443 @@ digraph pic { } @ +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +\pagehead{PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory}{PACEXTC} +\pagepic{ps/v102pseudoalgebraicclosureofalgextofrationalnumbercategory.ps}{PACEXTC}{0.50} +<>= +)set break resume +)sys rm -f PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory.output +)spool PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory.output +)set message test on +)set message auto off +)clear all + +--S 1 of 1 +)show PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory +--R PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory is a category constructor +--R Abbreviation for PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory is PACEXTC +--R This constructor is not exposed in this frame. +--R Issue )edit bookvol10.2.pamphlet to see algebra source code for PACEXTC +--R +--R------------------------------- Operations -------------------------------- +--R ?*? : (%,Fraction Integer) -> % ?*? : (Fraction Integer,%) -> % +--R ?*? : (Fraction Integer,%) -> % ?*? : (%,Fraction Integer) -> % +--R ?*? : (%,%) -> % ?*? : (Integer,%) -> % +--R ?*? : (PositiveInteger,%) -> % ?**? : (%,Integer) -> % +--R ?**? : (%,PositiveInteger) -> % ?+? : (%,%) -> % +--R ?-? : (%,%) -> % -? : % -> % +--R ?/? : (%,Fraction Integer) -> % ?/? : (%,%) -> % +--R ?=? : (%,%) -> Boolean 1 : () -> % +--R 0 : () -> % ?^? : (%,Integer) -> % +--R ?^? : (%,PositiveInteger) -> % algebraic? : % -> Boolean +--R associates? : (%,%) -> Boolean coerce : Fraction Integer -> % +--R coerce : Fraction Integer -> % coerce : Integer -> % +--R coerce : Fraction Integer -> % coerce : % -> % +--R coerce : Integer -> % coerce : % -> OutputForm +--R conjugate : % -> % dimension : () -> CardinalNumber +--R extDegree : % -> PositiveInteger factor : % -> Factored % +--R fullOutput : % -> OutputForm gcd : List % -> % +--R gcd : (%,%) -> % ground? : % -> Boolean +--R hash : % -> SingleInteger inGroundField? : % -> Boolean +--R inv : % -> % latex : % -> String +--R lcm : List % -> % lcm : (%,%) -> % +--R maxTower : List % -> % one? : % -> Boolean +--R previousTower : % -> % prime? : % -> Boolean +--R ?quo? : (%,%) -> % recip : % -> Union(%,"failed") +--R ?rem? : (%,%) -> % retract : % -> Fraction Integer +--R retract : % -> Fraction Integer retract : % -> Integer +--R sample : () -> % setTower! : % -> Void +--R sizeLess? : (%,%) -> Boolean squareFree : % -> Factored % +--R squareFreePart : % -> % transcendent? : % -> Boolean +--R unit? : % -> Boolean unitCanonical : % -> % +--R vectorise : (%,%) -> Vector % zero? : % -> Boolean +--R ?~=? : (%,%) -> Boolean +--R ?*? : (%,PseudoAlgebraicClosureOfRationalNumber) -> % +--R ?*? : (PseudoAlgebraicClosureOfRationalNumber,%) -> % +--R ?*? : (NonNegativeInteger,%) -> % +--R ?**? : (%,NonNegativeInteger) -> % +--R ?/? : (%,PseudoAlgebraicClosureOfRationalNumber) -> % +--R Frobenius : % -> % if PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has FINITE +--R Frobenius : (%,NonNegativeInteger) -> % if PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has FINITE +--R ?^? : (%,NonNegativeInteger) -> % +--R characteristic : () -> NonNegativeInteger +--R charthRoot : % -> Union(%,"failed") if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE +--R coerce : PseudoAlgebraicClosureOfRationalNumber -> % +--R coerce : PseudoAlgebraicClosureOfRationalNumber -> % +--R definingPolynomial : % -> SparseUnivariatePolynomial % +--R definingPolynomial : () -> SparseUnivariatePolynomial % +--R degree : % -> OnePointCompletion PositiveInteger +--R discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE +--R distinguishedRootsOf : (SparseUnivariatePolynomial %,%) -> List % +--R divide : (%,%) -> Record(quotient: %,remainder: %) +--R euclideanSize : % -> NonNegativeInteger +--R expressIdealMember : (List %,%) -> Union(List %,"failed") +--R exquo : (%,%) -> Union(%,"failed") +--R extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") +--R extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) +--R extensionDegree : () -> OnePointCompletion PositiveInteger +--R gcdPolynomial : (SparseUnivariatePolynomial %,SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % +--R lift : (%,%) -> SparseUnivariatePolynomial % +--R lift : % -> SparseUnivariatePolynomial % +--R multiEuclidean : (List %,%) -> Union(List %,"failed") +--R newElement : (SparseUnivariatePolynomial %,Symbol) -> % +--R newElement : (SparseUnivariatePolynomial %,%,Symbol) -> % +--R order : % -> OnePointCompletion PositiveInteger if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE +--R primeFrobenius : % -> % if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE +--R primeFrobenius : (%,NonNegativeInteger) -> % if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE +--R principalIdeal : List % -> Record(coef: List %,generator: %) +--R reduce : SparseUnivariatePolynomial % -> % +--R retract : % -> PseudoAlgebraicClosureOfRationalNumber +--R retract : % -> PseudoAlgebraicClosureOfRationalNumber +--R retractIfCan : % -> Union(PseudoAlgebraicClosureOfRationalNumber,"failed") +--R retractIfCan : % -> Union(PseudoAlgebraicClosureOfRationalNumber,"failed") +--R retractIfCan : % -> Union(Fraction Integer,"failed") +--R retractIfCan : % -> Union(Fraction Integer,"failed") +--R retractIfCan : % -> Union(Integer,"failed") +--R subtractIfCan : (%,%) -> Union(%,"failed") +--R transcendenceDegree : () -> NonNegativeInteger +--R unitNormal : % -> Record(unit: %,canonical: %,associate: %) +--R +--E 1 + +)spool +)lisp (bye) +@ +<>= +==================================================================== +PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory examples +==================================================================== + +See Also: +o )show PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory + +@ + +{\bf See:} + +\pagefrom{PseudoAlgebraicClosureOfRationalNumberCategory}{PACRATC} + +{\bf Exports:}\\ + +\begin{tabular}{llll} +\cross{PACEXTC}{0} & +\cross{PACEXTC}{1} & +\cross{PACEXTC}{-?} & +\cross{PACEXTC}{?**?} \\ +\cross{PACEXTC}{?*?} & +\cross{PACEXTC}{?+?} & +\cross{PACEXTC}{?-?} & +\cross{PACEXTC}{?/?} \\ +\cross{PACEXTC}{?=?} & +\cross{PACEXTC}{?\^{}?} & +\cross{PACEXTC}{?\~{}=?} & +\cross{PACEXTC}{?quo?} \\ +\cross{PACEXTC}{?rem?} & +\cross{PACEXTC}{algebraic?} & +\cross{PACEXTC}{associates?} & +\cross{PACEXTC}{characteristic} \\ +\cross{PACEXTC}{charthRoot} & +\cross{PACEXTC}{coerce} & +\cross{PACEXTC}{conjugate} & +\cross{PACEXTC}{definingPolynomial} \\ +\cross{PACEXTC}{degree} & +\cross{PACEXTC}{dimension} & +\cross{PACEXTC}{discreteLog} & +\cross{PACEXTC}{distinguishedRootsOf} \\ +\cross{PACEXTC}{divide} & +\cross{PACEXTC}{euclideanSize} & +\cross{PACEXTC}{expressIdealMember} & +\cross{PACEXTC}{exquo} \\ +\cross{PACEXTC}{extDegree} & +\cross{PACEXTC}{extendedEuclidean} & +\cross{PACEXTC}{extensionDegree} & +\cross{PACEXTC}{factor} \\ +\cross{PACEXTC}{Frobenius} & +\cross{PACEXTC}{fullOutput} & +\cross{PACEXTC}{gcd} & +\cross{PACEXTC}{gcdPolynomial} \\ +\cross{PACEXTC}{ground?} & +\cross{PACEXTC}{hash} & +\cross{PACEXTC}{inGroundField?} & +\cross{PACEXTC}{inv} \\ +\cross{PACEXTC}{latex} & +\cross{PACEXTC}{lcm} & +\cross{PACEXTC}{lift} & +\cross{PACEXTC}{maxTower} \\ +\cross{PACEXTC}{multiEuclidean} & +\cross{PACEXTC}{newElement} & +\cross{PACEXTC}{one?} & +\cross{PACEXTC}{order} \\ +\cross{PACEXTC}{previousTower} & +\cross{PACEXTC}{prime?} & +\cross{PACEXTC}{primeFrobenius} & +\cross{PACEXTC}{principalIdeal} \\ +\cross{PACEXTC}{recip} & +\cross{PACEXTC}{reduce} & +\cross{PACEXTC}{retract} & +\cross{PACEXTC}{retractIfCan} \\ +\cross{PACEXTC}{sample} & +\cross{PACEXTC}{setTower!} & +\cross{PACEXTC}{sizeLess?} & +\cross{PACEXTC}{squareFree} \\ +\cross{PACEXTC}{squareFreePart} & +\cross{PACEXTC}{subtractIfCan} & +\cross{PACEXTC}{transcendenceDegree} & +\cross{PACEXTC}{transcendent?} \\ +\cross{PACEXTC}{unit?} & +\cross{PACEXTC}{unitCanonical} & +\cross{PACEXTC}{unitNormal} & +\cross{PACEXTC}{vectorise} \\ +\cross{PACEXTC}{zero?} &&& +\end{tabular} + +{\bf Attributes Exported:} +\begin{itemize} +\item {\bf \cross{PACEXTC}{commutative(``*'')}} +is true if it has an operation $"*": (D,D) -> D$ +which is commutative. +\item {\bf \cross{PACEXTC}{unitsKnown}} +is true if a monoid (a multiplicative semigroup with a 1) has +unitsKnown means that the operation {\tt recip} can only return +``failed'' if its argument is not a unit. +\item {\bf \cross{PACEXTC}{leftUnitary}} +is true if $1 * x = x$ for all x. +\item {\bf \cross{PACEXTC}{rightUnitary}} +is true if $x * 1 = x$ for all x. +\item {\bf \cross{PACEXTC}{noZeroDivisors}} +is true if $x * y \ne 0$ implies both x and y are non-zero. +\item {\bf \cross{PACEXTC}{canonicalUnitNormal}} +is true if we can choose a canonical representative for each class +of associate elements, that is {\tt associates?(a,b)} returns true +if and only if {\tt unitCanonical(a) = unitCanonical(b)}. +\item {\bf \cross{ATTREG}{canonicalsClosed}} +is true if\hfill\\ +{\tt unitCanonical(a)*unitCanonical(b) = unitCanonical(a*b)}. +\end{itemize} + +These exports come from \refto{PseudoAlgebraicClosureOfRationalNumberCategory} +\begin{verbatim} + -? : % -> % + 0 : () -> % + 1 : () -> % + ?**? : (%,Integer) -> % + ?**? : (%,NonNegativeInteger) -> % + ?**? : (%,PositiveInteger) -> % + ?*? : (%,%) -> % + ?*? : (%,Fraction Integer) -> % + ?*? : (%,Fraction Integer) -> % + ?*? : (Fraction Integer,%) -> % + ?*? : (Fraction Integer,%) -> % + ?*? : (Integer,%) -> % + ?*? : (NonNegativeInteger,%) -> % + ?*? : (PositiveInteger,%) -> % + ?+? : (%,%) -> % + ?-? : (%,%) -> % + ?/? : (%,%) -> % + ?/? : (%,Fraction Integer) -> % + ?=? : (%,%) -> Boolean + ?^? : (%,Integer) -> % + ?^? : (%,NonNegativeInteger) -> % + ?^? : (%,PositiveInteger) -> % + ?quo? : (%,%) -> % + ?rem? : (%,%) -> % + ?~=? : (%,%) -> Boolean + Frobenius : % -> % if Fraction Integer has FINITE + Frobenius : (%,NonNegativeInteger) -> % if Fraction Integer has FINITE + algebraic? : % -> Boolean + associates? : (%,%) -> Boolean + characteristic : () -> NonNegativeInteger + charthRoot : % -> Union(%,"failed") + if Fraction Integer has CHARNZ or Fraction Integer has FINITE + coerce : % -> % + coerce : % -> OutputForm + coerce : Fraction Integer -> % + coerce : Fraction Integer -> % + coerce : Fraction Integer -> % + coerce : Integer -> % + coerce : Integer -> % + conjugate : % -> % + definingPolynomial : % -> SparseUnivariatePolynomial % + definingPolynomial : () -> SparseUnivariatePolynomial % + degree : % -> OnePointCompletion PositiveInteger + dimension : () -> CardinalNumber + discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") + if Fraction Integer has CHARNZ or Fraction Integer has FINITE + distinguishedRootsOf : (SparseUnivariatePolynomial %,%) -> List % + divide : (%,%) -> Record(quotient: %,remainder: %) + euclideanSize : % -> NonNegativeInteger + expressIdealMember : (List %,%) -> Union(List %,"failed") + exquo : (%,%) -> Union(%,"failed") + extDegree : % -> PositiveInteger + extendedEuclidean : (%,%) -> Record(coef1: %,coef2: %,generator: %) + extendedEuclidean : (%,%,%) -> Union(Record(coef1: %,coef2: %),"failed") + extensionDegree : () -> OnePointCompletion PositiveInteger + factor : % -> Factored % + fullOutput : % -> OutputForm + gcd : (%,%) -> % + gcd : List % -> % + gcdPolynomial : (SparseUnivariatePolynomial %, + SparseUnivariatePolynomial %) -> SparseUnivariatePolynomial % + ground? : % -> Boolean + hash : % -> SingleInteger + inGroundField? : % -> Boolean + inv : % -> % + latex : % -> String + lcm : (%,%) -> % + lcm : List % -> % + lift : % -> SparseUnivariatePolynomial % + lift : (%,%) -> SparseUnivariatePolynomial % + maxTower : List % -> % + multiEuclidean : (List %,%) -> Union(List %,"failed") + newElement : (SparseUnivariatePolynomial %,%,Symbol) -> % + newElement : (SparseUnivariatePolynomial %,Symbol) -> % + one? : % -> Boolean + order : % -> OnePointCompletion PositiveInteger + if Fraction Integer has CHARNZ or Fraction Integer has FINITE + previousTower : % -> % + prime? : % -> Boolean + primeFrobenius : % -> % + if Fraction Integer has CHARNZ or Fraction Integer has FINITE + primeFrobenius : (%,NonNegativeInteger) -> % + if Fraction Integer has CHARNZ or Fraction Integer has FINITE + principalIdeal : List % -> Record(coef: List %,generator: %) + recip : % -> Union(%,"failed") + reduce : SparseUnivariatePolynomial % -> % + retract : % -> Fraction Integer + retract : % -> Fraction Integer + retract : % -> Integer + retractIfCan : % -> Union(Fraction Integer,"failed") + retractIfCan : % -> Union(Fraction Integer,"failed") + retractIfCan : % -> Union(Integer,"failed") + sample : () -> % + setTower! : % -> Void + sizeLess? : (%,%) -> Boolean + squareFree : % -> Factored % + squareFreePart : % -> % + subtractIfCan : (%,%) -> Union(%,"failed") + transcendenceDegree : () -> NonNegativeInteger + transcendent? : % -> Boolean + unit? : % -> Boolean + unitCanonical : % -> % + unitNormal : % -> Record(unit: %,canonical: %,associate: %) + vectorise : (%,%) -> Vector % + zero? : % -> Boolean + +These exports come from \refto{RetractableTo} +\begin{verbatim} + coerce : PseudoAlgebraicClosureOfRationalNumber -> % + coerce : PseudoAlgebraicClosureOfRationalNumber -> % + retract : % -> PseudoAlgebraicClosureOfRationalNumber + retract : % -> PseudoAlgebraicClosureOfRationalNumber + retractIfCan : % -> Union(PseudoAlgebraicClosureOfRationalNumber,"failed") + retractIfCan : % -> Union(PseudoAlgebraicClosureOfRationalNumber,"failed") +\end{verbatim} + +These exports come from \refto{ExtensionField} +\begin{verbatim} + ?*? : (%,PseudoAlgebraicClosureOfRationalNumber) -> % + ?*? : (PseudoAlgebraicClosureOfRationalNumber,%) -> % + ?/? : (%,PseudoAlgebraicClosureOfRationalNumber) -> % + charthRoot : % -> Union(%,"failed") if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE + discreteLog : (%,%) -> Union(NonNegativeInteger,"failed") if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE + Frobenius : % -> % if PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has FINITE + Frobenius : (%,NonNegativeInteger) -> % if PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has FINITE + order : % -> OnePointCompletion PositiveInteger if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE + primeFrobenius : % -> % if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE + primeFrobenius : (%,NonNegativeInteger) -> % if PseudoAlgebraicClosureOfRationalNumber has CHARNZ or PseudoAlgebraicClosureOfRationalNumber has FINITE or Fraction Integer has CHARNZ or Fraction Integer has FINITE +\end{verbatim} + +<>= +)abbrev category PACEXTC PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory +++ Authors: Gaetan Hache +++ Date Created: jan 1998 +++ Date Last Updated: May 2010 by Tim Daly +++ Description: +++ This category exports the function for the domain +++ PseudoAlgebraicClosureOfAlgExtOfRationalNumber which implement dynamic +++ extension using the simple notion of tower extensions. A tower extension +++ T of the ground field K is any sequence of field extension +++ (T : K_0, K_1, ..., K_i...,K_n) where K_0 = K and for i =1,2,...,n, +++ K_i is an extension of K_{i-1} of degree > 1 and defined by an +++ irreducible polynomial p(Z) in K_{i-1}. +++ Two towers (T_1: K_01, K_11,...,K_i1,...,K_n1) and +++ (T_2: K_02, K_12,...,K_i2,...,K_n2) +++ are said to be related if T_1 <= T_2 (or T_1 >= T_2), +++ that is if K_i1 = K_i2 for i=1,2,...,n1 (or i=1,2,...,n2). +++ Any algebraic operations defined for several elements +++ are only defined if all of the concerned elements are comming from +++ a set of related tour extensions. +PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory:Category == Impl where + Q ==> PseudoAlgebraicClosureOfRationalNumber + Impl ==> + Join(PseudoAlgebraicClosureOfRationalNumberCategory,_ + RetractableTo(Q),ExtensionField(Q)) +@ +<>= +"PACEXTC" [color=lightblue,href="bookvol10.2.pdf#nameddest=PACEXTC"]; +"PACEXTC" -> "PACRATC" +"PACEXTC" -> "RETRACT" +"PACEXTC" -> "XF" + +@ +<>= +"PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory" + [color=lightblue,href="bookvol10.2.pdf#nameddest=PACEXTC"]; + -> "PseudoAlgebraicClosureOfRationalNumberCategory" +"PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory" + -> "RetractableTo(PseudoAlgebraicClosureOfRationalNumber)" +"PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory" + -> "ExtensionField(PseudoAlgebraicClosureOfRationalNumber)" + +"PseudoAlgebraicClosureOfRationalNumberCategory" + [color=lightblue,href="bookvol10.2.pdf#nameddest=PACRATC"]; + +"RetractableTo(PseudoAlgebraicClosureOfRationalNumber)" + [color=lightblue,href="bookvol10.2.pdf#nameddest=RETRACT"]; + -> "RetractableTo(a:Type)" + +"RetractableTo(a:Type)" + [color=lightblue,href="bookvol10.2.pdf#nameddest=RETRACT"]; + +"ExtensionField(PseudoAlgebraicClosureOfRationalNumber)" + [color=lightblue,href="bookvol10.2.pdf#nameddest=XF"]; +"ExtensionField(PseudoAlgebraicClosureOfRationalNumber)" -> + -> "ExtensionField(a:Field)" + +"ExtensionField(a:Field)" + [color=lightblue,href="bookvol10.2.pdf#nameddest=XF"]; + +@ +<>= +digraph pic { + fontsize=10; + bgcolor="#FFFF66"; + node [shape=box, color=white, style=filled]; + +"PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory" + [color=lightblue,href="bookvol10.2.pdf#nameddest=PACEXTC"]; + -> "PseudoAlgebraicClosureOfRationalNumberCategory" +"PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory" + -> "RetractableTo(PseudoAlgebraicClosureOfRationalNumber)" +"PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory" + -> "ExtensionField(PseudoAlgebraicClosureOfRationalNumber)" + +"RetractableTo(PseudoAlgebraicClosureOfRationalNumber)" + [color=lightblue,href="bookvol10.2.pdf#nameddest=RETRACT"]; +"RetractableTo(PseudoAlgebraicClosureOfRationalNumber)" + -> "RETRACT..." + +"ExtensionField(PseudoAlgebraicClosureOfRationalNumber)" + [color=lightblue,href="bookvol10.2.pdf#nameddest=XF"]; +"ExtensionField(PseudoAlgebraicClosureOfRationalNumber)" -> + -> "XF..." + +"XF..." [color=lightblue]; +"RETRACT..." [color=lightblue]; + +} + +@ \chapter{The bootstrap code} \section{ABELGRP.lsp BOOTSTRAP} @@ -74996,6 +75436,7 @@ Note that this code is not included in the generated catdef.spad file. <> <> <> +<> <> <> <> diff --git a/books/bookvol5.pamphlet b/books/bookvol5.pamphlet index 77487bc..8afa8d1 100644 --- a/books/bookvol5.pamphlet +++ b/books/bookvol5.pamphlet @@ -24470,6 +24470,7 @@ otherwise the new algebra won't be loaded by the interpreter when needed. (|PrimitiveFunctionCategory| . PRIMCAT) (|PrincipalIdealDomain| . PID) (|PriorityQueueAggregate| . PRQAGG) + (|PseudoAlgebraicClosureofAlgExtOfRationalNumberCategory| . PACEXTC) (|PseudoAlgebraicClosureOfFiniteField| . PACOFF) (|PseudoAlgebraicClosureOfFiniteFieldCategory| . PACFFC) (|PseudoAlgebraicClosureOfPerfectFieldCategory| . PACPERC) diff --git a/books/ps/v102pseudoalgebraicclosureofalgextofrationalnumbercategory.ps b/books/ps/v102pseudoalgebraicclosureofalgextofrationalnumbercategory.ps new file mode 100644 index 0000000..4cc087e --- /dev/null +++ b/books/ps/v102pseudoalgebraicclosureofalgextofrationalnumbercategory.ps @@ -0,0 +1,343 @@ +%!PS-Adobe-3.0 EPSF-3.0 +%%Creator: Graphviz version 2.20.2 (Mon Mar 30 10:09:11 UTC 2009) +%%For: (root) root +%%Title: pic +%%Pages: (atend) +%%BoundingBox: (atend) +%%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 + 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 text fitted to its expected width +/alignedtext { % width text + /text exch def + /width exch def + gsave + width 0 gt { + [] 0 setdash + text stringwidth pop width exch sub text length div 0 text ashow + } if + 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 +setupLatin1 +%%Page: 1 1 +%%PageBoundingBox: 36 36 294 152 +%%PageOrientation: Portrait +0 0 1 beginpage +gsave +36 36 258 116 boxprim clip newpath +1 1 set_scale 0 rotate 40 40 translate +% PACEXTC +gsave +[ /Rect [ 98 72 178 108 ] + /Border [ 0 0 0 ] + /Action << /Subtype /URI /URI (bookvol10.2.pdf#nameddest=PACEXTC) >> + /Subtype /Link +/ANN pdfmark +0.537 0.247 0.902 nodecolor +newpath 178 108 moveto +98 108 lineto +98 72 lineto +178 72 lineto +closepath fill +1 setlinewidth +filled +0.537 0.247 0.902 nodecolor +newpath 178 108 moveto +98 108 lineto +98 72 lineto +178 72 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +105.5 85.9 moveto 65 (PACEXTC) alignedtext +grestore +% PACRATC +gsave +0.537 0.247 0.902 nodecolor +newpath 80 36 moveto +0 36 lineto +0 0 lineto +80 0 lineto +closepath fill +1 setlinewidth +filled +0.537 0.247 0.902 nodecolor +newpath 80 36 moveto +0 36 lineto +0 0 lineto +80 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +8 13.9 moveto 64 (PACRATC) alignedtext +grestore +% PACEXTC->PACRATC +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 113 72 moveto +101 63 86 52 72 42 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 74.1 39.2 moveto +64 36 lineto +69.9 44.8 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 74.1 39.2 moveto +64 36 lineto +69.9 44.8 lineto +closepath stroke +grestore +% RETRACT +gsave +0.537 0.247 0.902 nodecolor +newpath 178 36 moveto +98 36 lineto +98 0 lineto +178 0 lineto +closepath fill +1 setlinewidth +filled +0.537 0.247 0.902 nodecolor +newpath 178 36 moveto +98 36 lineto +98 0 lineto +178 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +105.5 13.9 moveto 65 (RETRACT) alignedtext +grestore +% PACEXTC->RETRACT +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 138 72 moveto +138 64 138 55 138 46 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 141.5 46 moveto +138 36 lineto +134.5 46 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 141.5 46 moveto +138 36 lineto +134.5 46 lineto +closepath stroke +grestore +% XF +gsave +0.537 0.247 0.902 nodecolor +newpath 250 36 moveto +196 36 lineto +196 0 lineto +250 0 lineto +closepath fill +1 setlinewidth +filled +0.537 0.247 0.902 nodecolor +newpath 250 36 moveto +196 36 lineto +196 0 lineto +250 0 lineto +closepath stroke +0.000 0.000 0.000 nodecolor +14 /Times-Roman set_font +213.5 13.9 moveto 19 (XF) alignedtext +grestore +% PACEXTC->XF +gsave +1 setlinewidth +0.000 0.000 0.000 edgecolor +newpath 159 72 moveto +170 63 183 52 194 42 curveto +stroke +0.000 0.000 0.000 edgecolor +newpath 196.1 44.8 moveto +202 36 lineto +191.9 39.2 lineto +closepath fill +1 setlinewidth +solid +0.000 0.000 0.000 edgecolor +newpath 196.1 44.8 moveto +202 36 lineto +191.9 39.2 lineto +closepath stroke +grestore +endpage +showpage +grestore +%%PageTrailer +%%EndPage: 1 +%%Trailer +%%Pages: 1 +%%BoundingBox: 36 36 294 152 +end +restore +%%EOF diff --git a/changelog b/changelog index b17de15..a07a887 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,8 @@ +20100510 tpd src/axiom-website/patches.html 20100510.01.tpd.patch +20100510 tpd src/algebra/Makefile help and test files for PACEXTC +20100510 tpd books/bookvol5 expose PACEXTC +20100510 tpd books/bookvol10.2 add PACEXTC +20100510 tpd v102pseudoalgebraicclosureofalgextofrationalnumbercategory.ps add 20100509 tpd src/axiom-website/patches.html 20100509.02.tpd.patch 20100509 tpd src/algebra/Makefile test and document PACOFF 20100509 tpd books/bookvol5 expose PseudoAlgebraicClosureOfFiniteField diff --git a/src/algebra/Makefile.pamphlet b/src/algebra/Makefile.pamphlet index 2eb7dcd..11e8c88 100644 --- a/src/algebra/Makefile.pamphlet +++ b/src/algebra/Makefile.pamphlet @@ -11896,7 +11896,8 @@ LAYER17=\ ${MID}/clique1.spad \ ${OUT}/NAGF01.o ${OUT}/NAGF02.o ${OUT}/NAGF04.o ${OUT}/NCEP.o \ ${OUT}/NLINSOL.o ${OUT}/NSMP.o ${OUT}/NUMERIC.o ${OUT}/OCT.o \ - ${OUT}/OCTCT2.o ${OUT}/ODEPAL.o ${OUT}/ODERTRIC.o ${OUT}/PADE.o \ + ${OUT}/OCTCT2.o ${OUT}/ODEPAL.o ${OUT}/ODERTRIC.o ${OUT}/PACEXTC.o \ + ${OUT}/PADE.o \ ${OUT}/PAN2EXPR.o ${OUT}/PFO.o ${OUT}/PFOQ.o ${OUT}/PICOERCE.o \ ${OUT}/PMASSFS.o ${OUT}/PMFS.o ${OUT}/PMPREDFS.o ${OUT}/PSETPK.o \ ${OUT}/QUAT.o ${OUT}/QUATCT2.o ${OUT}/RADFF.o ${OUT}/RDEEF.o \ @@ -13794,6 +13795,16 @@ LAYER17=\ "ODERTRIC" -> "ACF" /*"ODERTRIC" -> {"LSAGG-"; "STAGG-"}*/ +"PACEXTC" [color="#4488FF",href="bookvol10.2.pdf#nameddest=PACEXTC"] +"PACEXTC" -> "PACRAT" +/*"PACEXTC" -> {"PACRATC"; "PACPERC"; "FIELD"; "EUCDOM"; "PID"; "GCDDOM"}*/ +/*"PACEXTC" -> {"INTDOM"; "COMRING"; "RING"; "RNG"; "ABELGRP"}*/ +/*"PACEXTC" -> {"CABMON"; "ABELMON"; "ABELSG"; "SETCAT"; "BASTYPE"}*/ +/*"PACEXTC" -> {"KOERCE"; "SGROUP"; "MONOID"; "LMODULE"; "BMODULE"}*/ +/*"PACEXTC" -> {"RMODULE"; "ALGEBRA"; "MODULE"; "ENTIRER"; "UFD"}*/ +/*"PACEXTC" -> {"DIVRING"; "CHARZ"; "RETRACT"; "XF"; "VSPACE";}*/ +/*"PACEXTC" -> {"FPC"; "CHARNZ"; "FINITE"}*/ + "PADE" [color="#FF4488",href="bookvol10.4.pdf#nameddest=PADE"] /*"PADE" -> {"FIELD"; "EUCDOM"; "PID"; "GCDDOM"; "INTDOM"; "COMRING"}*/ /*"PADE" -> {"RING"; "RNG"; "ABELGRP"; "CABMON"; "ABELMON"; "ABELSG"}*/ @@ -16000,6 +16011,21 @@ ${MID}/PACOFF.nrlib/code.o: ${MID}/PACOFF.spad | ${INTERPSYS} >${TMP}/trace ; \ fi ) @ +<>= + +PACEXTCDEPS = PACPERC PACRATC PACRAT + +${MID}/PACEXTC.nrlib/code.o: ${MID}/PACEXTC.spad + @echo P3 making ${MID}/PACEXTC.nrlib/code.o from ${MID}/PACEXTC.spad + @ (cd ${MID} ; \ + if [ -z "${NOISE}" ] ; then \ + echo -e ")lib ${PACEXTCDEPS} \n )co PACEXTC.spad" \ + | ${INTERPSYS} ; \ + else \ + echo -e ")lib ${PACEXTCDEPS} \n )co PACEXTC.spad" \ + | ${INTERPSYS} >${TMP}/trace ; \ + fi ) +@ \section{Broken Files} These files are Aldor files @@ -16811,6 +16837,7 @@ SPADHELP=\ ${HELP}/Permutation.help \ ${HELP}/Polynomial.help \ ${HELP}/Product.help \ + ${HELP}/PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory.help \ ${HELP}/PseudoAlgebraicClosureOfFiniteField.help \ ${HELP}/PseudoAlgebraicClosureOfFiniteFieldCategory.help \ ${HELP}/PseudoAlgebraicClosureOfPerfectFieldCategory.help \ @@ -16962,6 +16989,7 @@ REGRESS= \ Plot.regress \ Polynomial.regress \ Product.regress \ + PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory.regress \ PseudoAlgebraicClosureOfFiniteField.regress \ PseudoAlgebraicClosureOfFiniteFieldCategory.regress \ PseudoAlgebraicClosureOfPerfectFieldCategory.regress \ @@ -18137,6 +18165,26 @@ ${HELP}/Product.help: ${BOOKS}/bookvol10.3.pamphlet >${INPUT}/Product.input @echo "Product (PRODUCT)" >>${HELPFILE} +${HELP}/PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory.help: \ + ${BOOKS}/bookvol10.2.pamphlet + @echo 7000 create \ + PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory.help from \ + ${BOOKS}/bookvol10.2.pamphlet + @${TANGLE} \ + -R"PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory.help" \ + ${BOOKS}/bookvol10.2.pamphlet \ + >${HELP}/PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory.help + @cp \ + ${HELP}/PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory.help \ + ${HELP}/PACEXTC.help + @${TANGLE} \ + -R"PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory.input" \ + ${BOOKS}/bookvol10.2.pamphlet \ + >${INPUT}/PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory.input + @echo \ + "PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory (PACEXTC)" \ + >>${HELPFILE} + ${HELP}/PseudoAlgebraicClosureOfFiniteFieldCategory.help: \ ${BOOKS}/bookvol10.2.pamphlet @echo 7936 create PseudoAlgebraicClosureOfFiniteFieldCategory.help \ diff --git a/src/axiom-website/patches.html b/src/axiom-website/patches.html index 26f0d32..9c0abf6 100644 --- a/src/axiom-website/patches.html +++ b/src/axiom-website/patches.html @@ -2679,5 +2679,7 @@ books/bookvol10.2 fix PseudoAlgebraicClosureOfPerfectFieldCategory
books/bookvol10.3 add PseudoAlgebraicClosureOfRationalNumber
20100509.02.tpd.patch books/bookvol10.3 add PseudoAlgebraicClosureOfFiniteField
+20100510.01.tpd.patch +books/bookvol10.2 PseudoAlgebraicClosureOfAlgExtOfRationalNumberCategory