diff options
Diffstat (limited to 'src/algebra/integer.spad.pamphlet')
-rw-r--r-- | src/algebra/integer.spad.pamphlet | 782 |
1 files changed, 0 insertions, 782 deletions
diff --git a/src/algebra/integer.spad.pamphlet b/src/algebra/integer.spad.pamphlet index 4b912159..899a2b70 100644 --- a/src/algebra/integer.spad.pamphlet +++ b/src/algebra/integer.spad.pamphlet @@ -240,547 +240,7 @@ Integer: Join(IntegerNumberSystem, ConvertibleTo String, OpenMath) with -- gcdPolynomial(p,q) == modularGcd(p,q)$TT @ -\section{INT.lsp BOOTSTRAP} -{\bf INT} depends on {\bf OINTDOM} which depends on {\bf ORDRING} -which depends on {\bf INT}. -We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf INT} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf INT.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. -Note that this code is not included in the generated catdef.spad file. - -<<INT.lsp BOOTSTRAP>>= - -(/VERSIONCHECK 2) - -(DEFUN |INT;writeOMInt| (|dev| |x| $) - (SEQ (COND - ((< |x| 0) - (SEQ (SPADCALL |dev| (|getShellEntry| $ 8)) - (SPADCALL |dev| "arith1" "unary_minus" - (|getShellEntry| $ 10)) - (SPADCALL |dev| (- |x|) (|getShellEntry| $ 12)) - (EXIT (SPADCALL |dev| (|getShellEntry| $ 13))))) - ('T (SPADCALL |dev| |x| (|getShellEntry| $ 12)))))) - -(DEFUN |INT;OMwrite;$S;2| (|x| $) - (PROG (|sp| |dev| |s|) - (RETURN - (SEQ (LETT |s| "" |INT;OMwrite;$S;2|) - (LETT |sp| (OM-STRINGTOSTRINGPTR |s|) |INT;OMwrite;$S;2|) - (LETT |dev| - (SPADCALL |sp| (SPADCALL (|getShellEntry| $ 15)) - (|getShellEntry| $ 16)) - |INT;OMwrite;$S;2|) - (SPADCALL |dev| (|getShellEntry| $ 17)) - (|INT;writeOMInt| |dev| |x| $) - (SPADCALL |dev| (|getShellEntry| $ 18)) - (SPADCALL |dev| (|getShellEntry| $ 19)) - (LETT |s| (OM-STRINGPTRTOSTRING |sp|) |INT;OMwrite;$S;2|) - (EXIT |s|))))) - -(DEFUN |INT;OMwrite;$BS;3| (|x| |wholeObj| $) - (PROG (|sp| |dev| |s|) - (RETURN - (SEQ (LETT |s| "" |INT;OMwrite;$BS;3|) - (LETT |sp| (OM-STRINGTOSTRINGPTR |s|) |INT;OMwrite;$BS;3|) - (LETT |dev| - (SPADCALL |sp| (SPADCALL (|getShellEntry| $ 15)) - (|getShellEntry| $ 16)) - |INT;OMwrite;$BS;3|) - (COND (|wholeObj| (SPADCALL |dev| (|getShellEntry| $ 17)))) - (|INT;writeOMInt| |dev| |x| $) - (COND (|wholeObj| (SPADCALL |dev| (|getShellEntry| $ 18)))) - (SPADCALL |dev| (|getShellEntry| $ 19)) - (LETT |s| (OM-STRINGPTRTOSTRING |sp|) |INT;OMwrite;$BS;3|) - (EXIT |s|))))) - -(DEFUN |INT;OMwrite;Omd$V;4| (|dev| |x| $) - (SEQ (SPADCALL |dev| (|getShellEntry| $ 17)) - (|INT;writeOMInt| |dev| |x| $) - (EXIT (SPADCALL |dev| (|getShellEntry| $ 18))))) - -(DEFUN |INT;OMwrite;Omd$BV;5| (|dev| |x| |wholeObj| $) - (SEQ (COND (|wholeObj| (SPADCALL |dev| (|getShellEntry| $ 17)))) - (|INT;writeOMInt| |dev| |x| $) - (EXIT (COND - (|wholeObj| (SPADCALL |dev| (|getShellEntry| $ 18))))))) - -(PUT '|INT;zero?;$B;6| '|SPADreplace| 'ZEROP) - -(DEFUN |INT;zero?;$B;6| (|x| $) (ZEROP |x|)) - -(PUT '|INT;one?;$B;7| '|SPADreplace| '(XLAM (|x|) (EQL |x| 1))) - -(DEFUN |INT;one?;$B;7| (|x| $) (EQL |x| 1)) - -(PUT '|INT;Zero;$;8| '|SPADreplace| '(XLAM NIL 0)) - -(DEFUN |INT;Zero;$;8| ($) 0) - -(PUT '|INT;One;$;9| '|SPADreplace| '(XLAM NIL 1)) - -(DEFUN |INT;One;$;9| ($) 1) - -(PUT '|INT;base;$;10| '|SPADreplace| '(XLAM NIL 2)) - -(DEFUN |INT;base;$;10| ($) 2) - -(PUT '|INT;copy;2$;11| '|SPADreplace| '(XLAM (|x|) |x|)) - -(DEFUN |INT;copy;2$;11| (|x| $) |x|) - -(PUT '|INT;inc;2$;12| '|SPADreplace| '(XLAM (|x|) (+ |x| 1))) - -(DEFUN |INT;inc;2$;12| (|x| $) (+ |x| 1)) - -(PUT '|INT;dec;2$;13| '|SPADreplace| '(XLAM (|x|) (- |x| 1))) - -(DEFUN |INT;dec;2$;13| (|x| $) (- |x| 1)) - -(PUT '|INT;hash;2$;14| '|SPADreplace| 'SXHASH) - -(DEFUN |INT;hash;2$;14| (|x| $) (SXHASH |x|)) - -(PUT '|INT;negative?;$B;15| '|SPADreplace| 'MINUSP) - -(DEFUN |INT;negative?;$B;15| (|x| $) (MINUSP |x|)) - -(DEFUN |INT;coerce;$Of;16| (|x| $) - (SPADCALL |x| (|getShellEntry| $ 36))) - -(PUT '|INT;coerce;I$;17| '|SPADreplace| '(XLAM (|m|) |m|)) - -(DEFUN |INT;coerce;I$;17| (|m| $) |m|) - -(PUT '|INT;convert;$I;18| '|SPADreplace| '(XLAM (|x|) |x|)) - -(DEFUN |INT;convert;$I;18| (|x| $) |x|) - -(PUT '|INT;length;2$;19| '|SPADreplace| 'INTEGER-LENGTH) - -(DEFUN |INT;length;2$;19| (|a| $) (INTEGER-LENGTH |a|)) - -(DEFUN |INT;addmod;4$;20| (|a| |b| |p| $) - (PROG (|c| #0=#:G1427) - (RETURN - (SEQ (EXIT (SEQ (SEQ (LETT |c| (+ |a| |b|) |INT;addmod;4$;20|) - (EXIT (COND - ((NULL (< |c| |p|)) - (PROGN - (LETT #0# (- |c| |p|) - |INT;addmod;4$;20|) - (GO #0#)))))) - (EXIT |c|))) - #0# (EXIT #0#))))) - -(DEFUN |INT;submod;4$;21| (|a| |b| |p| $) - (PROG (|c|) - (RETURN - (SEQ (LETT |c| (- |a| |b|) |INT;submod;4$;21|) - (EXIT (COND ((< |c| 0) (+ |c| |p|)) ('T |c|))))))) - -(DEFUN |INT;mulmod;4$;22| (|a| |b| |p| $) - (REMAINDER2 (* |a| |b|) |p|)) - -(DEFUN |INT;convert;$F;23| (|x| $) - (SPADCALL |x| (|getShellEntry| $ 45))) - -(PUT '|INT;convert;$Df;24| '|SPADreplace| - '(XLAM (|x|) (FLOAT |x| MOST-POSITIVE-LONG-FLOAT))) - -(DEFUN |INT;convert;$Df;24| (|x| $) - (FLOAT |x| MOST-POSITIVE-LONG-FLOAT)) - -(DEFUN |INT;convert;$If;25| (|x| $) - (SPADCALL |x| (|getShellEntry| $ 50))) - -(PUT '|INT;convert;$S;26| '|SPADreplace| 'STRINGIMAGE) - -(DEFUN |INT;convert;$S;26| (|x| $) (STRINGIMAGE |x|)) - -(DEFUN |INT;latex;$S;27| (|x| $) - (PROG (|s|) - (RETURN - (SEQ (LETT |s| (STRINGIMAGE |x|) |INT;latex;$S;27|) - (COND ((< -1 |x|) (COND ((< |x| 10) (EXIT |s|))))) - (EXIT (STRCONC "{" (STRCONC |s| "}"))))))) - -(DEFUN |INT;positiveRemainder;3$;28| (|a| |b| $) - (PROG (|r|) - (RETURN - (COND - ((MINUSP (LETT |r| (REMAINDER2 |a| |b|) - |INT;positiveRemainder;3$;28|)) - (COND ((MINUSP |b|) (- |r| |b|)) ('T (+ |r| |b|)))) - ('T |r|))))) - -(PUT '|INT;reducedSystem;MM;29| '|SPADreplace| '(XLAM (|m|) |m|)) - -(DEFUN |INT;reducedSystem;MM;29| (|m| $) |m|) - -(DEFUN |INT;reducedSystem;MVR;30| (|m| |v| $) (CONS |m| '|vec|)) - -(PUT '|INT;abs;2$;31| '|SPADreplace| 'ABS) - -(DEFUN |INT;abs;2$;31| (|x| $) (ABS |x|)) - -(PUT '|INT;random;$;32| '|SPADreplace| '|random|) - -(DEFUN |INT;random;$;32| ($) (|random|)) - -(PUT '|INT;random;2$;33| '|SPADreplace| 'RANDOM) - -(DEFUN |INT;random;2$;33| (|x| $) (RANDOM |x|)) - -(PUT '|INT;=;2$B;34| '|SPADreplace| 'EQL) - -(DEFUN |INT;=;2$B;34| (|x| |y| $) (EQL |x| |y|)) - -(PUT '|INT;<;2$B;35| '|SPADreplace| '<) - -(DEFUN |INT;<;2$B;35| (|x| |y| $) (< |x| |y|)) - -(PUT '|INT;-;2$;36| '|SPADreplace| '-) - -(DEFUN |INT;-;2$;36| (|x| $) (- |x|)) - -(PUT '|INT;+;3$;37| '|SPADreplace| '+) - -(DEFUN |INT;+;3$;37| (|x| |y| $) (+ |x| |y|)) - -(PUT '|INT;-;3$;38| '|SPADreplace| '-) - -(DEFUN |INT;-;3$;38| (|x| |y| $) (- |x| |y|)) - -(PUT '|INT;*;3$;39| '|SPADreplace| '*) - -(DEFUN |INT;*;3$;39| (|x| |y| $) (* |x| |y|)) - -(PUT '|INT;*;I2$;40| '|SPADreplace| '*) - -(DEFUN |INT;*;I2$;40| (|m| |y| $) (* |m| |y|)) - -(PUT '|INT;**;$Nni$;41| '|SPADreplace| 'EXPT) - -(DEFUN |INT;**;$Nni$;41| (|x| |n| $) (EXPT |x| |n|)) - -(PUT '|INT;odd?;$B;42| '|SPADreplace| 'ODDP) - -(DEFUN |INT;odd?;$B;42| (|x| $) (ODDP |x|)) - -(PUT '|INT;max;3$;43| '|SPADreplace| 'MAX) - -(DEFUN |INT;max;3$;43| (|x| |y| $) (MAX |x| |y|)) - -(PUT '|INT;min;3$;44| '|SPADreplace| 'MIN) - -(DEFUN |INT;min;3$;44| (|x| |y| $) (MIN |x| |y|)) - -(PUT '|INT;divide;2$R;45| '|SPADreplace| 'DIVIDE2) - -(DEFUN |INT;divide;2$R;45| (|x| |y| $) (DIVIDE2 |x| |y|)) - -(PUT '|INT;quo;3$;46| '|SPADreplace| 'QUOTIENT2) - -(DEFUN |INT;quo;3$;46| (|x| |y| $) (QUOTIENT2 |x| |y|)) - -(PUT '|INT;rem;3$;47| '|SPADreplace| 'REMAINDER2) - -(DEFUN |INT;rem;3$;47| (|x| |y| $) (REMAINDER2 |x| |y|)) - -(PUT '|INT;shift;3$;48| '|SPADreplace| 'ASH) - -(DEFUN |INT;shift;3$;48| (|x| |y| $) (ASH |x| |y|)) - -(DEFUN |INT;exquo;2$U;49| (|x| |y| $) - (COND - ((OR (ZEROP |y|) (NULL (ZEROP (REMAINDER2 |x| |y|)))) - (CONS 1 "failed")) - ('T (CONS 0 (QUOTIENT2 |x| |y|))))) - -(DEFUN |INT;recip;$U;50| (|x| $) - (COND - ((OR (EQL |x| 1) (EQL |x| -1)) (CONS 0 |x|)) - ('T (CONS 1 "failed")))) - -(PUT '|INT;gcd;3$;51| '|SPADreplace| 'GCD) - -(DEFUN |INT;gcd;3$;51| (|x| |y| $) (GCD |x| |y|)) - -(DEFUN |INT;unitNormal;$R;52| (|x| $) - (COND ((< |x| 0) (VECTOR -1 (- |x|) -1)) ('T (VECTOR 1 |x| 1)))) - -(PUT '|INT;unitCanonical;2$;53| '|SPADreplace| 'ABS) - -(DEFUN |INT;unitCanonical;2$;53| (|x| $) (ABS |x|)) - -(DEFUN |INT;solveLinearPolynomialEquation| (|lp| |p| $) - (SPADCALL |lp| |p| (|getShellEntry| $ 93))) - -(DEFUN |INT;squareFreePolynomial| (|p| $) - (SPADCALL |p| (|getShellEntry| $ 97))) - -(DEFUN |INT;factorPolynomial| (|p| $) - (PROG (|pp| #0=#:G1498) - (RETURN - (SEQ (LETT |pp| (SPADCALL |p| (|getShellEntry| $ 98)) - |INT;factorPolynomial|) - (EXIT (COND - ((EQL (SPADCALL |pp| (|getShellEntry| $ 99)) - (SPADCALL |p| (|getShellEntry| $ 99))) - (SPADCALL |p| (|getShellEntry| $ 101))) - ('T - (SPADCALL (SPADCALL |pp| (|getShellEntry| $ 101)) - (SPADCALL (CONS #'|INT;factorPolynomial!0| $) - (SPADCALL - (PROG2 (LETT #0# - (SPADCALL - (SPADCALL |p| - (|getShellEntry| $ 99)) - (SPADCALL |pp| - (|getShellEntry| $ 99)) - (|getShellEntry| $ 83)) - |INT;factorPolynomial|) - (QCDR #0#) - (|check-union| (QEQCAR #0# 0) $ #0#)) - (|getShellEntry| $ 104)) - (|getShellEntry| $ 108)) - (|getShellEntry| $ 110))))))))) - -(DEFUN |INT;factorPolynomial!0| (|#1| $) - (SPADCALL |#1| (|getShellEntry| $ 102))) - -(DEFUN |INT;factorSquareFreePolynomial| (|p| $) - (SPADCALL |p| (|getShellEntry| $ 111))) - -(DEFUN |INT;gcdPolynomial;3Sup;58| (|p| |q| $) - (COND - ((SPADCALL |p| (|getShellEntry| $ 112)) - (SPADCALL |q| (|getShellEntry| $ 113))) - ((SPADCALL |q| (|getShellEntry| $ 112)) - (SPADCALL |p| (|getShellEntry| $ 113))) - ('T (SPADCALL (LIST |p| |q|) (|getShellEntry| $ 116))))) - -(DEFUN |Integer| () - (PROG () - (RETURN - (PROG (#0=#:G1523) - (RETURN - (COND - ((LETT #0# (HGET |$ConstructorCache| '|Integer|) |Integer|) - (|CDRwithIncrement| (CDAR #0#))) - ('T - (UNWIND-PROTECT - (PROG1 (CDDAR (HPUT |$ConstructorCache| '|Integer| - (LIST - (CONS NIL (CONS 1 (|Integer;|)))))) - (LETT #0# T |Integer|)) - (COND - ((NOT #0#) (HREM |$ConstructorCache| '|Integer|))))))))))) - -(DEFUN |Integer;| () - (PROG (|dv$| $ |pv$|) - (RETURN - (PROGN - (LETT |dv$| '(|Integer|) . #0=(|Integer|)) - (LETT $ (|newShell| 132) . #0#) - (|setShellEntry| $ 0 |dv$|) - (|setShellEntry| $ 3 - (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#)) - (|haddProp| |$ConstructorCache| '|Integer| NIL (CONS 1 $)) - (|stuffDomainSlots| $) - (|setShellEntry| $ 71 - (|setShellEntry| $ 70 - (CONS (|dispatchFunction| |INT;*;I2$;40|) $))) - $)))) - -(MAKEPROP '|Integer| '|infovec| - (LIST '#(NIL NIL NIL NIL NIL NIL (|Void|) (|OpenMathDevice|) - (0 . |OMputApp|) (|String|) (5 . |OMputSymbol|) - (|Integer|) (12 . |OMputInteger|) (18 . |OMputEndApp|) - (|OpenMathEncoding|) (23 . |OMencodingXML|) - (27 . |OMopenString|) (33 . |OMputObject|) - (38 . |OMputEndObject|) (43 . |OMclose|) - |INT;OMwrite;$S;2| (|Boolean|) |INT;OMwrite;$BS;3| - |INT;OMwrite;Omd$V;4| |INT;OMwrite;Omd$BV;5| - |INT;zero?;$B;6| |INT;one?;$B;7| - (CONS IDENTITY - (FUNCALL (|dispatchFunction| |INT;Zero;$;8|) $)) - (CONS IDENTITY - (FUNCALL (|dispatchFunction| |INT;One;$;9|) $)) - |INT;base;$;10| |INT;copy;2$;11| |INT;inc;2$;12| - |INT;dec;2$;13| |INT;hash;2$;14| |INT;negative?;$B;15| - (|OutputForm|) (48 . |outputForm|) |INT;coerce;$Of;16| - |INT;coerce;I$;17| |INT;convert;$I;18| |INT;length;2$;19| - |INT;addmod;4$;20| |INT;submod;4$;21| |INT;mulmod;4$;22| - (|Float|) (53 . |coerce|) |INT;convert;$F;23| - (|DoubleFloat|) |INT;convert;$Df;24| (|InputForm|) - (58 . |convert|) |INT;convert;$If;25| |INT;convert;$S;26| - |INT;latex;$S;27| |INT;positiveRemainder;3$;28| - (|Matrix| 11) (|Matrix| $) |INT;reducedSystem;MM;29| - (|Vector| 11) (|Record| (|:| |mat| 55) (|:| |vec| 58)) - (|Vector| $) |INT;reducedSystem;MVR;30| |INT;abs;2$;31| - |INT;random;$;32| |INT;random;2$;33| |INT;=;2$B;34| - |INT;<;2$B;35| |INT;-;2$;36| |INT;+;3$;37| |INT;-;3$;38| - NIL NIL (|NonNegativeInteger|) |INT;**;$Nni$;41| - |INT;odd?;$B;42| |INT;max;3$;43| |INT;min;3$;44| - (|Record| (|:| |quotient| $) (|:| |remainder| $)) - |INT;divide;2$R;45| |INT;quo;3$;46| |INT;rem;3$;47| - |INT;shift;3$;48| (|Union| $ '"failed") |INT;exquo;2$U;49| - |INT;recip;$U;50| |INT;gcd;3$;51| - (|Record| (|:| |unit| $) (|:| |canonical| $) - (|:| |associate| $)) - |INT;unitNormal;$R;52| |INT;unitCanonical;2$;53| - (|SparseUnivariatePolynomial| 11) (|List| 89) - (|Union| 90 '"failed") - (|IntegerSolveLinearPolynomialEquation|) - (63 . |solveLinearPolynomialEquation|) - (|SparseUnivariatePolynomial| $$) (|Factored| 94) - (|UnivariatePolynomialSquareFree| $$ 94) - (69 . |squareFree|) (74 . |primitivePart|) - (79 . |leadingCoefficient|) (|GaloisGroupFactorizer| 94) - (84 . |factor|) (89 . |coerce|) (|Factored| $) - (94 . |factor|) (|Mapping| 94 $$) (|Factored| $$) - (|FactoredFunctions2| $$ 94) (99 . |map|) - (|FactoredFunctionUtilities| 94) (105 . |mergeFactors|) - (111 . |factorSquareFree|) (116 . |zero?|) - (121 . |unitCanonical|) (|List| 94) (|HeuGcd| 94) - (126 . |gcd|) (|SparseUnivariatePolynomial| $) - |INT;gcdPolynomial;3Sup;58| (|Fraction| 11) - (|Union| 119 '"failed") (|PatternMatchResult| 11 $) - (|Pattern| 11) (|Union| 11 '"failed") (|List| $) - (|Union| 124 '"failed") - (|Record| (|:| |coef| 124) (|:| |generator| $)) - (|Record| (|:| |coef1| $) (|:| |coef2| $)) - (|Union| 127 '"failed") - (|Record| (|:| |coef1| $) (|:| |coef2| $) - (|:| |generator| $)) - (|PositiveInteger|) (|SingleInteger|)) - '#(~= 131 |zero?| 137 |unitNormal| 142 |unitCanonical| 147 - |unit?| 152 |symmetricRemainder| 157 |subtractIfCan| 163 - |submod| 169 |squareFreePart| 176 |squareFree| 181 - |sizeLess?| 186 |sign| 192 |shift| 197 |sample| 203 - |retractIfCan| 207 |retract| 212 |rem| 217 |reducedSystem| - 223 |recip| 234 |rationalIfCan| 239 |rational?| 244 - |rational| 249 |random| 254 |quo| 263 |principalIdeal| 269 - |prime?| 274 |powmod| 279 |positiveRemainder| 286 - |positive?| 292 |permutation| 297 |patternMatch| 303 - |one?| 310 |odd?| 315 |nextItem| 320 |negative?| 325 - |multiEuclidean| 330 |mulmod| 336 |min| 343 |max| 349 - |mask| 355 |length| 360 |lcm| 365 |latex| 376 |invmod| 381 - |init| 387 |inc| 391 |hash| 396 |gcdPolynomial| 406 |gcd| - 412 |factorial| 423 |factor| 428 |extendedEuclidean| 433 - |exquo| 446 |expressIdealMember| 452 |even?| 458 - |euclideanSize| 463 |divide| 468 |differentiate| 474 |dec| - 485 |copy| 490 |convert| 495 |coerce| 525 |characteristic| - 545 |bit?| 549 |binomial| 555 |base| 561 |associates?| 565 - |addmod| 571 |abs| 578 ^ 583 |Zero| 595 |One| 599 - |OMwrite| 603 D 627 >= 638 > 644 = 650 <= 656 < 662 - 668 - + 679 ** 685 * 697) - '((|infinite| . 0) (|noetherian| . 0) - (|canonicalsClosed| . 0) (|canonical| . 0) - (|canonicalUnitNormal| . 0) (|multiplicativeValuation| . 0) - (|noZeroDivisors| . 0) ((|commutative| "*") . 0) - (|rightUnitary| . 0) (|leftUnitary| . 0) - (|unitsKnown| . 0)) - (CONS (|makeByteWordVec2| 1 - '(0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 - 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0)) - (CONS '#(|IntegerNumberSystem&| |EuclideanDomain&| - |UniqueFactorizationDomain&| NIL NIL - |GcdDomain&| |IntegralDomain&| |Algebra&| NIL - NIL |DifferentialRing&| |OrderedRing&| NIL NIL - |Module&| NIL NIL |Ring&| NIL NIL NIL NIL NIL - |AbelianGroup&| NIL NIL |AbelianMonoid&| - |Monoid&| NIL NIL |OrderedSet&| - |AbelianSemiGroup&| |SemiGroup&| NIL - |SetCategory&| NIL NIL NIL NIL NIL NIL NIL - |RetractableTo&| NIL |BasicType&| NIL) - (CONS '#((|IntegerNumberSystem|) - (|EuclideanDomain|) - (|UniqueFactorizationDomain|) - (|PrincipalIdealDomain|) - (|OrderedIntegralDomain|) (|GcdDomain|) - (|IntegralDomain|) (|Algebra| $$) - (|CharacteristicZero|) - (|LinearlyExplicitRingOver| 11) - (|DifferentialRing|) (|OrderedRing|) - (|CommutativeRing|) (|EntireRing|) - (|Module| $$) (|OrderedAbelianGroup|) - (|BiModule| $$ $$) (|Ring|) - (|OrderedCancellationAbelianMonoid|) - (|LeftModule| $$) (|Rng|) - (|RightModule| $$) - (|OrderedAbelianMonoid|) - (|AbelianGroup|) - (|OrderedAbelianSemiGroup|) - (|CancellationAbelianMonoid|) - (|AbelianMonoid|) (|Monoid|) - (|StepThrough|) (|PatternMatchable| 11) - (|OrderedSet|) (|AbelianSemiGroup|) - (|SemiGroup|) (|RealConstant|) - (|SetCategory|) (|OpenMath|) - (|ConvertibleTo| 9) (|ConvertibleTo| 44) - (|ConvertibleTo| 47) - (|CombinatorialFunctionCategory|) - (|ConvertibleTo| 122) - (|ConvertibleTo| 49) - (|RetractableTo| 11) - (|ConvertibleTo| 11) (|BasicType|) - (|CoercibleTo| 35)) - (|makeByteWordVec2| 131 - '(1 7 6 0 8 3 7 6 0 9 9 10 2 7 6 0 11 - 12 1 7 6 0 13 0 14 0 15 2 7 0 9 14 16 - 1 7 6 0 17 1 7 6 0 18 1 7 6 0 19 1 35 - 0 11 36 1 44 0 11 45 1 49 0 11 50 2 - 92 91 90 89 93 1 96 95 94 97 1 94 0 0 - 98 1 94 2 0 99 1 100 95 94 101 1 94 0 - 2 102 1 0 103 0 104 2 107 95 105 106 - 108 2 109 95 95 95 110 1 100 95 94 - 111 1 94 21 0 112 1 94 0 0 113 1 115 - 94 114 116 2 0 21 0 0 1 1 0 21 0 25 1 - 0 86 0 87 1 0 0 0 88 1 0 21 0 1 2 0 0 - 0 0 1 2 0 82 0 0 1 3 0 0 0 0 0 42 1 0 - 0 0 1 1 0 103 0 1 2 0 21 0 0 1 1 0 11 - 0 1 2 0 0 0 0 81 0 0 0 1 1 0 123 0 1 - 1 0 11 0 1 2 0 0 0 0 80 2 0 59 56 60 - 61 1 0 55 56 57 1 0 82 0 84 1 0 120 0 - 1 1 0 21 0 1 1 0 119 0 1 1 0 0 0 64 0 - 0 0 63 2 0 0 0 0 79 1 0 126 124 1 1 0 - 21 0 1 3 0 0 0 0 0 1 2 0 0 0 0 54 1 0 - 21 0 1 2 0 0 0 0 1 3 0 121 0 122 121 - 1 1 0 21 0 26 1 0 21 0 74 1 0 82 0 1 - 1 0 21 0 34 2 0 125 124 0 1 3 0 0 0 0 - 0 43 2 0 0 0 0 76 2 0 0 0 0 75 1 0 0 - 0 1 1 0 0 0 40 1 0 0 124 1 2 0 0 0 0 - 1 1 0 9 0 53 2 0 0 0 0 1 0 0 0 1 1 0 - 0 0 31 1 0 0 0 33 1 0 131 0 1 2 0 117 - 117 117 118 2 0 0 0 0 85 1 0 0 124 1 - 1 0 0 0 1 1 0 103 0 104 3 0 128 0 0 0 - 1 2 0 129 0 0 1 2 0 82 0 0 83 2 0 125 - 124 0 1 1 0 21 0 1 1 0 72 0 1 2 0 77 - 0 0 78 1 0 0 0 1 2 0 0 0 72 1 1 0 0 0 - 32 1 0 0 0 30 1 0 9 0 52 1 0 47 0 48 - 1 0 44 0 46 1 0 49 0 51 1 0 122 0 1 1 - 0 11 0 39 1 0 0 11 38 1 0 0 11 38 1 0 - 0 0 1 1 0 35 0 37 0 0 72 1 2 0 21 0 0 - 1 2 0 0 0 0 1 0 0 0 29 2 0 21 0 0 1 3 - 0 0 0 0 0 41 1 0 0 0 62 2 0 0 0 72 1 - 2 0 0 0 130 1 0 0 0 27 0 0 0 28 3 0 6 - 7 0 21 24 2 0 9 0 21 22 2 0 6 7 0 23 - 1 0 9 0 20 1 0 0 0 1 2 0 0 0 72 1 2 0 - 21 0 0 1 2 0 21 0 0 1 2 0 21 0 0 65 2 - 0 21 0 0 1 2 0 21 0 0 66 2 0 0 0 0 69 - 1 0 0 0 67 2 0 0 0 0 68 2 0 0 0 72 73 - 2 0 0 0 130 1 2 0 0 0 0 70 2 0 0 11 0 - 71 2 0 0 72 0 1 2 0 0 130 0 1))))) - '|lookupComplete|)) - -(MAKEPROP '|Integer| 'NILADIC T) -@ \section{domain NNI NonNegativeInteger} @@ -826,165 +286,7 @@ NonNegativeInteger: Join(OrderedAbelianMonoidSup,Monoid) with c pretend % @ -\section{NNI.lsp BOOTSTRAP} -{\bf NNI} depends on itself. We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf NNI} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf NNI.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. - -Note that this code is not included in the generated catdef.spad file. - -<<NNI.lsp BOOTSTRAP>>= - -(|/VERSIONCHECK| 2) - -(SETQ |$CategoryFrame| - (|put| - #1=(QUOTE |NonNegativeInteger|) - (QUOTE |SuperDomain|) - #2=(QUOTE (|Integer|)) - (|put| - #2# - #3=(QUOTE |SubDomain|) - (CONS - (QUOTE - (|NonNegativeInteger| - COND ((|<| |#1| 0) (QUOTE NIL)) ((QUOTE T) (QUOTE T)))) - (DELASC #1# (|get| #2# #3# |$CategoryFrame|))) - |$CategoryFrame|))) - -(PUT - (QUOTE |NNI;sup;3$;1|) - (QUOTE |SPADreplace|) - (QUOTE MAX)) - -(DEFUN |NNI;sup;3$;1| (|x| |y| |$|) (MAX |x| |y|)) -(PUT - (QUOTE |NNI;shift;$I$;2|) - (QUOTE |SPADreplace|) - (QUOTE ASH)) - -(DEFUN |NNI;shift;$I$;2| (|x| |n| |$|) (ASH |x| |n|)) - -(DEFUN |NNI;subtractIfCan;2$U;3| (|x| |y| |$|) - (PROG (|c|) - (RETURN - (SEQ - (LETT |c| (|-| |x| |y|) |NNI;subtractIfCan;2$U;3|) - (EXIT - (COND - ((|<| |c| 0) (CONS 1 "failed")) - ((QUOTE T) (CONS 0 |c|)))))))) - -(DEFUN |NonNegativeInteger| NIL - (PROG NIL - (RETURN - (PROG (#1=#:G96708) - (RETURN - (COND - ((LETT #1# - (HGET |$ConstructorCache| (QUOTE |NonNegativeInteger|)) - |NonNegativeInteger|) - (|CDRwithIncrement| (CDAR #1#))) - ((QUOTE T) - (|UNWIND-PROTECT| - (PROG1 - (CDDAR - (HPUT - |$ConstructorCache| - (QUOTE |NonNegativeInteger|) - (LIST (CONS NIL (CONS 1 (|NonNegativeInteger;|)))))) - (LETT #1# T |NonNegativeInteger|)) - (COND - ((NOT #1#) - (HREM - |$ConstructorCache| - (QUOTE |NonNegativeInteger|)))))))))))) - -(DEFUN |NonNegativeInteger;| NIL - (PROG (|dv$| |$| |pv$|) - (RETURN - (PROGN - (LETT |dv$| (QUOTE (|NonNegativeInteger|)) . #1=(|NonNegativeInteger|)) - (LETT |$| (GETREFV 17) . #1#) - (QSETREFV |$| 0 |dv$|) - (QSETREFV |$| 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #1#)) - (|haddProp| - |$ConstructorCache| - (QUOTE |NonNegativeInteger|) - NIL - (CONS 1 |$|)) - (|stuffDomainSlots| |$|) |$|)))) - -(MAKEPROP - (QUOTE |NonNegativeInteger|) - (QUOTE |infovec|) - (LIST - (QUOTE - #(NIL NIL NIL NIL NIL - (|Integer|) - |NNI;sup;3$;1| - |NNI;shift;$I$;2| - (|Union| |$| (QUOTE "failed")) - |NNI;subtractIfCan;2$U;3| - (|Record| (|:| |quotient| |$|) (|:| |remainder| |$|)) - (|PositiveInteger|) - (|Boolean|) - (|NonNegativeInteger|) - (|SingleInteger|) - (|String|) - (|OutputForm|))) - (QUOTE - #(|~=| 0 |zero?| 6 |sup| 11 |subtractIfCan| 17 |shift| 23 |sample| 29 - |rem| 33 |recip| 39 |random| 44 |quo| 49 |one?| 55 |min| 60 |max| 66 - |latex| 72 |hash| 77 |gcd| 82 |exquo| 88 |divide| 94 |coerce| 100 - |^| 105 |Zero| 117 |One| 121 |>=| 125 |>| 131 |=| 137 |<=| 143 - |<| 149 |+| 155 |**| 161 |*| 173)) - (QUOTE (((|commutative| "*") . 0))) - (CONS - (|makeByteWordVec2| 1 (QUOTE (0 0 0 0 0 0 0 0 0 0 0 0 0))) - (CONS - (QUOTE - #(NIL NIL NIL NIL NIL - |Monoid&| - |AbelianMonoid&| - |OrderedSet&| - |SemiGroup&| - |AbelianSemiGroup&| - |SetCategory&| - |BasicType&| - NIL)) - (CONS - (QUOTE - #((|OrderedAbelianMonoidSup|) - (|OrderedCancellationAbelianMonoid|) - (|OrderedAbelianMonoid|) - (|OrderedAbelianSemiGroup|) - (|CancellationAbelianMonoid|) - (|Monoid|) - (|AbelianMonoid|) - (|OrderedSet|) - (|SemiGroup|) - (|AbelianSemiGroup|) - (|SetCategory|) - (|BasicType|) - (|CoercibleTo| 16))) - (|makeByteWordVec2| 16 - (QUOTE - (2 0 12 0 0 1 1 0 12 0 1 2 0 0 0 0 6 2 0 8 0 0 9 2 0 0 0 5 7 0 0 - 0 1 2 0 0 0 0 1 1 0 8 0 1 1 0 0 0 1 2 0 0 0 0 1 1 0 12 0 1 2 0 - 0 0 0 1 2 0 0 0 0 1 1 0 15 0 1 1 0 14 0 1 2 0 0 0 0 1 2 0 8 0 0 - 1 2 0 10 0 0 1 1 0 16 0 1 2 0 0 0 11 1 2 0 0 0 13 1 0 0 0 1 0 0 - 0 1 2 0 12 0 0 1 2 0 12 0 0 1 2 0 12 0 0 1 2 0 12 0 0 1 2 0 12 - 0 0 1 2 0 0 0 0 1 2 0 0 0 11 1 2 0 0 0 13 1 2 0 0 0 0 1 2 0 0 - 11 0 1 2 0 0 13 0 1)))))) - (QUOTE |lookupComplete|))) - -(MAKEPROP (QUOTE |NonNegativeInteger|) (QUOTE NILADIC) T) - -@ \section{domain PI PositiveInteger} <<domain PI PositiveInteger>>= )abbrev domain PI PositiveInteger @@ -1007,92 +309,8 @@ PositiveInteger: Join(OrderedAbelianSemiGroup,Monoid) with y:% @ -\section{PI.lsp BOOTSTRAP} -{\bf PI} depends on itself. We need to break this cycle to build -the algebra. So we keep a cached copy of the translated {\bf PI} -category which we can write into the {\bf MID} directory. We compile -the lisp code and copy the {\bf PI.o} file to the {\bf OUT} directory. -This is eventually forcibly replaced by a recompiled version. -Note that this code is not included in the generated catdef.spad file. -<<PI.lsp BOOTSTRAP>>= - -(/VERSIONCHECK 2) - -(SETQ |$CategoryFrame| - (|put| #0='|PositiveInteger| '|SuperDomain| - #1='(|NonNegativeInteger|) - (|put| #1# '|SubDomain| - (CONS '(|PositiveInteger| < 0 |#1|) - (DELASC #0# - (|get| #1# '|SubDomain| - |$CategoryFrame|))) - |$CategoryFrame|))) - -(DEFUN |PositiveInteger| () - (PROG () - (RETURN - (PROG (#0=#:G1396) - (RETURN - (COND - ((LETT #0# (HGET |$ConstructorCache| '|PositiveInteger|) - |PositiveInteger|) - (|CDRwithIncrement| (CDAR #0#))) - ('T - (UNWIND-PROTECT - (PROG1 (CDDAR (HPUT |$ConstructorCache| - '|PositiveInteger| - (LIST - (CONS NIL - (CONS 1 (|PositiveInteger;|)))))) - (LETT #0# T |PositiveInteger|)) - (COND - ((NOT #0#) - (HREM |$ConstructorCache| '|PositiveInteger|))))))))))) - -(DEFUN |PositiveInteger;| () - (PROG (|dv$| $ |pv$|) - (RETURN - (PROGN - (LETT |dv$| '(|PositiveInteger|) . #0=(|PositiveInteger|)) - (LETT $ (|newShell| 12) . #0#) - (|setShellEntry| $ 0 |dv$|) - (|setShellEntry| $ 3 - (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#)) - (|haddProp| |$ConstructorCache| '|PositiveInteger| NIL - (CONS 1 $)) - (|stuffDomainSlots| $) - $)))) - -(MAKEPROP '|PositiveInteger| '|infovec| - (LIST '#(NIL NIL NIL NIL NIL (|NonNegativeInteger|) - (|PositiveInteger|) (|Boolean|) (|Union| $ '"failed") - (|SingleInteger|) (|String|) (|OutputForm|)) - '#(~= 0 |sample| 6 |recip| 10 |one?| 15 |min| 20 |max| 26 - |latex| 32 |hash| 37 |gcd| 42 |coerce| 48 ^ 53 |One| 65 >= - 69 > 75 = 81 <= 87 < 93 + 99 ** 105 * 117) - '(((|commutative| "*") . 0)) - (CONS (|makeByteWordVec2| 1 '(0 0 0 0 0 0 0 0)) - (CONS '#(NIL |Monoid&| |OrderedSet&| |SemiGroup&| - |AbelianSemiGroup&| |SetCategory&| - |BasicType&| NIL) - (CONS '#((|OrderedAbelianSemiGroup|) (|Monoid|) - (|OrderedSet|) (|SemiGroup|) - (|AbelianSemiGroup|) (|SetCategory|) - (|BasicType|) (|CoercibleTo| 11)) - (|makeByteWordVec2| 11 - '(2 0 7 0 0 1 0 0 0 1 1 0 8 0 1 1 0 7 0 - 1 2 0 0 0 0 1 2 0 0 0 0 1 1 0 10 0 1 - 1 0 9 0 1 2 0 0 0 0 1 1 0 11 0 1 2 0 - 0 0 6 1 2 0 0 0 5 1 0 0 0 1 2 0 7 0 0 - 1 2 0 7 0 0 1 2 0 7 0 0 1 2 0 7 0 0 1 - 2 0 7 0 0 1 2 0 0 0 0 1 2 0 0 0 6 1 2 - 0 0 0 5 1 2 0 0 0 0 1 2 0 0 6 0 1))))) - '|lookupComplete|)) - -(MAKEPROP '|PositiveInteger| 'NILADIC T) -@ \section{domain ROMAN RomanNumeral} <<domain ROMAN RomanNumeral>>= )abbrev domain ROMAN RomanNumeral |