diff options
-rw-r--r-- | src/ChangeLog | 8 | ||||
-rw-r--r-- | src/algebra/catdef.spad.pamphlet | 1 | ||||
-rw-r--r-- | src/algebra/integer.spad.pamphlet | 4 | ||||
-rw-r--r-- | src/algebra/strap/DFLOAT.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/EUCDOM-.lsp | 92 | ||||
-rw-r--r-- | src/algebra/strap/EUCDOM.lsp | 2 | ||||
-rw-r--r-- | src/algebra/strap/INT.lsp | 201 | ||||
-rw-r--r-- | src/testsuite/interpreter/aw-103.input | 3 |
8 files changed, 157 insertions, 156 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index 9bc4f6b7..c5619815 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,13 @@ 2009-02-07 Gabriel Dos Reis <gdr@cs.tamu.edu> + Fix AW/103 + * algebra/catdef.spad.pamphlet (exquo$EuclideanDomain): Return 0 + if first argument is 0. + * algebra/integer.spad.pamphlet (exquo$Integer): Remove. + * testsuite/interpreter/aw-103.input: New. + +2009-02-07 Gabriel Dos Reis <gdr@cs.tamu.edu> + Fix AW/66 * algebra/zerodim.spad.pamphlet: Restore use of one? * algebra/updivp.spad.pamphlet: Likewise. diff --git a/src/algebra/catdef.spad.pamphlet b/src/algebra/catdef.spad.pamphlet index fae3896f..4cfca15c 100644 --- a/src/algebra/catdef.spad.pamphlet +++ b/src/algebra/catdef.spad.pamphlet @@ -525,6 +525,7 @@ EuclideanDomain(): Category == PrincipalIdealDomain with x quo y == divide(x,y).quotient --divide must be user-supplied x rem y == divide(x,y).remainder x exquo y == + zero? x => 0 zero? y => "failed" qr:=divide(x,y) zero?(qr.remainder) => qr.quotient diff --git a/src/algebra/integer.spad.pamphlet b/src/algebra/integer.spad.pamphlet index f25af008..ee06f056 100644 --- a/src/algebra/integer.spad.pamphlet +++ b/src/algebra/integer.spad.pamphlet @@ -194,10 +194,6 @@ Integer: Join(IntegerNumberSystem, ConvertibleTo String, OpenMath) with x quo y == QUOTIENT2(x,y)$Lisp x rem y == REMAINDER2(x,y)$Lisp shift(x, y) == ASH(x,y)$Lisp - x exquo y == - zero? y => "failed" - zero?(x rem y) => x quo y - "failed" recip(x) == if one? x or x=-1 then x else "failed" gcd(x,y) == GCD(x,y)$Lisp UCA ==> Record(unit:%,canonical:%,associate:%) diff --git a/src/algebra/strap/DFLOAT.lsp b/src/algebra/strap/DFLOAT.lsp index 97c30162..d3096b93 100644 --- a/src/algebra/strap/DFLOAT.lsp +++ b/src/algebra/strap/DFLOAT.lsp @@ -904,7 +904,7 @@ (DEFUN |DoubleFloat| () (PROG () (RETURN - (PROG (#0=#:G1562) + (PROG (#0=#:G1561) (RETURN (COND ((LETT #0# (HGET |$ConstructorCache| '|DoubleFloat|) diff --git a/src/algebra/strap/EUCDOM-.lsp b/src/algebra/strap/EUCDOM-.lsp index 1cd2b434..ba98d42c 100644 --- a/src/algebra/strap/EUCDOM-.lsp +++ b/src/algebra/strap/EUCDOM-.lsp @@ -53,6 +53,8 @@ (PROG (|qr|) (RETURN (SEQ (COND + ((SPADCALL |x| (|getShellEntry| $ 8)) + (CONS 0 (|spadConstant| $ 16))) ((SPADCALL |y| (|getShellEntry| $ 8)) (CONS 1 "failed")) ('T (SEQ (LETT |qr| (SPADCALL |x| |y| (|getShellEntry| $ 13)) @@ -66,9 +68,9 @@ (DEFUN |EUCDOM-;gcd;3S;5| (|x| |y| $) (PROG (|#G13| |#G14|) (RETURN - (SEQ (LETT |x| (SPADCALL |x| (|getShellEntry| $ 18)) + (SEQ (LETT |x| (SPADCALL |x| (|getShellEntry| $ 19)) |EUCDOM-;gcd;3S;5|) - (LETT |y| (SPADCALL |y| (|getShellEntry| $ 18)) + (LETT |y| (SPADCALL |y| (|getShellEntry| $ 19)) |EUCDOM-;gcd;3S;5|) (SEQ G190 (COND @@ -77,12 +79,12 @@ (SEQ (PROGN (LETT |#G13| |y| |EUCDOM-;gcd;3S;5|) (LETT |#G14| - (SPADCALL |x| |y| (|getShellEntry| $ 19)) + (SPADCALL |x| |y| (|getShellEntry| $ 20)) |EUCDOM-;gcd;3S;5|) (LETT |x| |#G13| |EUCDOM-;gcd;3S;5|) (LETT |y| |#G14| |EUCDOM-;gcd;3S;5|)) (EXIT (LETT |y| - (SPADCALL |y| (|getShellEntry| $ 18)) + (SPADCALL |y| (|getShellEntry| $ 19)) |EUCDOM-;gcd;3S;5|))) NIL (GO G190) G191 (EXIT NIL)) (EXIT |x|))))) @@ -92,7 +94,7 @@ (RETURN (SEQ (PROGN (LETT |#G16| - (SPADCALL (QVELT |s| 2) (|getShellEntry| $ 22)) + (SPADCALL (QVELT |s| 2) (|getShellEntry| $ 23)) |EUCDOM-;unitNormalizeIdealElt|) (LETT |u| (QVELT |#G16| 0) |EUCDOM-;unitNormalizeIdealElt|) @@ -102,12 +104,12 @@ |EUCDOM-;unitNormalizeIdealElt|) |#G16|) (EXIT (COND - ((SPADCALL |a| (|getShellEntry| $ 23)) |s|) + ((SPADCALL |a| (|getShellEntry| $ 24)) |s|) ('T (VECTOR (SPADCALL |a| (QVELT |s| 0) - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) (SPADCALL |a| (QVELT |s| 1) - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) |c|)))))))) (DEFUN |EUCDOM-;extendedEuclidean;2SR;7| (|x| |y| $) @@ -115,14 +117,14 @@ (RETURN (SEQ (LETT |s1| (|EUCDOM-;unitNormalizeIdealElt| - (VECTOR (|spadConstant| $ 25) - (|spadConstant| $ 26) |x|) + (VECTOR (|spadConstant| $ 26) + (|spadConstant| $ 16) |x|) $) |EUCDOM-;extendedEuclidean;2SR;7|) (LETT |s2| (|EUCDOM-;unitNormalizeIdealElt| - (VECTOR (|spadConstant| $ 26) - (|spadConstant| $ 25) |y|) + (VECTOR (|spadConstant| $ 16) + (|spadConstant| $ 26) |y|) $) |EUCDOM-;extendedEuclidean;2SR;7|) (EXIT (COND @@ -145,12 +147,12 @@ (SPADCALL (QVELT |s1| 0) (SPADCALL (QCAR |qr|) (QVELT |s2| 0) - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) (|getShellEntry| $ 27)) (SPADCALL (QVELT |s1| 1) (SPADCALL (QCAR |qr|) (QVELT |s2| 1) - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) (|getShellEntry| $ 27)) (QCDR |qr|)) |EUCDOM-;extendedEuclidean;2SR;7|) @@ -176,7 +178,7 @@ (QSETVELT |s1| 1 (SPADCALL (QVELT |s1| 1) (SPADCALL (QCAR |qr|) |x| - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) (|getShellEntry| $ 29))) (EXIT (LETT |s1| @@ -191,7 +193,7 @@ (SEQ (COND ((SPADCALL |z| (|getShellEntry| $ 8)) (CONS 0 - (CONS (|spadConstant| $ 26) (|spadConstant| $ 26)))) + (CONS (|spadConstant| $ 16) (|spadConstant| $ 16)))) ('T (SEQ (LETT |s| (SPADCALL |x| |y| (|getShellEntry| $ 32)) |EUCDOM-;extendedEuclidean;3SU;8|) @@ -205,16 +207,16 @@ (CONS 0 (CONS (SPADCALL (QVELT |s| 0) (QCDR |w|) - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) (SPADCALL (QVELT |s| 1) (QCDR |w|) - (|getShellEntry| $ 24))))) + (|getShellEntry| $ 25))))) ('T (SEQ (LETT |qr| (SPADCALL (SPADCALL (QVELT |s| 0) (QCDR |w|) - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) |y| (|getShellEntry| $ 13)) |EUCDOM-;extendedEuclidean;3SU;8|) (EXIT (CONS 0 @@ -222,13 +224,13 @@ (SPADCALL (SPADCALL (QVELT |s| 1) (QCDR |w|) - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) (SPADCALL (QCAR |qr|) |x| - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) (|getShellEntry| $ 29)))))))))))))))) (DEFUN |EUCDOM-;principalIdeal;LR;9| (|l| $) - (PROG (|uca| |v| |u| #0=#:G1517 |vv| #1=#:G1518) + (PROG (|uca| |v| |u| #0=#:G1519 |vv| #1=#:G1520) (RETURN (SEQ (COND ((SPADCALL |l| NIL (|getShellEntry| $ 38)) @@ -236,7 +238,7 @@ ((SPADCALL (CDR |l|) NIL (|getShellEntry| $ 38)) (SEQ (LETT |uca| (SPADCALL (|SPADfirst| |l|) - (|getShellEntry| $ 22)) + (|getShellEntry| $ 23)) |EUCDOM-;principalIdeal;LR;9|) (EXIT (CONS (LIST (QVELT |uca| 0)) (QVELT |uca| 1))))) ((SPADCALL (CDR (CDR |l|)) NIL (|getShellEntry| $ 38)) @@ -278,7 +280,7 @@ (CONS (SPADCALL (QVELT |u| 1) |vv| - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) #0#) |EUCDOM-;principalIdeal;LR;9|))) (LETT #1# (CDR #1#) @@ -288,10 +290,10 @@ (QVELT |u| 2)))))))))) (DEFUN |EUCDOM-;expressIdealMember;LSU;10| (|l| |z| $) - (PROG (#0=#:G1519 #1=#:G1520 |pid| |q| #2=#:G1521 |v| #3=#:G1522) + (PROG (#0=#:G1521 #1=#:G1522 |pid| |q| #2=#:G1523 |v| #3=#:G1524) (RETURN (SEQ (COND - ((SPADCALL |z| (|spadConstant| $ 26) + ((SPADCALL |z| (|spadConstant| $ 16) (|getShellEntry| $ 44)) (CONS 0 (PROGN @@ -310,7 +312,7 @@ NIL)) (GO G191))) (SEQ (EXIT (LETT #0# - (CONS (|spadConstant| $ 26) #0#) + (CONS (|spadConstant| $ 16) #0#) |EUCDOM-;expressIdealMember;LSU;10|))) (LETT #1# (CDR #1#) |EUCDOM-;expressIdealMember;LSU;10|) @@ -347,7 +349,7 @@ (LETT #2# (CONS (SPADCALL (QCDR |q|) |v| - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) #2#) |EUCDOM-;expressIdealMember;LSU;10|))) (LETT #3# (CDR #3#) @@ -356,9 +358,9 @@ (EXIT (NREVERSE0 #2#))))))))))))))) (DEFUN |EUCDOM-;multiEuclidean;LSU;11| (|l| |z| $) - (PROG (|n| |l1| |l2| #0=#:G1398 #1=#:G1523 #2=#:G1504 #3=#:G1502 - #4=#:G1503 #5=#:G1399 #6=#:G1524 #7=#:G1507 #8=#:G1505 - #9=#:G1506 |u| |v1| |v2|) + (PROG (|n| |l1| |l2| #0=#:G1398 #1=#:G1525 #2=#:G1506 #3=#:G1504 + #4=#:G1505 #5=#:G1399 #6=#:G1526 #7=#:G1509 #8=#:G1507 + #9=#:G1508 |u| |v1| |v2|) (RETURN (SEQ (LETT |n| (LENGTH |l|) |EUCDOM-;multiEuclidean;LSU;11|) (EXIT (COND @@ -400,7 +402,7 @@ (#4# (LETT #3# (SPADCALL #3# #2# - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) |EUCDOM-;multiEuclidean;LSU;11|)) ('T (PROGN @@ -413,7 +415,7 @@ (GO G190) G191 (EXIT NIL)) (COND (#4# #3#) - ('T (|spadConstant| $ 25)))) + ('T (|spadConstant| $ 26)))) (PROGN (LETT #9# NIL |EUCDOM-;multiEuclidean;LSU;11|) @@ -439,7 +441,7 @@ (#9# (LETT #8# (SPADCALL #8# #7# - (|getShellEntry| $ 24)) + (|getShellEntry| $ 25)) |EUCDOM-;multiEuclidean;LSU;11|)) ('T (PROGN @@ -452,7 +454,7 @@ (GO G190) G191 (EXIT NIL)) (COND (#9# #8#) - ('T (|spadConstant| $ 25)))) + ('T (|spadConstant| $ 26)))) |z| (|getShellEntry| $ 50)) |EUCDOM-;multiEuclidean;LSU;11|) (EXIT (COND @@ -505,12 +507,12 @@ |EUCDOM-;sizeLess?;2SB;1| (|Record| (|:| |quotient| $) (|:| |remainder| $)) (10 . |divide|) |EUCDOM-;quo;3S;2| |EUCDOM-;rem;3S;3| - (|Union| $ '"failed") |EUCDOM-;exquo;2SU;4| - (16 . |unitCanonical|) (21 . |rem|) |EUCDOM-;gcd;3S;5| + (16 . |Zero|) (|Union| $ '"failed") |EUCDOM-;exquo;2SU;4| + (20 . |unitCanonical|) (25 . |rem|) |EUCDOM-;gcd;3S;5| (|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $)) - (27 . |unitNormal|) (32 . |one?|) (37 . *) (43 . |One|) - (47 . |Zero|) (51 . -) (57 . |sizeLess?|) (63 . +) + (31 . |unitNormal|) (36 . |one?|) (41 . *) (47 . |One|) + (51 . -) (57 . |sizeLess?|) (63 . +) (|Record| (|:| |coef1| $) (|:| |coef2| $) (|:| |generator| $)) |EUCDOM-;extendedEuclidean;2SR;7| @@ -533,16 +535,16 @@ (CONS '#() (CONS '#() (|makeByteWordVec2| 53 - '(1 6 7 0 8 1 6 9 0 10 2 6 12 0 0 13 1 - 6 0 0 18 2 6 0 0 0 19 1 6 21 0 22 1 6 - 7 0 23 2 6 0 0 0 24 0 6 0 25 0 6 0 26 + '(1 6 7 0 8 1 6 9 0 10 2 6 12 0 0 13 0 + 6 0 16 1 6 0 0 19 2 6 0 0 0 20 1 6 22 + 0 23 1 6 7 0 24 2 6 0 0 0 25 0 6 0 26 2 6 0 0 0 27 2 6 7 0 0 28 2 6 0 0 0 - 29 2 6 30 0 0 32 2 6 16 0 0 33 2 37 7 + 29 2 6 30 0 0 32 2 6 17 0 0 33 2 37 7 0 0 38 1 37 6 0 39 1 6 41 40 42 2 6 7 0 0 44 1 37 0 0 47 2 37 0 0 48 49 3 6 35 0 0 0 50 2 6 45 40 0 51 2 37 0 0 0 52 2 0 7 0 0 11 2 0 0 0 0 15 2 0 0 0 0 14 1 0 41 40 43 2 0 45 40 0 53 2 0 - 0 0 0 20 3 0 35 0 0 0 36 2 0 30 0 0 - 31 2 0 16 0 0 17 2 0 45 40 0 46))))) + 0 0 0 21 3 0 35 0 0 0 36 2 0 30 0 0 + 31 2 0 17 0 0 18 2 0 45 40 0 46))))) '|lookupComplete|)) diff --git a/src/algebra/strap/EUCDOM.lsp b/src/algebra/strap/EUCDOM.lsp index fae7626f..f9666922 100644 --- a/src/algebra/strap/EUCDOM.lsp +++ b/src/algebra/strap/EUCDOM.lsp @@ -4,7 +4,7 @@ (DEFPARAMETER |EuclideanDomain;AL| 'NIL) (DEFUN |EuclideanDomain;| () - (PROG (#0=#:G1414) + (PROG (#0=#:G1415) (RETURN (PROG1 (LETT #0# (|Join| (|PrincipalIdealDomain|) diff --git a/src/algebra/strap/INT.lsp b/src/algebra/strap/INT.lsp index 07f142fa..fd48fd1a 100644 --- a/src/algebra/strap/INT.lsp +++ b/src/algebra/strap/INT.lsp @@ -215,24 +215,21 @@ (PUT '|INT;shift;3$;48| '|SPADreplace| 'ASH) -(DECLAIM (FTYPE (FUNCTION (|%Integer| |%Integer| |%Shell|) |%Pair|) - |INT;exquo;2$U;49|)) - (DECLAIM (FTYPE (FUNCTION (|%Integer| |%Shell|) |%Pair|) - |INT;recip;$U;50|)) + |INT;recip;$U;49|)) (DECLAIM (FTYPE (FUNCTION (|%Integer| |%Integer| |%Shell|) |%Integer|) - |INT;gcd;3$;51|)) + |INT;gcd;3$;50|)) -(PUT '|INT;gcd;3$;51| '|SPADreplace| 'GCD) +(PUT '|INT;gcd;3$;50| '|SPADreplace| 'GCD) (DECLAIM (FTYPE (FUNCTION (|%Integer| |%Shell|) |%Shell|) - |INT;unitNormal;$R;52|)) + |INT;unitNormal;$R;51|)) (DECLAIM (FTYPE (FUNCTION (|%Integer| |%Shell|) |%Integer|) - |INT;unitCanonical;2$;53|)) + |INT;unitCanonical;2$;52|)) -(PUT '|INT;unitCanonical;2$;53| '|SPADreplace| 'ABS) +(PUT '|INT;unitCanonical;2$;52| '|SPADreplace| 'ABS) (DECLAIM (FTYPE (FUNCTION (|%List| |%Thing| |%Shell|) |%Pair|) |INT;solveLinearPolynomialEquation|)) @@ -247,7 +244,7 @@ |INT;factorSquareFreePolynomial|)) (DECLAIM (FTYPE (FUNCTION (|%Thing| |%Thing| |%Shell|) |%Thing|) - |INT;gcdPolynomial;3Sup;58|)) + |INT;gcdPolynomial;3Sup;57|)) (DEFUN |INT;writeOMInt| (|dev| |x| $) (SEQ (COND @@ -336,7 +333,7 @@ (INTEGER-LENGTH |a|)) (DEFUN |INT;addmod;4$;20| (|a| |b| |p| $) - (PROG (|c| #0=#:G1434) + (PROG (|c| #0=#:G1432) (RETURN (SEQ (EXIT (SEQ (SEQ (LETT |c| (+ |a| |b|) |INT;addmod;4$;20|) (EXIT (COND @@ -437,52 +434,46 @@ (DECLARE (IGNORE $)) (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| $) +(DEFUN |INT;recip;$U;49| (|x| $) (COND ((OR (EQL |x| 1) (EQL |x| -1)) (CONS 0 |x|)) ('T (CONS 1 "failed")))) -(DEFUN |INT;gcd;3$;51| (|x| |y| $) (DECLARE (IGNORE $)) (GCD |x| |y|)) +(DEFUN |INT;gcd;3$;50| (|x| |y| $) (DECLARE (IGNORE $)) (GCD |x| |y|)) -(DEFUN |INT;unitNormal;$R;52| (|x| $) +(DEFUN |INT;unitNormal;$R;51| (|x| $) (COND ((< |x| 0) (VECTOR -1 (- |x|) -1)) ('T (VECTOR 1 |x| 1)))) -(DEFUN |INT;unitCanonical;2$;53| (|x| $) +(DEFUN |INT;unitCanonical;2$;52| (|x| $) (DECLARE (IGNORE $)) (ABS |x|)) (DEFUN |INT;solveLinearPolynomialEquation| (|lp| |p| $) - (SPADCALL |lp| |p| (|getShellEntry| $ 94))) + (SPADCALL |lp| |p| (|getShellEntry| $ 93))) (DEFUN |INT;squareFreePolynomial| (|p| $) - (SPADCALL |p| (|getShellEntry| $ 98))) + (SPADCALL |p| (|getShellEntry| $ 97))) (DEFUN |INT;factorPolynomial| (|p| $) - (PROG (|pp| #0=#:G1506) + (PROG (|pp| #0=#:G1498) (RETURN - (SEQ (LETT |pp| (SPADCALL |p| (|getShellEntry| $ 99)) + (SEQ (LETT |pp| (SPADCALL |p| (|getShellEntry| $ 98)) |INT;factorPolynomial|) (EXIT (COND - ((EQL (SPADCALL |pp| (|getShellEntry| $ 100)) - (SPADCALL |p| (|getShellEntry| $ 100))) - (SPADCALL |p| (|getShellEntry| $ 102))) + ((EQL (SPADCALL |pp| (|getShellEntry| $ 99)) + (SPADCALL |p| (|getShellEntry| $ 99))) + (SPADCALL |p| (|getShellEntry| $ 101))) ('T - (SPADCALL (SPADCALL |pp| (|getShellEntry| $ 102)) + (SPADCALL (SPADCALL |pp| (|getShellEntry| $ 101)) (SPADCALL (CONS #'|INT;factorPolynomial!0| $) (SPADCALL (PROG2 (LETT #0# - (|INT;exquo;2$U;49| + (SPADCALL (SPADCALL |p| - (|getShellEntry| $ 100)) + (|getShellEntry| $ 99)) (SPADCALL |pp| - (|getShellEntry| $ 100)) - $) + (|getShellEntry| $ 99)) + (|getShellEntry| $ 103)) |INT;factorPolynomial|) (QCDR #0#) (|check-union| (QEQCAR #0# 0) $ #0#)) @@ -491,12 +482,12 @@ (|getShellEntry| $ 111))))))))) (DEFUN |INT;factorPolynomial!0| (|#1| $) - (SPADCALL |#1| (|getShellEntry| $ 103))) + (SPADCALL |#1| (|getShellEntry| $ 102))) (DEFUN |INT;factorSquareFreePolynomial| (|p| $) (SPADCALL |p| (|getShellEntry| $ 112))) -(DEFUN |INT;gcdPolynomial;3Sup;58| (|p| |q| $) +(DEFUN |INT;gcdPolynomial;3Sup;57| (|p| |q| $) (COND ((SPADCALL |p| (|getShellEntry| $ 113)) (SPADCALL |q| (|getShellEntry| $ 114))) @@ -507,7 +498,7 @@ (DEFUN |Integer| () (PROG () (RETURN - (PROG (#0=#:G1531) + (PROG (#0=#:G1523) (RETURN (COND ((LETT #0# (HGET |$ConstructorCache| '|Integer|) |Integer|) @@ -570,27 +561,27 @@ |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| + |INT;shift;3$;48| (|Union| $ '"failed") |INT;recip;$U;49| + |INT;gcd;3$;50| (|Record| (|:| |unit| $) (|:| |canonical| $) (|:| |associate| $)) - |INT;unitNormal;$R;52| |INT;unitCanonical;2$;53| - (|SparseUnivariatePolynomial| 11) (|List| 90) - (|Union| 91 '"failed") + |INT;unitNormal;$R;51| |INT;unitCanonical;2$;52| + (|SparseUnivariatePolynomial| 11) (|List| 89) + (|Union| 90 '"failed") (|IntegerSolveLinearPolynomialEquation|) (63 . |solveLinearPolynomialEquation|) - (|SparseUnivariatePolynomial| $$) (|Factored| 95) - (|UnivariatePolynomialSquareFree| $$ 95) + (|SparseUnivariatePolynomial| $$) (|Factored| 94) + (|UnivariatePolynomialSquareFree| $$ 94) (69 . |squareFree|) (74 . |primitivePart|) - (79 . |leadingCoefficient|) (|GaloisGroupFactorizer| 95) - (84 . |factor|) (89 . |coerce|) (|Factored| $) - (94 . |factor|) (|Mapping| 95 $$) (|Factored| $$) - (|FactoredFunctions2| $$ 95) (99 . |map|) - (|FactoredFunctionUtilities| 95) (105 . |mergeFactors|) - (111 . |factorSquareFree|) (116 . |zero?|) - (121 . |unitCanonical|) (|List| 95) (|HeuGcd| 95) - (126 . |gcd|) (|SparseUnivariatePolynomial| $) - |INT;gcdPolynomial;3Sup;58| (|Fraction| 11) + (79 . |leadingCoefficient|) (|GaloisGroupFactorizer| 94) + (84 . |factor|) (89 . |coerce|) (94 . |exquo|) + (|Factored| $) (100 . |factor|) (|Mapping| 94 $$) + (|Factored| $$) (|FactoredFunctions2| $$ 94) (105 . |map|) + (|FactoredFunctionUtilities| 94) (111 . |mergeFactors|) + (117 . |factorSquareFree|) (122 . |zero?|) + (127 . |unitCanonical|) (|List| 94) (|HeuGcd| 94) + (132 . |gcd|) (|SparseUnivariatePolynomial| $) + |INT;gcdPolynomial;3Sup;57| (|Fraction| 11) (|Union| 120 '"failed") (|PatternMatchResult| 11 $) (|Pattern| 11) (|Union| 11 '"failed") (|List| $) (|Record| (|:| |coef| 125) (|:| |generator| $)) @@ -599,27 +590,27 @@ (|:| |generator| $)) (|Record| (|:| |coef1| $) (|:| |coef2| $)) (|Union| 129 '"failed") (|PositiveInteger|)) - '#(~= 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| 401 |gcd| - 407 |factorial| 418 |factor| 423 |extendedEuclidean| 428 - |exquo| 441 |expressIdealMember| 447 |even?| 453 - |euclideanSize| 458 |divide| 463 |differentiate| 469 |dec| - 480 |copy| 485 |convert| 490 |coerce| 520 |characteristic| - 540 |bit?| 544 |binomial| 550 |base| 556 |associates?| 560 - |addmod| 566 |abs| 573 |Zero| 578 |One| 582 |OMwrite| 586 - D 610 >= 621 > 627 = 633 <= 639 < 645 - 651 + 662 ** 668 * - 680) + '#(~= 137 |zero?| 143 |unitNormal| 148 |unitCanonical| 153 + |unit?| 158 |symmetricRemainder| 163 |subtractIfCan| 169 + |submod| 175 |squareFreePart| 182 |squareFree| 187 + |sizeLess?| 192 |sign| 198 |shift| 203 |sample| 209 + |retractIfCan| 213 |retract| 218 |rem| 223 |reducedSystem| + 229 |recip| 240 |rationalIfCan| 245 |rational?| 250 + |rational| 255 |random| 260 |quo| 269 |principalIdeal| 275 + |prime?| 280 |powmod| 285 |positiveRemainder| 292 + |positive?| 298 |permutation| 303 |patternMatch| 309 + |one?| 316 |odd?| 321 |nextItem| 326 |negative?| 331 + |multiEuclidean| 336 |mulmod| 342 |min| 349 |max| 355 + |mask| 361 |length| 366 |lcm| 371 |latex| 382 |invmod| 387 + |init| 393 |inc| 397 |hash| 402 |gcdPolynomial| 407 |gcd| + 413 |factorial| 424 |factor| 429 |extendedEuclidean| 434 + |exquo| 447 |expressIdealMember| 453 |even?| 459 + |euclideanSize| 464 |divide| 469 |differentiate| 475 |dec| + 486 |copy| 491 |convert| 496 |coerce| 526 |characteristic| + 546 |bit?| 550 |binomial| 556 |base| 562 |associates?| 566 + |addmod| 572 |abs| 579 |Zero| 584 |One| 588 |OMwrite| 592 + D 616 >= 627 > 633 = 639 <= 645 < 651 - 657 + 668 ** 674 * + 686) '((|infinite| . 0) (|noetherian| . 0) (|canonicalsClosed| . 0) (|canonical| . 0) (|canonicalUnitNormal| . 0) (|multiplicativeValuation| . 0) @@ -678,20 +669,20 @@ 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 36 0 11 37 1 45 0 11 46 1 50 0 11 51 2 - 93 92 91 90 94 1 97 96 95 98 1 95 0 0 - 99 1 95 2 0 100 1 101 96 95 102 1 95 - 0 2 103 1 0 104 0 105 2 108 96 106 - 107 109 2 110 96 96 96 111 1 101 96 - 95 112 1 95 21 0 113 1 95 0 0 114 1 - 116 95 115 117 2 0 21 0 0 1 1 0 21 0 - 25 1 0 87 0 88 1 0 0 0 89 1 0 21 0 1 - 2 0 0 0 0 1 2 0 83 0 0 1 3 0 0 0 0 0 - 43 1 0 0 0 1 1 0 104 0 1 2 0 21 0 0 1 - 1 0 11 0 1 2 0 0 0 0 82 0 0 0 1 1 0 - 124 0 1 1 0 11 0 1 2 0 0 0 0 81 2 0 - 60 57 61 62 1 0 56 57 58 1 0 83 0 85 - 1 0 121 0 1 1 0 21 0 1 1 0 120 0 1 0 - 0 0 64 1 0 0 0 65 2 0 0 0 0 80 1 0 + 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 2 0 83 0 0 103 1 0 104 0 105 2 + 108 95 106 107 109 2 110 95 95 95 111 + 1 100 95 94 112 1 94 21 0 113 1 94 0 + 0 114 1 116 94 115 117 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 83 0 0 1 3 0 0 + 0 0 0 43 1 0 0 0 1 1 0 104 0 1 2 0 21 + 0 0 1 1 0 11 0 1 2 0 0 0 0 82 0 0 0 1 + 1 0 124 0 1 1 0 11 0 1 2 0 0 0 0 81 2 + 0 60 57 61 62 1 0 56 57 58 1 0 83 0 + 84 1 0 121 0 1 1 0 21 0 1 1 0 120 0 1 + 0 0 0 64 1 0 0 0 65 2 0 0 0 0 80 1 0 126 125 1 1 0 21 0 1 3 0 0 0 0 0 1 2 0 0 0 0 55 1 0 21 0 1 2 0 0 0 0 1 3 0 122 0 123 122 1 1 0 21 0 26 1 0 21 0 @@ -700,25 +691,25 @@ 0 0 76 1 0 0 0 1 1 0 0 0 41 2 0 0 0 0 1 1 0 0 125 1 1 0 9 0 54 2 0 0 0 0 1 0 0 0 1 1 0 0 0 31 1 0 33 0 34 2 0 - 118 118 118 119 2 0 0 0 0 86 1 0 0 + 118 118 118 119 2 0 0 0 0 85 1 0 0 125 1 1 0 0 0 1 1 0 104 0 105 2 0 128 - 0 0 1 3 0 130 0 0 0 1 2 0 83 0 0 84 2 - 0 127 125 0 1 1 0 21 0 1 1 0 73 0 1 2 - 0 78 0 0 79 1 0 0 0 1 2 0 0 0 73 1 1 - 0 0 0 32 1 0 0 0 30 1 0 9 0 53 1 0 48 - 0 49 1 0 45 0 47 1 0 50 0 52 1 0 123 - 0 1 1 0 11 0 40 1 0 0 11 39 1 0 0 0 1 - 1 0 0 11 39 1 0 36 0 38 0 0 73 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 42 1 0 0 0 63 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 73 1 2 0 21 0 0 1 2 0 21 0 - 0 1 2 0 21 0 0 66 2 0 21 0 0 1 2 0 21 - 0 0 67 2 0 0 0 0 70 1 0 0 0 68 2 0 0 - 0 0 69 2 0 0 0 73 74 2 0 0 0 131 1 2 - 0 0 0 0 71 2 0 0 11 0 72 2 0 0 73 0 1 - 2 0 0 131 0 1))))) + 0 0 1 3 0 130 0 0 0 1 2 0 83 0 0 103 + 2 0 127 125 0 1 1 0 21 0 1 1 0 73 0 1 + 2 0 78 0 0 79 1 0 0 0 1 2 0 0 0 73 1 + 1 0 0 0 32 1 0 0 0 30 1 0 9 0 53 1 0 + 48 0 49 1 0 45 0 47 1 0 50 0 52 1 0 + 123 0 1 1 0 11 0 40 1 0 0 11 39 1 0 0 + 0 1 1 0 0 11 39 1 0 36 0 38 0 0 73 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 42 1 0 0 0 63 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 73 1 2 0 21 0 0 1 2 0 21 + 0 0 1 2 0 21 0 0 66 2 0 21 0 0 1 2 0 + 21 0 0 67 2 0 0 0 0 70 1 0 0 0 68 2 0 + 0 0 0 69 2 0 0 0 73 74 2 0 0 0 131 1 + 2 0 0 0 0 71 2 0 0 11 0 72 2 0 0 73 0 + 1 2 0 0 131 0 1))))) '|lookupComplete|)) (MAKEPROP '|Integer| 'NILADIC T) diff --git a/src/testsuite/interpreter/aw-103.input b/src/testsuite/interpreter/aw-103.input new file mode 100644 index 00000000..3e02d71f --- /dev/null +++ b/src/testsuite/interpreter/aw-103.input @@ -0,0 +1,3 @@ +-- Used to crash +-- Returns: [0=0] +solve(z=z,z) |