aboutsummaryrefslogtreecommitdiff
path: root/src/algebra/catdef.spad.pamphlet
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2008-08-16 06:00:35 +0000
committerdos-reis <gdr@axiomatics.org>2008-08-16 06:00:35 +0000
commit84db9d8c5349cb8b3e7e2d102867e53e610d7ef2 (patch)
tree0a2689194fd9e75ce8925550a4e177f3e5520684 /src/algebra/catdef.spad.pamphlet
parent3372c377eded97a0094f63cddd2e039af7066431 (diff)
downloadopen-axiom-84db9d8c5349cb8b3e7e2d102867e53e610d7ef2.tar.gz
* algebra/strap: New. Sequester cached Lisp translation of
algebra bootstrap domains here.
Diffstat (limited to 'src/algebra/catdef.spad.pamphlet')
-rw-r--r--src/algebra/catdef.spad.pamphlet2276
1 files changed, 0 insertions, 2276 deletions
diff --git a/src/algebra/catdef.spad.pamphlet b/src/algebra/catdef.spad.pamphlet
index 75c43cae..628130a2 100644
--- a/src/algebra/catdef.spad.pamphlet
+++ b/src/algebra/catdef.spad.pamphlet
@@ -48,107 +48,7 @@ AbelianGroup(): Category == CancellationAbelianMonoid with
double((-n) pretend PositiveInteger,-x)
@
-\section{ABELGRP.lsp BOOTSTRAP}
-{\bf ABELGRP} depends on a chain of
-files. We need to break this cycle to build the algebra. So we keep a
-cached copy of the translated {\bf ABELGRP} category which we can write
-into the {\bf MID} directory. We compile the lisp code and copy the
-{\bf ABELGRP.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.
-
-<<ABELGRP.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |AbelianGroup;AL| 'NIL)
-
-(DEFUN |AbelianGroup| ()
- (LET (#:G1388)
- (COND
- (|AbelianGroup;AL|)
- (T (SETQ |AbelianGroup;AL| (|AbelianGroup;|))))))
-
-(DEFUN |AbelianGroup;| ()
- (PROG (#0=#:G1386)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|CancellationAbelianMonoid|)
- (|mkCategory| '|domain|
- '(((- ($ $)) T) ((- ($ $ $)) T)
- ((* ($ (|Integer|) $)) T))
- NIL '((|Integer|)) NIL))
- |AbelianGroup|)
- (SETELT #0# 0 '(|AbelianGroup|))))))
-
-(MAKEPROP '|AbelianGroup| 'NILADIC T)
-@
-\section{ABELGRP-.lsp BOOTSTRAP}
-{\bf ABELGRP-} depends on a chain of files.
-We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf ABELGRP-}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf ABELGRP-.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.
-
-<<ABELGRP-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |ABELGRP-;-;3S;1| (|x| |y| $)
- (SPADCALL |x| (SPADCALL |y| (QREFELT $ 7)) (QREFELT $ 8)))
-
-(DEFUN |ABELGRP-;subtractIfCan;2SU;2| (|x| |y| $)
- (CONS 0 (SPADCALL |x| |y| (QREFELT $ 10))))
-
-(DEFUN |ABELGRP-;*;Nni2S;3| (|n| |x| $)
- (SPADCALL |n| |x| (QREFELT $ 14)))
-
-(DEFUN |ABELGRP-;*;I2S;4| (|n| |x| $)
- (COND
- ((ZEROP |n|) (|spadConstant| $ 17))
- ((< 0 |n|) (SPADCALL |n| |x| (QREFELT $ 20)))
- ('T (SPADCALL (- |n|) (SPADCALL |x| (QREFELT $ 7)) (QREFELT $ 20)))))
-
-(DEFUN |AbelianGroup&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|AbelianGroup&|))
- (LETT |dv$| (LIST '|AbelianGroup&| |dv$1|) . #0#)
- (LETT $ (GETREFV 22) . #0#)
- (QSETREFV $ 0 |dv$|)
- (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (QSETREFV $ 6 |#1|)
- (COND
- ((|HasCategory| |#1| '(|Ring|)))
- ('T
- (QSETREFV $ 21
- (CONS (|dispatchFunction| |ABELGRP-;*;I2S;4|) $))))
- $))))
-
-(MAKEPROP '|AbelianGroup&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (0 . -) (5 . +)
- |ABELGRP-;-;3S;1| (11 . -) (|Union| $ '"failed")
- |ABELGRP-;subtractIfCan;2SU;2| (|Integer|) (17 . *)
- (|NonNegativeInteger|) |ABELGRP-;*;Nni2S;3| (23 . |Zero|)
- (|PositiveInteger|) (|RepeatedDoubling| 6) (27 . |double|)
- (33 . *))
- '#(|subtractIfCan| 39 - 45 * 51) 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 21
- '(1 6 0 0 7 2 6 0 0 0 8 2 6 0 0 0 10 2
- 6 0 13 0 14 0 6 0 17 2 19 6 18 6 20 2
- 0 0 13 0 21 2 0 11 0 0 12 2 0 0 0 0 9
- 2 0 0 13 0 21 2 0 0 15 0 16)))))
- '|lookupComplete|))
-@
\section{category ABELMON AbelianMonoid}
<<category ABELMON AbelianMonoid>>=
)abbrev category ABELMON AbelianMonoid
@@ -191,131 +91,8 @@ AbelianMonoid(): Category == AbelianSemiGroup with
double(n pretend PositiveInteger,x)
@
-\section{ABELMON.lsp BOOTSTRAP}
-{\bf ABELMON} which needs
-{\bf ABELSG} which needs
-{\bf SETCAT} which needs
-{\bf SINT} which needs
-{\bf UFD} which needs
-{\bf GCDDOM} which needs
-{\bf COMRING} which needs
-{\bf RING} which needs
-{\bf RNG} which needs
-{\bf ABELGRP} which needs
-{\bf CABMON} which needs
-{\bf ABELMON}.
-We break this chain with {\bf ABELMON.lsp} which we
-cache here. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf ABELMON}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf ABELMON.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.
-<<ABELMON.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |AbelianMonoid;AL| 'NIL)
-
-(DEFUN |AbelianMonoid| ()
- (LET (#:G1388)
- (COND
- (|AbelianMonoid;AL|)
- (T (SETQ |AbelianMonoid;AL| (|AbelianMonoid;|))))))
-
-(DEFUN |AbelianMonoid;| ()
- (PROG (#0=#:G1386)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|AbelianSemiGroup|)
- (|mkCategory| '|domain|
- '(((|Zero| ($) |constant|) T)
- ((|sample| ($) |constant|) T)
- ((|zero?| ((|Boolean|) $)) T)
- ((* ($ (|NonNegativeInteger|) $)) T))
- NIL
- '((|NonNegativeInteger|) (|Boolean|))
- NIL))
- |AbelianMonoid|)
- (SETELT #0# 0 '(|AbelianMonoid|))))))
-
-(MAKEPROP '|AbelianMonoid| 'NILADIC T)
-@
-\section{ABELMON-.lsp BOOTSTRAP}
-{\bf ABELMON-} which needs
-{\bf ABELSG} which needs
-{\bf SETCAT} which needs
-{\bf SINT} which needs
-{\bf UFD} which needs
-{\bf GCDDOM} which needs
-{\bf COMRING} which needs
-{\bf RING} which needs
-{\bf RNG} which needs
-{\bf ABELGRP} which needs
-{\bf CABMON} which needs
-{\bf ABELMON-}.
-We break this chain with {\bf ABELMON-.lsp} which we
-cache here. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf ABELMON-}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf ABELMON-.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.
-
-<<ABELMON-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |ABELMON-;zero?;SB;1| (|x| $)
- (SPADCALL |x| (|spadConstant| $ 7) (QREFELT $ 9)))
-
-(DEFUN |ABELMON-;*;Pi2S;2| (|n| |x| $)
- (SPADCALL |n| |x| (QREFELT $ 12)))
-
-(DEFUN |ABELMON-;sample;S;3| ($) (|spadConstant| $ 7))
-
-(DEFUN |ABELMON-;*;Nni2S;4| (|n| |x| $)
- (COND
- ((ZEROP |n|) (|spadConstant| $ 7))
- ('T (SPADCALL |n| |x| (QREFELT $ 17)))))
-
-(DEFUN |AbelianMonoid&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|AbelianMonoid&|))
- (LETT |dv$| (LIST '|AbelianMonoid&| |dv$1|) . #0#)
- (LETT $ (GETREFV 19) . #0#)
- (QSETREFV $ 0 |dv$|)
- (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (QSETREFV $ 6 |#1|)
- (COND
- ((|HasCategory| |#1| '(|Ring|)))
- ('T
- (QSETREFV $ 18
- (CONS (|dispatchFunction| |ABELMON-;*;Nni2S;4|) $))))
- $))))
-
-(MAKEPROP '|AbelianMonoid&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (0 . |Zero|)
- (|Boolean|) (4 . =) |ABELMON-;zero?;SB;1|
- (|NonNegativeInteger|) (10 . *) (|PositiveInteger|)
- |ABELMON-;*;Pi2S;2| |ABELMON-;sample;S;3|
- (|RepeatedDoubling| 6) (16 . |double|) (22 . *))
- '#(|zero?| 28 |sample| 33 * 37) 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 18
- '(0 6 0 7 2 6 8 0 0 9 2 6 0 11 0 12 2
- 16 6 13 6 17 2 0 0 11 0 18 1 0 8 0 10
- 0 0 0 15 2 0 0 11 0 18 2 0 0 13 0 14)))))
- '|lookupComplete|))
-@
\section{category ABELSG AbelianSemiGroup}
<<category ABELSG AbelianSemiGroup>>=
)abbrev category ABELSG AbelianSemiGroup
@@ -347,113 +124,7 @@ AbelianSemiGroup(): Category == SetCategory with
n:PositiveInteger * x:% == double(n,x)
@
-\section{ABELSG.lsp BOOTSTRAP}
-{\bf ABELSG} needs
-{\bf SETCAT} which needs
-{\bf SINT} which needs
-{\bf UFD} which needs
-{\bf GCDDOM} which needs
-{\bf COMRING} which needs
-{\bf RING} which needs
-{\bf RNG} which needs
-{\bf ABELGRP} which needs
-{\bf CABMON} which needs
-{\bf ABELMON} which needs
-{\bf ABELSG}.
-We break this chain with {\bf ABELSG.lsp} which we
-cache here. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf ABELSG}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf ABELSG.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.
-
-<<ABELSG.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |AbelianSemiGroup;AL| 'NIL)
-
-(DEFUN |AbelianSemiGroup| ()
- (LET (#:G1387)
- (COND
- (|AbelianSemiGroup;AL|)
- (T (SETQ |AbelianSemiGroup;AL| (|AbelianSemiGroup;|))))))
-
-(DEFUN |AbelianSemiGroup;| ()
- (PROG (#0=#:G1385)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|SetCategory|)
- (|mkCategory| '|domain|
- '(((+ ($ $ $)) T)
- ((* ($ (|PositiveInteger|) $)) T))
- NIL '((|PositiveInteger|)) NIL))
- |AbelianSemiGroup|)
- (SETELT #0# 0 '(|AbelianSemiGroup|))))))
-
-(MAKEPROP '|AbelianSemiGroup| 'NILADIC T)
-@
-\section{ABELSG-.lsp BOOTSTRAP}
-{\bf ABELSG-} needs
-{\bf SETCAT} which needs
-{\bf SINT} which needs
-{\bf UFD} which needs
-{\bf GCDDOM} which needs
-{\bf COMRING} which needs
-{\bf RING} which needs
-{\bf RNG} which needs
-{\bf ABELGRP} which needs
-{\bf CABMON} which needs
-{\bf ABELMON} which needs
-{\bf ABELSG-}.
-We break this chain with {\bf ABELSG-.lsp} which we
-cache here. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf ABELSG-}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf ABELSG-.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.
-
-<<ABELSG-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |ABELSG-;*;Pi2S;1| (|n| |x| $)
- (SPADCALL |n| |x| (QREFELT $ 9)))
-
-(DEFUN |AbelianSemiGroup&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|AbelianSemiGroup&|))
- (LETT |dv$| (LIST '|AbelianSemiGroup&| |dv$1|) . #0#)
- (LETT $ (GETREFV 11) . #0#)
- (QSETREFV $ 0 |dv$|)
- (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (QSETREFV $ 6 |#1|)
- (COND
- ((|HasCategory| |#1| '(|Ring|)))
- ('T
- (QSETREFV $ 10
- (CONS (|dispatchFunction| |ABELSG-;*;Pi2S;1|) $))))
- $))))
-
-(MAKEPROP '|AbelianSemiGroup&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|PositiveInteger|)
- (|RepeatedDoubling| 6) (0 . |double|) (6 . *))
- '#(* 12) 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 10
- '(2 8 6 7 6 9 2 0 0 7 0 10 2 0 0 7 0
- 10)))))
- '|lookupComplete|))
-@
\section{category ALGEBRA Algebra}
<<category ALGEBRA Algebra>>=
)abbrev category ALGEBRA Algebra
@@ -558,56 +229,7 @@ CancellationAbelianMonoid(): Category == AbelianMonoid with
++ or "failed" if no such element exists.
@
-\section{CABMON.lsp BOOTSTRAP}
-{\bf CABMON} which needs
-{\bf ABELMON} which needs
-{\bf ABELSG} which needs
-{\bf SETCAT} which needs
-{\bf SINT} which needs
-{\bf UFD} which needs
-{\bf GCDDOM} which needs
-{\bf COMRING} which needs
-{\bf RING} which needs
-{\bf RNG} which needs
-{\bf ABELGRP} which needs
-{\bf CABMON}.
-We break this chain with {\bf CABMON.lsp} which we
-cache here. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf CABMON}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf CABMON.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.
-
-<<CABMON.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-(DEFPARAMETER |CancellationAbelianMonoid;AL| 'NIL)
-
-(DEFUN |CancellationAbelianMonoid| ()
- (LET (#:G1387)
- (COND
- (|CancellationAbelianMonoid;AL|)
- (T (SETQ |CancellationAbelianMonoid;AL|
- (|CancellationAbelianMonoid;|))))))
-
-(DEFUN |CancellationAbelianMonoid;| ()
- (PROG (#0=#:G1385)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|AbelianMonoid|)
- (|mkCategory| '|domain|
- '(((|subtractIfCan|
- ((|Union| $ "failed") $ $))
- T))
- NIL 'NIL NIL))
- |CancellationAbelianMonoid|)
- (SETELT #0# 0 '(|CancellationAbelianMonoid|))))))
-
-(MAKEPROP '|CancellationAbelianMonoid| 'NILADIC T)
-@
\section{category CHARNZ CharacteristicNonZero}
<<category CHARNZ CharacteristicNonZero>>=
)abbrev category CHARNZ CharacteristicNonZero
@@ -666,39 +288,7 @@ CommutativeRing():Category == Join(Ring,BiModule(%,%)) with
commutative("*") ++ multiplication is commutative.
@
-\section{COMRING.lsp BOOTSTRAP}
-{\bf COMRING} depends on itself. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf COMRING}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf COMRING.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.
-
-<<COMRING.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |CommutativeRing;AL| 'NIL)
-(DEFUN |CommutativeRing| ()
- (LET (#:G1387)
- (COND
- (|CommutativeRing;AL|)
- (T (SETQ |CommutativeRing;AL| (|CommutativeRing;|))))))
-
-(DEFUN |CommutativeRing;| ()
- (PROG (#0=#:G1385)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|Ring|) (|BiModule| '$ '$)
- (|mkCategory| '|package| NIL
- '(((|commutative| "*") T)) 'NIL NIL))
- |CommutativeRing|)
- (SETELT #0# 0 '(|CommutativeRing|))))))
-
-(MAKEPROP '|CommutativeRing| 'NILADIC T)
-@
\section{category DIFRING DifferentialRing}
<<category DIFRING DifferentialRing>>=
)abbrev category DIFRING DifferentialRing
@@ -740,104 +330,7 @@ DifferentialRing(): Category == Ring with
D(r,n) == differentiate(r,n)
@
-\section{DIFRING.lsp BOOTSTRAP}
-{\bf DIFRING} needs {\bf INT} which needs {\bf DIFRING}.
-We need to break this cycle to build the algebra. So we keep a
-cached copy of the translated {\bf DIFRING} category which we can write
-into the {\bf MID} directory. We compile the lisp code and copy the
-{\bf DIFRING.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.
-
-<<DIFRING.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |DifferentialRing;AL| 'NIL)
-
-(DEFUN |DifferentialRing| ()
- (LET (#:G1387)
- (COND
- (|DifferentialRing;AL|)
- (T (SETQ |DifferentialRing;AL| (|DifferentialRing;|))))))
-
-(DEFUN |DifferentialRing;| ()
- (PROG (#0=#:G1385)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|Ring|)
- (|mkCategory| '|domain|
- '(((|differentiate| ($ $)) T)
- ((D ($ $)) T)
- ((|differentiate|
- ($ $ (|NonNegativeInteger|)))
- T)
- ((D ($ $ (|NonNegativeInteger|))) T))
- NIL '((|NonNegativeInteger|)) NIL))
- |DifferentialRing|)
- (SETELT #0# 0 '(|DifferentialRing|))))))
-
-(MAKEPROP '|DifferentialRing| 'NILADIC T)
-@
-\section{DIFRING-.lsp BOOTSTRAP}
-{\bf DIFRING-} needs {\bf DIFRING}.
-We need to break this cycle to build the algebra. So we keep a
-cached copy of the translated {\bf DIFRING-} category which we can write
-into the {\bf MID} directory. We compile the lisp code and copy the
-{\bf DIFRING-.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.
-
-<<DIFRING-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |DIFRING-;D;2S;1| (|r| $) (SPADCALL |r| (QREFELT $ 7)))
-
-(DEFUN |DIFRING-;differentiate;SNniS;2| (|r| |n| $)
- (PROG (|i|)
- (RETURN
- (SEQ (SEQ (LETT |i| 1 |DIFRING-;differentiate;SNniS;2|) G190
- (COND ((QSGREATERP |i| |n|) (GO G191)))
- (SEQ (EXIT (LETT |r| (SPADCALL |r| (QREFELT $ 7))
- |DIFRING-;differentiate;SNniS;2|)))
- (LETT |i| (QSADD1 |i|)
- |DIFRING-;differentiate;SNniS;2|)
- (GO G190) G191 (EXIT NIL))
- (EXIT |r|)))))
-
-(DEFUN |DIFRING-;D;SNniS;3| (|r| |n| $)
- (SPADCALL |r| |n| (QREFELT $ 11)))
-(DEFUN |DifferentialRing&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|DifferentialRing&|))
- (LETT |dv$| (LIST '|DifferentialRing&| |dv$1|) . #0#)
- (LETT $ (GETREFV 13) . #0#)
- (QSETREFV $ 0 |dv$|)
- (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (QSETREFV $ 6 |#1|)
- $))))
-
-(MAKEPROP '|DifferentialRing&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|)
- (0 . |differentiate|) |DIFRING-;D;2S;1|
- (|NonNegativeInteger|) |DIFRING-;differentiate;SNniS;2|
- (5 . |differentiate|) |DIFRING-;D;SNniS;3|)
- '#(|differentiate| 11 D 17) 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 12
- '(1 6 0 0 7 2 6 0 0 9 11 2 0 0 0 9 10 2
- 0 0 0 9 12 1 0 0 0 8)))))
- '|lookupComplete|))
-@
\section{category DIFEXT DifferentialExtension}
<<category DIFEXT DifferentialExtension>>=
)abbrev category DIFEXT DifferentialExtension
@@ -933,113 +426,7 @@ DivisionRing(): Category ==
q:Fraction(Integer) * x:% == numer(q) * inv(denom(q)::%) * x
@
-\section{DIVRING.lsp BOOTSTRAP}
-{\bf DIVRING} depends on {\bf QFCAT} which eventually depends on
-{\bf DIVRING}. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf DIVRING}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf DIVRING.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.
-
-<<DIVRING.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |DivisionRing;AL| 'NIL)
-
-(DEFUN |DivisionRing| ()
- (LET (#:G1390)
- (COND
- (|DivisionRing;AL|)
- (T (SETQ |DivisionRing;AL| (|DivisionRing;|))))))
-
-(DEFUN |DivisionRing;| ()
- (PROG (#0=#:G1388)
- (RETURN
- (PROG1 (LETT #0#
- (|sublisV|
- (PAIR '(#1=#:G1387)
- (LIST '(|Fraction| (|Integer|))))
- (|Join| (|EntireRing|) (|Algebra| '#1#)
- (|mkCategory| '|domain|
- '(((** ($ $ (|Integer|))) T)
- ((^ ($ $ (|Integer|))) T)
- ((|inv| ($ $)) T))
- NIL '((|Integer|)) NIL)))
- |DivisionRing|)
- (SETELT #0# 0 '(|DivisionRing|))))))
-(MAKEPROP '|DivisionRing| 'NILADIC T)
-@
-\section{DIVRING-.lsp BOOTSTRAP}
-{\bf DIVRING-} depends on {\bf DIVRING}. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf DIVRING-}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf DIVRING-.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.
-
-<<DIVRING-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |DIVRING-;^;SIS;1| (|x| |n| $)
- (SPADCALL |x| |n| (QREFELT $ 8)))
-
-(DEFUN |DIVRING-;**;SIS;2| (|x| |n| $)
- (COND
- ((ZEROP |n|) (|spadConstant| $ 10))
- ((SPADCALL |x| (QREFELT $ 12))
- (COND ((< |n| 0) (|error| "division by zero")) ('T |x|)))
- ((< |n| 0)
- (SPADCALL (SPADCALL |x| (QREFELT $ 14)) (- |n|) (QREFELT $ 17)))
- ('T (SPADCALL |x| |n| (QREFELT $ 17)))))
-
-(DEFUN |DIVRING-;*;F2S;3| (|q| |x| $)
- (SPADCALL
- (SPADCALL (SPADCALL |q| (QREFELT $ 20))
- (SPADCALL
- (SPADCALL (SPADCALL |q| (QREFELT $ 21)) (QREFELT $ 22))
- (QREFELT $ 14))
- (QREFELT $ 23))
- |x| (QREFELT $ 24)))
-
-(DEFUN |DivisionRing&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|DivisionRing&|))
- (LETT |dv$| (LIST '|DivisionRing&| |dv$1|) . #0#)
- (LETT $ (GETREFV 27) . #0#)
- (QSETREFV $ 0 |dv$|)
- (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (QSETREFV $ 6 |#1|)
- $))))
-
-(MAKEPROP '|DivisionRing&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|Integer|)
- (0 . **) |DIVRING-;^;SIS;1| (6 . |One|) (|Boolean|)
- (10 . |zero?|) (15 . |Zero|) (19 . |inv|)
- (|PositiveInteger|) (|RepeatedSquaring| 6) (24 . |expt|)
- |DIVRING-;**;SIS;2| (|Fraction| 7) (30 . |numer|)
- (35 . |denom|) (40 . |coerce|) (45 . *) (51 . *)
- |DIVRING-;*;F2S;3| (|NonNegativeInteger|))
- '#(^ 57 ** 63 * 69) 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 25
- '(2 6 0 0 7 8 0 6 0 10 1 6 11 0 12 0 6
- 0 13 1 6 0 0 14 2 16 6 6 15 17 1 19 7
- 0 20 1 19 7 0 21 1 6 0 7 22 2 6 0 7 0
- 23 2 6 0 0 0 24 2 0 0 0 7 9 2 0 0 0 7
- 18 2 0 0 19 0 25)))))
- '|lookupComplete|))
-@
\section{category ENTIRER EntireRing}
<<category ENTIRER EntireRing>>=
)abbrev category ENTIRER EntireRing
@@ -1065,39 +452,7 @@ EntireRing():Category == Join(Ring,BiModule(%,%)) with
++ must be zero.
@
-\section{ENTIRER.lsp BOOTSTRAP}
-{\bf ENTIRER} depends on itself. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf ENTIRER}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf ENTIRER.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.
-
-<<ENTIRER.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |EntireRing;AL| 'NIL)
-
-(DEFUN |EntireRing| ()
- (LET (#:G1387)
- (COND
- (|EntireRing;AL|)
- (T (SETQ |EntireRing;AL| (|EntireRing;|))))))
-
-(DEFUN |EntireRing;| ()
- (PROG (#0=#:G1385)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|Ring|) (|BiModule| '$ '$)
- (|mkCategory| '|package| NIL
- '((|noZeroDivisors| T)) 'NIL NIL))
- |EntireRing|)
- (SETELT #0# 0 '(|EntireRing|))))))
-(MAKEPROP '|EntireRing| 'NILADIC T)
-@
\section{category EUCDOM EuclideanDomain}
<<category EUCDOM EuclideanDomain>>=
)abbrev category EUCDOM EuclideanDomain
@@ -1250,656 +605,6 @@ EuclideanDomain(): Category == PrincipalIdealDomain with
concat(v1,v2)
@
-\section{EUCDOM.lsp BOOTSTRAP}
-{\bf EUCDOM} depends on {\bf INT} which depends on {\bf EUCDOM}.
-We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf EUCDOM}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf EUCDOM.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.
-
-\subsection{The Lisp Implementation}
-\subsubsection{EUCDOM;VersionCheck}
-This implements the bootstrap code for {\bf EuclideanDomain}.
-The call to {\bf VERSIONCHECK} is a legacy check to ensure that
-we did not load algebra code from a previous system version (which
-would not run due to major surgical changes in the system) without
-recompiling.
-<<EUCDOM;VersionCheck>>=
-(|/VERSIONCHECK| 2)
-
-@
-\subsubsection{The Domain Cache Variable}
-We create a variable which is formed by concatenating the string
-``{\bf ;AL}'' to the domain name forming, in this case,
-``{\bf EuclideanDomain;AL}''. The variable has the initial value
-at load time of a list of one element, {\bf NIL}. This list is
-a data structure that will be modified to hold an executable
-function. This function is created the first time the domain is
-used which it replaces the {\bf NIL}.
-<<EuclideanDomain;AL>>=
-(DEFPARAMETER |EuclideanDomain;AL| (QUOTE NIL))
-
-@
-\subsubsection{The Domain Function}
-When you call a domain the code is pretty simple at the top
-level. This code will check to see if this domain has ever been
-used. It does this by checking the value of the cached domain
-variable (which is the domain name {\bf EuclideanDomain} concatenated
-with the string ``{\bf ;AL}'' to form the cache variable name which
-is {\bf EuclideanDomain;AL}).
-
-If this value is NIL we have never executed this function
-before. If it is not NIL we have executed this function before and
-we need only return the cached function which was stored in the
-cache variable.
-
-If this is the first time this function is called, the cache
-variable is NIL and we execute the other branch of the conditional.
-This calls a function which
-\begin{enumerate}
-\item creates a procedure
-\item returns the procedure as a value.
-\end{enumerate}
-This procedure replaces the cached variable {\bf EuclideanDomain;AL}
-value so it will be non-NIL the second time this domain is used.
-Thus the work of building the domain only happens once.
-
-If this function has never been called before we call the
-<<EuclideanDomain>>=
-(DEFUN |EuclideanDomain| NIL
- (LET (#:G83585)
- (COND
- (|EuclideanDomain;AL|)
- (T (SETQ |EuclideanDomain;AL| (|EuclideanDomain;|))))))
-
-@
-\subsubsection{The First Call Domain Function}
-<<EuclideanDomain;>>=
-(DEFUN |EuclideanDomain;| NIL
- (PROG (#1=#:G83583)
- (RETURN
- (PROG1
- (LETT #1#
- (|Join|
- (|PrincipalIdealDomain|)
- (|mkCategory|
- (QUOTE |domain|)
- (QUOTE (
- ((|sizeLess?| ((|Boolean|) |$| |$|)) T)
- ((|euclideanSize| ((|NonNegativeInteger|) |$|)) T)
- ((|divide|
- ((|Record|
- (|:| |quotient| |$|)
- (|:| |remainder| |$|))
- |$| |$|)) T)
- ((|quo| (|$| |$| |$|)) T)
- ((|rem| (|$| |$| |$|)) T)
- ((|extendedEuclidean|
- ((|Record|
- (|:| |coef1| |$|)
- (|:| |coef2| |$|)
- (|:| |generator| |$|))
- |$| |$|)) T)
- ((|extendedEuclidean|
- ((|Union|
- (|Record| (|:| |coef1| |$|) (|:| |coef2| |$|))
- "failed")
- |$| |$| |$|)) T)
- ((|multiEuclidean|
- ((|Union|
- (|List| |$|)
- "failed")
- (|List| |$|) |$|)) T)))
- NIL
- (QUOTE ((|List| |$|) (|NonNegativeInteger|) (|Boolean|)))
- NIL))
- |EuclideanDomain|)
- (SETELT #1# 0 (QUOTE (|EuclideanDomain|)))))))
-
-@
-\subsubsection{EUCDOM;MAKEPROP}
-<<EUCDOM;MAKEPROP>>=
-(MAKEPROP (QUOTE |EuclideanDomain|) (QUOTE NILADIC) T)
-
-@
-<<EUCDOM.lsp BOOTSTRAP>>=
-<<EUCDOM;VersionCheck>>
-<<EuclideanDomain;AL>>
-<<EuclideanDomain>>
-<<EuclideanDomain;>>
-<<EUCDOM;MAKEPROP>>
-@
-\section{EUCDOM-.lsp BOOTSTRAP}
-{\bf EUCDOM-} depends on {\bf EUCDOM}. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf EUCDOM-}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf EUCDOM-.o} file to the {\bf OUT} directory.
-This is eventually forcibly replaced by a recompiled version.
-
-<<EUCDOM-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |EUCDOM-;sizeLess?;2SB;1| (|x| |y| $)
- (COND
- ((SPADCALL |y| (|getShellEntry| $ 8)) 'NIL)
- ((SPADCALL |x| (|getShellEntry| $ 8)) 'T)
- ('T
- (< (SPADCALL |x| (|getShellEntry| $ 10))
- (SPADCALL |y| (|getShellEntry| $ 10))))))
-
-(DEFUN |EUCDOM-;quo;3S;2| (|x| |y| $)
- (QCAR (SPADCALL |x| |y| (|getShellEntry| $ 13))))
-
-(DEFUN |EUCDOM-;rem;3S;3| (|x| |y| $)
- (QCDR (SPADCALL |x| |y| (|getShellEntry| $ 13))))
-
-(DEFUN |EUCDOM-;exquo;2SU;4| (|x| |y| $)
- (PROG (|qr|)
- (RETURN
- (SEQ (COND
- ((SPADCALL |y| (|getShellEntry| $ 8)) (CONS 1 "failed"))
- ('T
- (SEQ (LETT |qr| (SPADCALL |x| |y| (|getShellEntry| $ 13))
- |EUCDOM-;exquo;2SU;4|)
- (EXIT (COND
- ((SPADCALL (QCDR |qr|)
- (|getShellEntry| $ 8))
- (CONS 0 (QCAR |qr|)))
- ('T (CONS 1 "failed")))))))))))
-
-(DEFUN |EUCDOM-;gcd;3S;5| (|x| |y| $)
- (PROG (|#G13| |#G14|)
- (RETURN
- (SEQ (LETT |x| (SPADCALL |x| (|getShellEntry| $ 18))
- |EUCDOM-;gcd;3S;5|)
- (LETT |y| (SPADCALL |y| (|getShellEntry| $ 18))
- |EUCDOM-;gcd;3S;5|)
- (SEQ G190
- (COND
- ((NULL (SPADCALL (SPADCALL |y| (|getShellEntry| $ 8))
- (|getShellEntry| $ 19)))
- (GO G191)))
- (SEQ (PROGN
- (LETT |#G13| |y| |EUCDOM-;gcd;3S;5|)
- (LETT |#G14|
- (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))
- |EUCDOM-;gcd;3S;5|)))
- NIL (GO G190) G191 (EXIT NIL))
- (EXIT |x|)))))
-
-(DEFUN |EUCDOM-;unitNormalizeIdealElt| (|s| $)
- (PROG (|#G16| |u| |c| |a|)
- (RETURN
- (SEQ (PROGN
- (LETT |#G16|
- (SPADCALL (QVELT |s| 2) (|getShellEntry| $ 23))
- |EUCDOM-;unitNormalizeIdealElt|)
- (LETT |u| (QVELT |#G16| 0)
- |EUCDOM-;unitNormalizeIdealElt|)
- (LETT |c| (QVELT |#G16| 1)
- |EUCDOM-;unitNormalizeIdealElt|)
- (LETT |a| (QVELT |#G16| 2)
- |EUCDOM-;unitNormalizeIdealElt|)
- |#G16|)
- (EXIT (COND
- ((SPADCALL |a| (|spadConstant| $ 24)
- (|getShellEntry| $ 25))
- |s|)
- ('T
- (VECTOR (SPADCALL |a| (QVELT |s| 0)
- (|getShellEntry| $ 26))
- (SPADCALL |a| (QVELT |s| 1)
- (|getShellEntry| $ 26))
- |c|))))))))
-
-(DEFUN |EUCDOM-;extendedEuclidean;2SR;7| (|x| |y| $)
- (PROG (|s3| |s2| |qr| |s1|)
- (RETURN
- (SEQ (LETT |s1|
- (|EUCDOM-;unitNormalizeIdealElt|
- (VECTOR (|spadConstant| $ 24)
- (|spadConstant| $ 27) |x|)
- $)
- |EUCDOM-;extendedEuclidean;2SR;7|)
- (LETT |s2|
- (|EUCDOM-;unitNormalizeIdealElt|
- (VECTOR (|spadConstant| $ 27)
- (|spadConstant| $ 24) |y|)
- $)
- |EUCDOM-;extendedEuclidean;2SR;7|)
- (EXIT (COND
- ((SPADCALL |y| (|getShellEntry| $ 8)) |s1|)
- ((SPADCALL |x| (|getShellEntry| $ 8)) |s2|)
- ('T
- (SEQ (SEQ G190
- (COND
- ((NULL (SPADCALL
- (SPADCALL (QVELT |s2| 2)
- (|getShellEntry| $ 8))
- (|getShellEntry| $ 19)))
- (GO G191)))
- (SEQ (LETT |qr|
- (SPADCALL (QVELT |s1| 2)
- (QVELT |s2| 2)
- (|getShellEntry| $ 13))
- |EUCDOM-;extendedEuclidean;2SR;7|)
- (LETT |s3|
- (VECTOR
- (SPADCALL (QVELT |s1| 0)
- (SPADCALL (QCAR |qr|)
- (QVELT |s2| 0)
- (|getShellEntry| $ 26))
- (|getShellEntry| $ 28))
- (SPADCALL (QVELT |s1| 1)
- (SPADCALL (QCAR |qr|)
- (QVELT |s2| 1)
- (|getShellEntry| $ 26))
- (|getShellEntry| $ 28))
- (QCDR |qr|))
- |EUCDOM-;extendedEuclidean;2SR;7|)
- (LETT |s1| |s2|
- |EUCDOM-;extendedEuclidean;2SR;7|)
- (EXIT
- (LETT |s2|
- (|EUCDOM-;unitNormalizeIdealElt|
- |s3| $)
- |EUCDOM-;extendedEuclidean;2SR;7|)))
- NIL (GO G190) G191 (EXIT NIL))
- (COND
- ((NULL (SPADCALL (QVELT |s1| 0)
- (|getShellEntry| $ 8)))
- (COND
- ((NULL (SPADCALL (QVELT |s1| 0) |y|
- (|getShellEntry| $ 29)))
- (SEQ (LETT |qr|
- (SPADCALL (QVELT |s1| 0) |y|
- (|getShellEntry| $ 13))
- |EUCDOM-;extendedEuclidean;2SR;7|)
- (QSETVELT |s1| 0 (QCDR |qr|))
- (QSETVELT |s1| 1
- (SPADCALL (QVELT |s1| 1)
- (SPADCALL (QCAR |qr|) |x|
- (|getShellEntry| $ 26))
- (|getShellEntry| $ 30)))
- (EXIT
- (LETT |s1|
- (|EUCDOM-;unitNormalizeIdealElt|
- |s1| $)
- |EUCDOM-;extendedEuclidean;2SR;7|)))))))
- (EXIT |s1|)))))))))
-
-(DEFUN |EUCDOM-;extendedEuclidean;3SU;8| (|x| |y| |z| $)
- (PROG (|s| |w| |qr|)
- (RETURN
- (SEQ (COND
- ((SPADCALL |z| (|getShellEntry| $ 8))
- (CONS 0
- (CONS (|spadConstant| $ 27) (|spadConstant| $ 27))))
- ('T
- (SEQ (LETT |s| (SPADCALL |x| |y| (|getShellEntry| $ 33))
- |EUCDOM-;extendedEuclidean;3SU;8|)
- (LETT |w|
- (SPADCALL |z| (QVELT |s| 2)
- (|getShellEntry| $ 34))
- |EUCDOM-;extendedEuclidean;3SU;8|)
- (EXIT (COND
- ((QEQCAR |w| 1) (CONS 1 "failed"))
- ((SPADCALL |y| (|getShellEntry| $ 8))
- (CONS 0
- (CONS (SPADCALL (QVELT |s| 0)
- (QCDR |w|)
- (|getShellEntry| $ 26))
- (SPADCALL (QVELT |s| 1)
- (QCDR |w|)
- (|getShellEntry| $ 26)))))
- ('T
- (SEQ (LETT |qr|
- (SPADCALL
- (SPADCALL (QVELT |s| 0)
- (QCDR |w|)
- (|getShellEntry| $ 26))
- |y| (|getShellEntry| $ 13))
- |EUCDOM-;extendedEuclidean;3SU;8|)
- (EXIT (CONS 0
- (CONS (QCDR |qr|)
- (SPADCALL
- (SPADCALL (QVELT |s| 1)
- (QCDR |w|)
- (|getShellEntry| $ 26))
- (SPADCALL (QCAR |qr|) |x|
- (|getShellEntry| $ 26))
- (|getShellEntry| $ 30))))))))))))))))
-
-(DEFUN |EUCDOM-;principalIdeal;LR;9| (|l| $)
- (PROG (|uca| |v| |u| #0=#:G1478 |vv| #1=#:G1479)
- (RETURN
- (SEQ (COND
- ((SPADCALL |l| NIL (|getShellEntry| $ 39))
- (|error| "empty list passed to principalIdeal"))
- ((SPADCALL (CDR |l|) NIL (|getShellEntry| $ 39))
- (SEQ (LETT |uca|
- (SPADCALL (|SPADfirst| |l|)
- (|getShellEntry| $ 23))
- |EUCDOM-;principalIdeal;LR;9|)
- (EXIT (CONS (LIST (QVELT |uca| 0)) (QVELT |uca| 1)))))
- ((SPADCALL (CDR (CDR |l|)) NIL (|getShellEntry| $ 39))
- (SEQ (LETT |u|
- (SPADCALL (|SPADfirst| |l|)
- (SPADCALL |l| (|getShellEntry| $ 40))
- (|getShellEntry| $ 33))
- |EUCDOM-;principalIdeal;LR;9|)
- (EXIT (CONS (LIST (QVELT |u| 0) (QVELT |u| 1))
- (QVELT |u| 2)))))
- ('T
- (SEQ (LETT |v|
- (SPADCALL (CDR |l|) (|getShellEntry| $ 43))
- |EUCDOM-;principalIdeal;LR;9|)
- (LETT |u|
- (SPADCALL (|SPADfirst| |l|) (QCDR |v|)
- (|getShellEntry| $ 33))
- |EUCDOM-;principalIdeal;LR;9|)
- (EXIT (CONS (CONS (QVELT |u| 0)
- (PROGN
- (LETT #0# NIL
- |EUCDOM-;principalIdeal;LR;9|)
- (SEQ
- (LETT |vv| NIL
- |EUCDOM-;principalIdeal;LR;9|)
- (LETT #1# (QCAR |v|)
- |EUCDOM-;principalIdeal;LR;9|)
- G190
- (COND
- ((OR (ATOM #1#)
- (PROGN
- (LETT |vv| (CAR #1#)
- |EUCDOM-;principalIdeal;LR;9|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #0#
- (CONS
- (SPADCALL (QVELT |u| 1)
- |vv|
- (|getShellEntry| $ 26))
- #0#)
- |EUCDOM-;principalIdeal;LR;9|)))
- (LETT #1# (CDR #1#)
- |EUCDOM-;principalIdeal;LR;9|)
- (GO G190) G191
- (EXIT (NREVERSE0 #0#)))))
- (QVELT |u| 2))))))))))
-
-(DEFUN |EUCDOM-;expressIdealMember;LSU;10| (|l| |z| $)
- (PROG (#0=#:G1494 #1=#:G1495 |pid| |q| #2=#:G1496 |v| #3=#:G1497)
- (RETURN
- (SEQ (COND
- ((SPADCALL |z| (|spadConstant| $ 27)
- (|getShellEntry| $ 25))
- (CONS 0
- (PROGN
- (LETT #0# NIL
- |EUCDOM-;expressIdealMember;LSU;10|)
- (SEQ (LETT |v| NIL
- |EUCDOM-;expressIdealMember;LSU;10|)
- (LETT #1# |l|
- |EUCDOM-;expressIdealMember;LSU;10|)
- G190
- (COND
- ((OR (ATOM #1#)
- (PROGN
- (LETT |v| (CAR #1#)
- |EUCDOM-;expressIdealMember;LSU;10|)
- NIL))
- (GO G191)))
- (SEQ (EXIT (LETT #0#
- (CONS (|spadConstant| $ 27) #0#)
- |EUCDOM-;expressIdealMember;LSU;10|)))
- (LETT #1# (CDR #1#)
- |EUCDOM-;expressIdealMember;LSU;10|)
- (GO G190) G191 (EXIT (NREVERSE0 #0#))))))
- ('T
- (SEQ (LETT |pid| (SPADCALL |l| (|getShellEntry| $ 43))
- |EUCDOM-;expressIdealMember;LSU;10|)
- (LETT |q|
- (SPADCALL |z| (QCDR |pid|)
- (|getShellEntry| $ 34))
- |EUCDOM-;expressIdealMember;LSU;10|)
- (EXIT (COND
- ((QEQCAR |q| 1) (CONS 1 "failed"))
- ('T
- (CONS 0
- (PROGN
- (LETT #2# NIL
- |EUCDOM-;expressIdealMember;LSU;10|)
- (SEQ
- (LETT |v| NIL
- |EUCDOM-;expressIdealMember;LSU;10|)
- (LETT #3# (QCAR |pid|)
- |EUCDOM-;expressIdealMember;LSU;10|)
- G190
- (COND
- ((OR (ATOM #3#)
- (PROGN
- (LETT |v| (CAR #3#)
- |EUCDOM-;expressIdealMember;LSU;10|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (LETT #2#
- (CONS
- (SPADCALL (QCDR |q|) |v|
- (|getShellEntry| $ 26))
- #2#)
- |EUCDOM-;expressIdealMember;LSU;10|)))
- (LETT #3# (CDR #3#)
- |EUCDOM-;expressIdealMember;LSU;10|)
- (GO G190) G191
- (EXIT (NREVERSE0 #2#)))))))))))))))
-
-(DEFUN |EUCDOM-;multiEuclidean;LSU;11| (|l| |z| $)
- (PROG (|n| |l1| |l2| #0=#:G1392 #1=#:G1516 #2=#:G1503 #3=#:G1501
- #4=#:G1502 #5=#:G1393 #6=#:G1517 #7=#:G1506 #8=#:G1504
- #9=#:G1505 |u| |v1| |v2|)
- (RETURN
- (SEQ (LETT |n| (LENGTH |l|) |EUCDOM-;multiEuclidean;LSU;11|)
- (EXIT (COND
- ((ZEROP |n|)
- (|error| "empty list passed to multiEuclidean"))
- ((EQL |n| 1) (CONS 0 (LIST |z|)))
- ('T
- (SEQ (LETT |l1|
- (SPADCALL |l| (|getShellEntry| $ 47))
- |EUCDOM-;multiEuclidean;LSU;11|)
- (LETT |l2|
- (SPADCALL |l1| (QUOTIENT2 |n| 2)
- (|getShellEntry| $ 49))
- |EUCDOM-;multiEuclidean;LSU;11|)
- (LETT |u|
- (SPADCALL
- (PROGN
- (LETT #4# NIL
- |EUCDOM-;multiEuclidean;LSU;11|)
- (SEQ
- (LETT #0# NIL
- |EUCDOM-;multiEuclidean;LSU;11|)
- (LETT #1# |l1|
- |EUCDOM-;multiEuclidean;LSU;11|)
- G190
- (COND
- ((OR (ATOM #1#)
- (PROGN
- (LETT #0# (CAR #1#)
- |EUCDOM-;multiEuclidean;LSU;11|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (PROGN
- (LETT #2# #0#
- |EUCDOM-;multiEuclidean;LSU;11|)
- (COND
- (#4#
- (LETT #3#
- (SPADCALL #3# #2#
- (|getShellEntry| $ 26))
- |EUCDOM-;multiEuclidean;LSU;11|))
- ('T
- (PROGN
- (LETT #3# #2#
- |EUCDOM-;multiEuclidean;LSU;11|)
- (LETT #4# 'T
- |EUCDOM-;multiEuclidean;LSU;11|)))))))
- (LETT #1# (CDR #1#)
- |EUCDOM-;multiEuclidean;LSU;11|)
- (GO G190) G191 (EXIT NIL))
- (COND
- (#4# #3#)
- ('T (|spadConstant| $ 24))))
- (PROGN
- (LETT #9# NIL
- |EUCDOM-;multiEuclidean;LSU;11|)
- (SEQ
- (LETT #5# NIL
- |EUCDOM-;multiEuclidean;LSU;11|)
- (LETT #6# |l2|
- |EUCDOM-;multiEuclidean;LSU;11|)
- G190
- (COND
- ((OR (ATOM #6#)
- (PROGN
- (LETT #5# (CAR #6#)
- |EUCDOM-;multiEuclidean;LSU;11|)
- NIL))
- (GO G191)))
- (SEQ
- (EXIT
- (PROGN
- (LETT #7# #5#
- |EUCDOM-;multiEuclidean;LSU;11|)
- (COND
- (#9#
- (LETT #8#
- (SPADCALL #8# #7#
- (|getShellEntry| $ 26))
- |EUCDOM-;multiEuclidean;LSU;11|))
- ('T
- (PROGN
- (LETT #8# #7#
- |EUCDOM-;multiEuclidean;LSU;11|)
- (LETT #9# 'T
- |EUCDOM-;multiEuclidean;LSU;11|)))))))
- (LETT #6# (CDR #6#)
- |EUCDOM-;multiEuclidean;LSU;11|)
- (GO G190) G191 (EXIT NIL))
- (COND
- (#9# #8#)
- ('T (|spadConstant| $ 24))))
- |z| (|getShellEntry| $ 50))
- |EUCDOM-;multiEuclidean;LSU;11|)
- (EXIT (COND
- ((QEQCAR |u| 1) (CONS 1 "failed"))
- ('T
- (SEQ (LETT |v1|
- (SPADCALL |l1|
- (QCDR (QCDR |u|))
- (|getShellEntry| $ 51))
- |EUCDOM-;multiEuclidean;LSU;11|)
- (EXIT
- (COND
- ((QEQCAR |v1| 1)
- (CONS 1 "failed"))
- ('T
- (SEQ
- (LETT |v2|
- (SPADCALL |l2|
- (QCAR (QCDR |u|))
- (|getShellEntry| $ 51))
- |EUCDOM-;multiEuclidean;LSU;11|)
- (EXIT
- (COND
- ((QEQCAR |v2| 1)
- (CONS 1 "failed"))
- ('T
- (CONS 0
- (SPADCALL (QCDR |v1|)
- (QCDR |v2|)
- (|getShellEntry| $
- 52))))))))))))))))))))))
-
-(DEFUN |EuclideanDomain&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|EuclideanDomain&|))
- (LETT |dv$| (LIST '|EuclideanDomain&| |dv$1|) . #0#)
- (LETT $ (|newShell| 54) . #0#)
- (|setShellEntry| $ 0 |dv$|)
- (|setShellEntry| $ 3
- (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (|setShellEntry| $ 6 |#1|)
- $))))
-
-(MAKEPROP '|EuclideanDomain&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|Boolean|)
- (0 . |zero?|) (|NonNegativeInteger|) (5 . |euclideanSize|)
- |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 . |not|) (26 . |rem|)
- |EUCDOM-;gcd;3S;5|
- (|Record| (|:| |unit| $) (|:| |canonical| $)
- (|:| |associate| $))
- (32 . |unitNormal|) (37 . |One|) (41 . =) (47 . *)
- (53 . |Zero|) (57 . -) (63 . |sizeLess?|) (69 . +)
- (|Record| (|:| |coef1| $) (|:| |coef2| $)
- (|:| |generator| $))
- |EUCDOM-;extendedEuclidean;2SR;7|
- (75 . |extendedEuclidean|) (81 . |exquo|)
- (|Record| (|:| |coef1| $) (|:| |coef2| $))
- (|Union| 35 '"failed") |EUCDOM-;extendedEuclidean;3SU;8|
- (|List| 6) (87 . =) (93 . |second|) (|List| $)
- (|Record| (|:| |coef| 41) (|:| |generator| $))
- (98 . |principalIdeal|) |EUCDOM-;principalIdeal;LR;9|
- (|Union| 41 '"failed") |EUCDOM-;expressIdealMember;LSU;10|
- (103 . |copy|) (|Integer|) (108 . |split!|)
- (114 . |extendedEuclidean|) (121 . |multiEuclidean|)
- (127 . |concat|) |EUCDOM-;multiEuclidean;LSU;11|)
- '#(|sizeLess?| 133 |rem| 139 |quo| 145 |principalIdeal| 151
- |multiEuclidean| 156 |gcd| 162 |extendedEuclidean| 168
- |exquo| 181 |expressIdealMember| 187)
- 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (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 1 7 0 0 19 2 6 0 0 0 20 1 6
- 22 0 23 0 6 0 24 2 6 7 0 0 25 2 6 0 0
- 0 26 0 6 0 27 2 6 0 0 0 28 2 6 7 0 0
- 29 2 6 0 0 0 30 2 6 31 0 0 33 2 6 16
- 0 0 34 2 38 7 0 0 39 1 38 6 0 40 1 6
- 42 41 43 1 38 0 0 47 2 38 0 0 48 49 3
- 6 36 0 0 0 50 2 6 45 41 0 51 2 38 0 0
- 0 52 2 0 7 0 0 11 2 0 0 0 0 15 2 0 0
- 0 0 14 1 0 42 41 44 2 0 45 41 0 53 2
- 0 0 0 0 21 3 0 36 0 0 0 37 2 0 31 0 0
- 32 2 0 16 0 0 17 2 0 45 41 0 46)))))
- '|lookupComplete|))
-@
-
\section{category FIELD Field}
@@ -2087,283 +792,7 @@ GcdDomain(): Category == IntegralDomain with
monomial(1,e1)*p1
@
-\section{GCDDOM.lsp BOOTSTRAP}
-{\bf GCDDOM} needs
-{\bf COMRING} which needs
-{\bf RING} which needs
-{\bf RNG} which needs
-{\bf ABELGRP} which needs
-{\bf CABMON} which needs
-{\bf ABELMON} which needs
-{\bf ABELSG} which needs
-{\bf SETCAT} which needs
-{\bf SINT} which needs
-{\bf UFD} which needs
-{\bf GCDDOM}.
-We break this chain with {\bf GCDDOM.lsp} which we
-cache here. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf GCDDOM}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf GCDDOM.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.
-
-<<GCDDOM.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |GcdDomain;AL| 'NIL)
-
-(DEFUN |GcdDomain| ()
- (LET (#:G1393)
- (COND (|GcdDomain;AL|) (T (SETQ |GcdDomain;AL| (|GcdDomain;|))))))
-
-(DEFUN |GcdDomain;| ()
- (PROG (#0=#:G1391)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|IntegralDomain|)
- (|mkCategory| '|domain|
- '(((|gcd| ($ $ $)) T)
- ((|gcd| ($ (|List| $))) T)
- ((|lcm| ($ $ $)) T)
- ((|lcm| ($ (|List| $))) T)
- ((|gcdPolynomial|
- ((|SparseUnivariatePolynomial| $)
- (|SparseUnivariatePolynomial| $)
- (|SparseUnivariatePolynomial| $)))
- T))
- NIL
- '((|SparseUnivariatePolynomial| $)
- (|List| $))
- NIL))
- |GcdDomain|)
- (SETELT #0# 0 '(|GcdDomain|))))))
-
-(MAKEPROP '|GcdDomain| 'NILADIC T)
-@
-\section{GCDDOM-.lsp BOOTSTRAP}
-{\bf GCDDOM-} depends on {\bf GCDDOM}.
-We break this chain with {\bf GCDDOM-.lsp} which we
-cache here. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf GCDDOM-}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf GCDDOM-.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.
-
-<<GCDDOM-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |GCDDOM-;lcm;3S;1| (|x| |y| $)
- (PROG (LCM)
- (RETURN
- (SEQ (COND
- ((OR (SPADCALL |y| (|spadConstant| $ 7) (QREFELT $ 9))
- (SPADCALL |x| (|spadConstant| $ 7) (QREFELT $ 9)))
- (|spadConstant| $ 7))
- ('T
- (SEQ (LETT LCM
- (SPADCALL |y|
- (SPADCALL |x| |y| (QREFELT $ 10))
- (QREFELT $ 12))
- |GCDDOM-;lcm;3S;1|)
- (EXIT (COND
- ((QEQCAR LCM 0)
- (SPADCALL |x| (QCDR LCM) (QREFELT $ 13)))
- ('T (|error| "bad gcd in lcm computation")))))))))))
-
-(DEFUN |GCDDOM-;lcm;LS;2| (|l| $)
- (SPADCALL (ELT $ 15) |l| (|spadConstant| $ 16) (|spadConstant| $ 7)
- (QREFELT $ 19)))
-
-(DEFUN |GCDDOM-;gcd;LS;3| (|l| $)
- (SPADCALL (ELT $ 10) |l| (|spadConstant| $ 7) (|spadConstant| $ 16)
- (QREFELT $ 19)))
-
-(DEFUN |GCDDOM-;gcdPolynomial;3Sup;4| (|p1| |p2| $)
- (PROG (|e2| |e1| |c1| |p| |c2| #0=#:G1406)
- (RETURN
- (SEQ (COND
- ((SPADCALL |p1| (QREFELT $ 24))
- (SPADCALL |p2| (QREFELT $ 25)))
- ((SPADCALL |p2| (QREFELT $ 24))
- (SPADCALL |p1| (QREFELT $ 25)))
- ('T
- (SEQ (LETT |c1| (SPADCALL |p1| (QREFELT $ 26))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (LETT |c2| (SPADCALL |p2| (QREFELT $ 26))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (LETT |p1|
- (PROG2 (LETT #0#
- (SPADCALL |p1| |c1|
- (QREFELT $ 27))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (QCDR #0#)
- (|check-union| (QEQCAR #0# 0)
- (|SparseUnivariatePolynomial|
- (QREFELT $ 6))
- #0#))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (LETT |p2|
- (PROG2 (LETT #0#
- (SPADCALL |p2| |c2|
- (QREFELT $ 27))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (QCDR #0#)
- (|check-union| (QEQCAR #0# 0)
- (|SparseUnivariatePolynomial|
- (QREFELT $ 6))
- #0#))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (SEQ (LETT |e1| (SPADCALL |p1| (QREFELT $ 29))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (EXIT (COND
- ((< 0 |e1|)
- (LETT |p1|
- (PROG2
- (LETT #0#
- (SPADCALL |p1|
- (SPADCALL
- (|spadConstant| $ 16) |e1|
- (QREFELT $ 32))
- (QREFELT $ 33))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (QCDR #0#)
- (|check-union| (QEQCAR #0# 0)
- (|SparseUnivariatePolynomial|
- (QREFELT $ 6))
- #0#))
- |GCDDOM-;gcdPolynomial;3Sup;4|)))))
- (SEQ (LETT |e2| (SPADCALL |p2| (QREFELT $ 29))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (EXIT (COND
- ((< 0 |e2|)
- (LETT |p2|
- (PROG2
- (LETT #0#
- (SPADCALL |p2|
- (SPADCALL
- (|spadConstant| $ 16) |e2|
- (QREFELT $ 32))
- (QREFELT $ 33))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (QCDR #0#)
- (|check-union| (QEQCAR #0# 0)
- (|SparseUnivariatePolynomial|
- (QREFELT $ 6))
- #0#))
- |GCDDOM-;gcdPolynomial;3Sup;4|)))))
- (LETT |e1| (MIN |e1| |e2|)
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (LETT |c1| (SPADCALL |c1| |c2| (QREFELT $ 10))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (LETT |p1|
- (COND
- ((OR (EQL (SPADCALL |p1| (QREFELT $ 34)) 0)
- (EQL (SPADCALL |p2| (QREFELT $ 34)) 0))
- (SPADCALL |c1| 0 (QREFELT $ 32)))
- ('T
- (SEQ (LETT |p|
- (SPADCALL |p1| |p2|
- (QREFELT $ 35))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (EXIT (COND
- ((EQL
- (SPADCALL |p|
- (QREFELT $ 34))
- 0)
- (SPADCALL |c1| 0
- (QREFELT $ 32)))
- ('T
- (SEQ
- (LETT |c2|
- (SPADCALL
- (SPADCALL |p1|
- (QREFELT $ 36))
- (SPADCALL |p2|
- (QREFELT $ 36))
- (QREFELT $ 10))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (EXIT
- (SPADCALL
- (SPADCALL |c1|
- (SPADCALL
- (PROG2
- (LETT #0#
- (SPADCALL
- (SPADCALL |c2| |p|
- (QREFELT $ 37))
- (SPADCALL |p|
- (QREFELT $ 36))
- (QREFELT $ 27))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (QCDR #0#)
- (|check-union|
- (QEQCAR #0# 0)
- (|SparseUnivariatePolynomial|
- (QREFELT $ 6))
- #0#))
- (QREFELT $ 38))
- (QREFELT $ 37))
- (QREFELT $ 25))))))))))
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- (EXIT (COND
- ((ZEROP |e1|) |p1|)
- ('T
- (SPADCALL
- (SPADCALL (|spadConstant| $ 16) |e1|
- (QREFELT $ 32))
- |p1| (QREFELT $ 39))))))))))))
-
-(DEFUN |GcdDomain&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|GcdDomain&|))
- (LETT |dv$| (LIST '|GcdDomain&| |dv$1|) . #0#)
- (LETT $ (GETREFV 42) . #0#)
- (QSETREFV $ 0 |dv$|)
- (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (QSETREFV $ 6 |#1|)
- $))))
-(MAKEPROP '|GcdDomain&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (0 . |Zero|)
- (|Boolean|) (4 . =) (10 . |gcd|) (|Union| $ '"failed")
- (16 . |exquo|) (22 . *) |GCDDOM-;lcm;3S;1| (28 . |lcm|)
- (34 . |One|) (|Mapping| 6 6 6) (|List| 6) (38 . |reduce|)
- (|List| $) |GCDDOM-;lcm;LS;2| |GCDDOM-;gcd;LS;3|
- (|SparseUnivariatePolynomial| 6) (46 . |zero?|)
- (51 . |unitCanonical|) (56 . |content|) (61 . |exquo|)
- (|NonNegativeInteger|) (67 . |minimumDegree|)
- (72 . |Zero|) (76 . |One|) (80 . |monomial|)
- (86 . |exquo|) (92 . |degree|) (97 . |subResultantGcd|)
- (103 . |leadingCoefficient|) (108 . *)
- (114 . |primitivePart|) (119 . *)
- (|SparseUnivariatePolynomial| $)
- |GCDDOM-;gcdPolynomial;3Sup;4|)
- '#(|lcm| 125 |gcdPolynomial| 136 |gcd| 142) 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 41
- '(0 6 0 7 2 6 8 0 0 9 2 6 0 0 0 10 2 6
- 11 0 0 12 2 6 0 0 0 13 2 6 0 0 0 15 0
- 6 0 16 4 18 6 17 0 6 6 19 1 23 8 0 24
- 1 23 0 0 25 1 23 6 0 26 2 23 11 0 6
- 27 1 23 28 0 29 0 23 0 30 0 23 0 31 2
- 23 0 6 28 32 2 23 11 0 0 33 1 23 28 0
- 34 2 23 0 0 0 35 1 23 6 0 36 2 23 0 6
- 0 37 1 23 0 0 38 2 23 0 0 0 39 1 0 0
- 20 21 2 0 0 0 0 14 2 0 40 40 40 41 1
- 0 0 20 22)))))
- '|lookupComplete|))
-@
\section{category GROUP Group}
<<category GROUP Group>>=
)abbrev category GROUP Group
@@ -2472,141 +901,8 @@ IntegralDomain(): Category ==
true
@
-\section{INTDOM.lsp BOOTSTRAP}
-{\bf INTDOM} depends on itself. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf INTDOM}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf INTDOM.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.
-
-<<INTDOM.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |IntegralDomain;AL| 'NIL)
-
-(DEFUN |IntegralDomain| ()
- (LET (#:G1393)
- (COND
- (|IntegralDomain;AL|)
- (T (SETQ |IntegralDomain;AL| (|IntegralDomain;|))))))
-
-(DEFUN |IntegralDomain;| ()
- (PROG (#0=#:G1391)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|CommutativeRing|) (|Algebra| '$)
- (|EntireRing|)
- (|mkCategory| '|domain|
- '(((|exquo| ((|Union| $ "failed") $ $))
- T)
- ((|unitNormal|
- ((|Record| (|:| |unit| $)
- (|:| |canonical| $)
- (|:| |associate| $))
- $))
- T)
- ((|unitCanonical| ($ $)) T)
- ((|associates?| ((|Boolean|) $ $)) T)
- ((|unit?| ((|Boolean|) $)) T))
- NIL '((|Boolean|)) NIL))
- |IntegralDomain|)
- (SETELT #0# 0 '(|IntegralDomain|))))))
-
-(MAKEPROP '|IntegralDomain| 'NILADIC T)
-@
-\section{INTDOM-.lsp BOOTSTRAP}
-{\bf INTDOM-} depends on {\bf INTDOM}. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf INTDOM-}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf INTDOM-.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.
-
-<<INTDOM-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |INTDOM-;unitNormal;SR;1| (|x| $)
- (VECTOR (|spadConstant| $ 7) |x| (|spadConstant| $ 7)))
-
-(DEFUN |INTDOM-;unitCanonical;2S;2| (|x| $)
- (QVELT (SPADCALL |x| (QREFELT $ 10)) 1))
-
-(DEFUN |INTDOM-;recip;SU;3| (|x| $)
- (COND
- ((SPADCALL |x| (QREFELT $ 13)) (CONS 1 "failed"))
- ('T (SPADCALL (|spadConstant| $ 7) |x| (QREFELT $ 15)))))
-
-(DEFUN |INTDOM-;unit?;SB;4| (|x| $)
- (COND ((QEQCAR (SPADCALL |x| (QREFELT $ 17)) 1) 'NIL) ('T 'T)))
-(DEFUN |INTDOM-;associates?;2SB;5| (|x| |y| $)
- (SPADCALL (QVELT (SPADCALL |x| (QREFELT $ 10)) 1)
- (QVELT (SPADCALL |y| (QREFELT $ 10)) 1) (QREFELT $ 19)))
-(DEFUN |INTDOM-;associates?;2SB;6| (|x| |y| $)
- (COND
- ((SPADCALL |x| (QREFELT $ 13)) (SPADCALL |y| (QREFELT $ 13)))
- ((OR (SPADCALL |y| (QREFELT $ 13))
- (OR (QEQCAR (SPADCALL |x| |y| (QREFELT $ 15)) 1)
- (QEQCAR (SPADCALL |y| |x| (QREFELT $ 15)) 1)))
- 'NIL)
- ('T 'T)))
-
-(DEFUN |IntegralDomain&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|IntegralDomain&|))
- (LETT |dv$| (LIST '|IntegralDomain&| |dv$1|) . #0#)
- (LETT $ (GETREFV 21) . #0#)
- (QSETREFV $ 0 |dv$|)
- (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (QSETREFV $ 6 |#1|)
- (COND
- ((|HasCategory| |#1| '(|Field|)))
- ('T
- (QSETREFV $ 9
- (CONS (|dispatchFunction| |INTDOM-;unitNormal;SR;1|) $))))
- (COND
- ((|HasAttribute| |#1| '|canonicalUnitNormal|)
- (QSETREFV $ 20
- (CONS (|dispatchFunction| |INTDOM-;associates?;2SB;5|)
- $)))
- ('T
- (QSETREFV $ 20
- (CONS (|dispatchFunction| |INTDOM-;associates?;2SB;6|)
- $))))
- $))))
-
-(MAKEPROP '|IntegralDomain&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (0 . |One|)
- (|Record| (|:| |unit| $) (|:| |canonical| $)
- (|:| |associate| $))
- (4 . |unitNormal|) (9 . |unitNormal|)
- |INTDOM-;unitCanonical;2S;2| (|Boolean|) (14 . |zero?|)
- (|Union| $ '"failed") (19 . |exquo|) |INTDOM-;recip;SU;3|
- (25 . |recip|) |INTDOM-;unit?;SB;4| (30 . =)
- (36 . |associates?|))
- '#(|unitNormal| 42 |unitCanonical| 47 |unit?| 52 |recip| 57
- |associates?| 62)
- 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 20
- '(0 6 0 7 1 0 8 0 9 1 6 8 0 10 1 6 12 0
- 13 2 6 14 0 0 15 1 6 14 0 17 2 6 12 0
- 0 19 2 0 12 0 0 20 1 0 8 0 9 1 0 0 0
- 11 1 0 12 0 18 1 0 14 0 16 2 0 12 0 0
- 20)))))
- '|lookupComplete|))
-@
\section{category LMODULE LeftModule}
<<category LMODULE LeftModule>>=
)abbrev category LMODULE LeftModule
@@ -2730,106 +1026,7 @@ Monoid(): Category == SemiGroup with
expt(x,n pretend PositiveInteger)
@
-\section{MONOID.lsp BOOTSTRAP}
-{\bf MONOID} depends on itself. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf MONOID}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf MONOID.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.
-
-<<MONOID.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |Monoid;AL| 'NIL)
-
-(DEFUN |Monoid| ()
- (LET (#:G1388)
- (COND (|Monoid;AL|) (T (SETQ |Monoid;AL| (|Monoid;|))))))
-
-(DEFUN |Monoid;| ()
- (PROG (#0=#:G1386)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|SemiGroup|)
- (|mkCategory| '|domain|
- '(((|One| ($) |constant|) T)
- ((|sample| ($) |constant|) T)
- ((|one?| ((|Boolean|) $)) T)
- ((** ($ $ (|NonNegativeInteger|))) T)
- ((^ ($ $ (|NonNegativeInteger|))) T)
- ((|recip| ((|Union| $ "failed") $)) T))
- NIL
- '((|NonNegativeInteger|) (|Boolean|))
- NIL))
- |Monoid|)
- (SETELT #0# 0 '(|Monoid|))))))
-
-(MAKEPROP '|Monoid| 'NILADIC T)
-@
-\section{MONOID-.lsp BOOTSTRAP}
-{\bf MONOID-} depends on {\bf MONOID}. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf MONOID-}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf MONOID-.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.
-
-<<MONOID-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |MONOID-;^;SNniS;1| (|x| |n| $)
- (SPADCALL |x| |n| (QREFELT $ 8)))
-
-(DEFUN |MONOID-;one?;SB;2| (|x| $)
- (SPADCALL |x| (|spadConstant| $ 10) (QREFELT $ 12)))
-
-(DEFUN |MONOID-;sample;S;3| ($) (|spadConstant| $ 10))
-(DEFUN |MONOID-;recip;SU;4| (|x| $)
- (COND
- ((SPADCALL |x| (|spadConstant| $ 10) (QREFELT $ 12)) (CONS 0 |x|))
- ('T (CONS 1 "failed"))))
-
-(DEFUN |MONOID-;**;SNniS;5| (|x| |n| $)
- (COND
- ((ZEROP |n|) (|spadConstant| $ 10))
- ('T (SPADCALL |x| |n| (QREFELT $ 19)))))
-
-(DEFUN |Monoid&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|Monoid&|))
- (LETT |dv$| (LIST '|Monoid&| |dv$1|) . #0#)
- (LETT $ (GETREFV 21) . #0#)
- (QSETREFV $ 0 |dv$|)
- (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (QSETREFV $ 6 |#1|)
- $))))
-
-(MAKEPROP '|Monoid&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|)
- (|NonNegativeInteger|) (0 . **) |MONOID-;^;SNniS;1|
- (6 . |One|) (|Boolean|) (10 . =) |MONOID-;one?;SB;2|
- |MONOID-;sample;S;3| (|Union| $ '"failed")
- |MONOID-;recip;SU;4| (|PositiveInteger|)
- (|RepeatedSquaring| 6) (16 . |expt|) |MONOID-;**;SNniS;5|)
- '#(|sample| 22 |recip| 26 |one?| 31 ^ 36 ** 42) 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 20
- '(2 6 0 0 7 8 0 6 0 10 2 6 11 0 0 12 2
- 18 6 6 17 19 0 0 0 14 1 0 15 0 16 1 0
- 11 0 13 2 0 0 0 7 9 2 0 0 0 7 20)))))
- '|lookupComplete|))
-@
\section{category OAGROUP OrderedAbelianGroup}
<<category OAGROUP OrderedAbelianGroup>>=
)abbrev category OAGROUP OrderedAbelianGroup
@@ -2989,36 +1186,7 @@ OrderedIntegralDomain(): Category ==
Join(IntegralDomain, OrderedRing)
@
-\section{OINTDOM.lsp BOOTSTRAP}
-{\bf OINTDOM} depends on itself. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf OINTDOM}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf OINTDOM.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.
-
-<<OINTDOM.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |OrderedIntegralDomain;AL| 'NIL)
-(DEFUN |OrderedIntegralDomain| ()
- (LET (#:G1387)
- (COND
- (|OrderedIntegralDomain;AL|)
- (T (SETQ |OrderedIntegralDomain;AL| (|OrderedIntegralDomain;|))))))
-
-(DEFUN |OrderedIntegralDomain;| ()
- (PROG (#0=#:G1385)
- (RETURN
- (PROG1 (LETT #0# (|Join| (|IntegralDomain|) (|OrderedRing|))
- |OrderedIntegralDomain|)
- (SETELT #0# 0 '(|OrderedIntegralDomain|))))))
-
-(MAKEPROP '|OrderedIntegralDomain| 'NILADIC T)
-@
\section{category ORDMON OrderedMonoid}
<<category ORDMON OrderedMonoid>>=
)abbrev category ORDMON OrderedMonoid
@@ -3085,111 +1253,7 @@ OrderedRing(): Category == Join(OrderedAbelianGroup,Ring,Monoid) with
error "x satisfies neither positive?, negative? or zero?"
@
-\section{ORDRING.lsp BOOTSTRAP}
-{\bf ORDRING} depends on {\bf INT}. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf ORDRING}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf ORDRING.o} file to the {\bf OUT} directory.
-This is eventually forcibly replaced by a recompiled version.
-
-Technically I can't justify this bootstrap stanza based on the lattice
-since {\bf INT} is already bootstrapped. However using {\bf INT} naked
-generates a "value stack overflow" error suggesting an infinite recursive
-loop. This code is here to experiment with breaking that loop.
-
-Note that this code is not included in the generated catdef.spad file.
-
-<<ORDRING.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |OrderedRing;AL| 'NIL)
-
-(DEFUN |OrderedRing| ()
- (LET (#:G1393)
- (COND
- (|OrderedRing;AL|)
- (T (SETQ |OrderedRing;AL| (|OrderedRing;|))))))
-
-(DEFUN |OrderedRing;| ()
- (PROG (#0=#:G1391)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|OrderedAbelianGroup|) (|Ring|) (|Monoid|)
- (|mkCategory| '|domain|
- '(((|positive?| ((|Boolean|) $)) T)
- ((|negative?| ((|Boolean|) $)) T)
- ((|sign| ((|Integer|) $)) T)
- ((|abs| ($ $)) T))
- NIL '((|Integer|) (|Boolean|)) NIL))
- |OrderedRing|)
- (SETELT #0# 0 '(|OrderedRing|))))))
-
-(MAKEPROP '|OrderedRing| 'NILADIC T)
-@
-\section{ORDRING-.lsp BOOTSTRAP}
-{\bf ORDRING-} depends on {\bf ORDRING}. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf ORDRING-}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf ORDRING-.o} file to the {\bf OUT} directory.
-This is eventually forcibly replaced by a recompiled version.
-
-Note that this code is not included in the generated catdef.spad file.
-
-<<ORDRING-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |ORDRING-;positive?;SB;1| (|x| $)
- (SPADCALL (|spadConstant| $ 7) |x| (QREFELT $ 9)))
-
-(DEFUN |ORDRING-;negative?;SB;2| (|x| $)
- (SPADCALL |x| (|spadConstant| $ 7) (QREFELT $ 9)))
-(DEFUN |ORDRING-;sign;SI;3| (|x| $)
- (COND
- ((SPADCALL |x| (QREFELT $ 12)) 1)
- ((SPADCALL |x| (QREFELT $ 13)) -1)
- ((SPADCALL |x| (QREFELT $ 15)) 0)
- ('T (|error| "x satisfies neither positive?, negative? or zero?"))))
-
-(DEFUN |ORDRING-;abs;2S;4| (|x| $)
- (COND
- ((SPADCALL |x| (QREFELT $ 12)) |x|)
- ((SPADCALL |x| (QREFELT $ 13)) (SPADCALL |x| (QREFELT $ 18)))
- ((SPADCALL |x| (QREFELT $ 15)) (|spadConstant| $ 7))
- ('T (|error| "x satisfies neither positive?, negative? or zero?"))))
-
-(DEFUN |OrderedRing&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|OrderedRing&|))
- (LETT |dv$| (LIST '|OrderedRing&| |dv$1|) . #0#)
- (LETT $ (GETREFV 20) . #0#)
- (QSETREFV $ 0 |dv$|)
- (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (QSETREFV $ 6 |#1|)
- $))))
-
-(MAKEPROP '|OrderedRing&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (0 . |Zero|)
- (|Boolean|) (4 . <) |ORDRING-;positive?;SB;1|
- |ORDRING-;negative?;SB;2| (10 . |positive?|)
- (15 . |negative?|) (20 . |One|) (24 . |zero?|) (|Integer|)
- |ORDRING-;sign;SI;3| (29 . -) |ORDRING-;abs;2S;4|)
- '#(|sign| 34 |positive?| 39 |negative?| 44 |abs| 49) 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 19
- '(0 6 0 7 2 6 8 0 0 9 1 6 8 0 12 1 6 8
- 0 13 0 6 0 14 1 6 8 0 15 1 6 0 0 18 1
- 0 16 0 17 1 0 8 0 10 1 0 8 0 11 1 0 0
- 0 19)))))
- '|lookupComplete|))
-@
\section{category ORDSET OrderedSet}
<<category ORDSET OrderedSet>>=
)abbrev category ORDSET OrderedSet
@@ -3484,82 +1548,8 @@ Ring(): Category == Join(Rng,Monoid,LeftModule(%)) with
coerce(n) == n * 1$%
@
-\section{RING.lsp BOOTSTRAP}
-{\bf RING} depends on itself. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf RING}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf RING.o} file to the {\bf OUT} directory.
-This is eventually forcibly replaced by a recompiled version.
-
-Note that this code is not included in the generated catdef.spad file.
-
-<<RING.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |Ring;AL| 'NIL)
-(DEFUN |Ring| ()
- (LET (#:G1387) (COND (|Ring;AL|) (T (SETQ |Ring;AL| (|Ring;|))))))
-(DEFUN |Ring;| ()
- (PROG (#0=#:G1385)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|Rng|) (|Monoid|) (|LeftModule| '$)
- (|mkCategory| '|domain|
- '(((|characteristic|
- ((|NonNegativeInteger|)))
- T)
- ((|coerce| ($ (|Integer|))) T))
- '((|unitsKnown| T))
- '((|Integer|) (|NonNegativeInteger|))
- NIL))
- |Ring|)
- (SETELT #0# 0 '(|Ring|))))))
-
-(MAKEPROP '|Ring| 'NILADIC T)
-@
-\section{RING-.lsp BOOTSTRAP}
-{\bf RING-} depends on {\bf RING}. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf RING-}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf RING-.o} file to the {\bf OUT} directory.
-This is eventually forcibly replaced by a recompiled version.
-
-Note that this code is not included in the generated catdef.spad file.
-
-<<RING-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |RING-;coerce;IS;1| (|n| $)
- (SPADCALL |n| (|spadConstant| $ 7) (QREFELT $ 9)))
-
-(DEFUN |Ring&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|Ring&|))
- (LETT |dv$| (LIST '|Ring&| |dv$1|) . #0#)
- (LETT $ (GETREFV 12) . #0#)
- (QSETREFV $ 0 |dv$|)
- (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (QSETREFV $ 6 |#1|)
- $))))
-
-(MAKEPROP '|Ring&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (0 . |One|)
- (|Integer|) (4 . *) |RING-;coerce;IS;1| (|OutputForm|))
- '#(|coerce| 10) 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 10
- '(0 6 0 7 2 6 0 8 0 9 1 0 0 8 10)))))
- '|lookupComplete|))
-@
\section{category RNG Rng}
<<category RNG Rng>>=
)abbrev category RNG Rng
@@ -3586,33 +1576,7 @@ Note that this code is not included in the generated catdef.spad file.
Rng(): Category == Join(AbelianGroup,SemiGroup)
@
-\section{RNG.lsp BOOTSTRAP}
-{\bf RNG} depends on a chain of
-files. We need to break this cycle to build the algebra. So we keep a
-cached copy of the translated {\bf RNG} category which we can write
-into the {\bf MID} directory. We compile the lisp code and copy the
-{\bf RNG.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.
-
-<<RNG.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-(DEFPARAMETER |Rng;AL| 'NIL)
-
-(DEFUN |Rng| ()
- (LET (#:G1387) (COND (|Rng;AL|) (T (SETQ |Rng;AL| (|Rng;|))))))
-
-(DEFUN |Rng;| ()
- (PROG (#0=#:G1385)
- (RETURN
- (PROG1 (LETT #0# (|Join| (|AbelianGroup|) (|SemiGroup|)) |Rng|)
- (SETELT #0# 0 '(|Rng|))))))
-
-(MAKEPROP '|Rng| 'NILADIC T)
-@
\section{category SGROUP SemiGroup}
<<category SGROUP SemiGroup>>=
)abbrev category SGROUP SemiGroup
@@ -3676,102 +1640,7 @@ SetCategory(): Category == Join(BasicType,CoercibleTo OutputForm) with
latex(s : %): String == "\mbox{\bf Unimplemented}"
@
-\section{SETCAT.lsp BOOTSTRAP}
-{\bf SETCAT} needs
-{\bf SINT} which needs
-{\bf UFD} which needs
-{\bf GCDDOM} which needs
-{\bf COMRING} which needs
-{\bf RING} which needs
-{\bf RNG} which needs
-{\bf ABELGRP} which needs
-{\bf CABMON} which needs
-{\bf ABELMON} which needs
-{\bf ABELSG} which needs
-{\bf SETCAT}. We break this chain with {\bf SETCAT.lsp} which we
-cache here. We need to break this cycle to build
-the algebra. So we keep a cached copy of the translated {\bf SETCAT}
-category which we can write into the {\bf MID} directory. We compile
-the lisp code and copy the {\bf SETCAT.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.
-
-<<SETCAT.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |SetCategory;AL| 'NIL)
-
-(DEFUN |SetCategory| ()
- (LET (#:G1388)
- (COND
- (|SetCategory;AL|)
- (T (SETQ |SetCategory;AL| (|SetCategory;|))))))
-
-(DEFUN |SetCategory;| ()
- (PROG (#0=#:G1386)
- (RETURN
- (PROG1 (LETT #0#
- (|sublisV|
- (PAIR '(#1=#:G1385) (LIST '(|OutputForm|)))
- (|Join| (|BasicType|) (|CoercibleTo| '#1#)
- (|mkCategory| '|domain|
- '(((|hash| ((|SingleInteger|) $)) T)
- ((|latex| ((|String|) $)) T))
- NIL '((|String|) (|SingleInteger|))
- NIL)))
- |SetCategory|)
- (SETELT #0# 0 '(|SetCategory|))))))
-
-(MAKEPROP '|SetCategory| 'NILADIC T)
-@
-\section{SETCAT-.lsp BOOTSTRAP}
-{\bf SETCAT-} is the implementation of the operations exported
-by {\bf SETCAT}. It comes into existance whenever {\bf SETCAT}
-gets compiled by Axiom. However this will not happen at the
-lisp level so we also cache this information here. See the
-explanation under the {\bf SETCAT.lsp} section for more details.
-
-Note that this code is not included in the generated catdef.spad file.
-
-<<SETCAT-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(PUT '|SETCAT-;hash;SSi;1| '|SPADreplace| '(XLAM (|s|) 0))
-
-(DEFUN |SETCAT-;hash;SSi;1| (|s| $) 0)
-
-(PUT '|SETCAT-;latex;SS;2| '|SPADreplace|
- '(XLAM (|s|) "\\mbox{\\bf Unimplemented}"))
-
-(DEFUN |SETCAT-;latex;SS;2| (|s| $) "\\mbox{\\bf Unimplemented}")
-
-(DEFUN |SetCategory&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|) . #0=(|SetCategory&|))
- (LETT |dv$| (LIST '|SetCategory&| |dv$1|) . #0#)
- (LETT $ (GETREFV 11) . #0#)
- (QSETREFV $ 0 |dv$|)
- (QSETREFV $ 3 (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (QSETREFV $ 6 |#1|)
- $))))
-
-(MAKEPROP '|SetCategory&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|SingleInteger|)
- |SETCAT-;hash;SSi;1| (|String|) |SETCAT-;latex;SS;2|)
- '#(|latex| 0 |hash| 5) 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 10
- '(1 0 9 0 10 1 0 7 0 8)))))
- '|lookupComplete|))
-@
\section{category STEP StepThrough}
<<category STEP StepThrough>>=
)abbrev category STEP StepThrough
@@ -3843,151 +1712,6 @@ UniqueFactorizationDomain(): Category == GcdDomain with
prime? x == # factorList factor x = 1
@
-\section{UFD.lsp BOOTSTRAP}
-{\bf UFD} needs
-{\bf GCDDOM} which needs
-{\bf COMRING} which needs
-{\bf RING} which needs
-{\bf RNG} which needs
-{\bf ABELGRP} which needs
-{\bf CABMON} which needs
-{\bf ABELMON} which needs
-{\bf ABELSG} which needs
-{\bf SETCAT} which needs
-{\bf SINT} which needs
-{\bf UFD}.
-We need to break this cycle to build the algebra. So we keep a
-cached copy of the translated {\bf UFD} category which we can write
-into the {\bf MID} directory. We compile the lisp code and copy the
-{\bf UFD.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.
-
-<<UFD.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFPARAMETER |UniqueFactorizationDomain;AL| 'NIL)
-
-(DEFUN |UniqueFactorizationDomain| ()
- (LET (#:G1387)
- (COND
- (|UniqueFactorizationDomain;AL|)
- (T (SETQ |UniqueFactorizationDomain;AL|
- (|UniqueFactorizationDomain;|))))))
-
-(DEFUN |UniqueFactorizationDomain;| ()
- (PROG (#0=#:G1385)
- (RETURN
- (PROG1 (LETT #0#
- (|Join| (|GcdDomain|)
- (|mkCategory| '|domain|
- '(((|prime?| ((|Boolean|) $)) T)
- ((|squareFree| ((|Factored| $) $)) T)
- ((|squareFreePart| ($ $)) T)
- ((|factor| ((|Factored| $) $)) T))
- NIL '((|Factored| $) (|Boolean|)) NIL))
- |UniqueFactorizationDomain|)
- (SETELT #0# 0 '(|UniqueFactorizationDomain|))))))
-
-(MAKEPROP '|UniqueFactorizationDomain| 'NILADIC T)
-@
-\section{UFD-.lsp BOOTSTRAP}
-{\bf UFD-} needs {\bf UFD}.
-We need to break this cycle to build the algebra. So we keep a
-cached copy of the translated {\bf UFD-} category which we can write
-into the {\bf MID} directory. We compile the lisp code and copy the
-{\bf UFD-.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.
-
-<<UFD-.lsp BOOTSTRAP>>=
-
-(/VERSIONCHECK 2)
-
-(DEFUN |UFD-;squareFreePart;2S;1| (|x| $)
- (PROG (|s| |f| #0=#:G1403 #1=#:G1401 #2=#:G1399 #3=#:G1400)
- (RETURN
- (SEQ (SPADCALL
- (SPADCALL
- (LETT |s| (SPADCALL |x| (|getShellEntry| $ 8))
- |UFD-;squareFreePart;2S;1|)
- (|getShellEntry| $ 10))
- (PROGN
- (LETT #3# NIL |UFD-;squareFreePart;2S;1|)
- (SEQ (LETT |f| NIL |UFD-;squareFreePart;2S;1|)
- (LETT #0# (SPADCALL |s| (|getShellEntry| $ 14))
- |UFD-;squareFreePart;2S;1|)
- G190
- (COND
- ((OR (ATOM #0#)
- (PROGN
- (LETT |f| (CAR #0#)
- |UFD-;squareFreePart;2S;1|)
- NIL))
- (GO G191)))
- (SEQ (EXIT (PROGN
- (LETT #1# (QCAR |f|)
- |UFD-;squareFreePart;2S;1|)
- (COND
- (#3#
- (LETT #2#
- (SPADCALL #2# #1#
- (|getShellEntry| $ 15))
- |UFD-;squareFreePart;2S;1|))
- ('T
- (PROGN
- (LETT #2# #1#
- |UFD-;squareFreePart;2S;1|)
- (LETT #3# 'T
- |UFD-;squareFreePart;2S;1|)))))))
- (LETT #0# (CDR #0#) |UFD-;squareFreePart;2S;1|)
- (GO G190) G191 (EXIT NIL))
- (COND (#3# #2#) ('T (|spadConstant| $ 16))))
- (|getShellEntry| $ 15))))))
-
-(DEFUN |UFD-;prime?;SB;2| (|x| $)
- (EQL (LENGTH (SPADCALL (SPADCALL |x| (|getShellEntry| $ 18))
- (|getShellEntry| $ 22)))
- 1))
-
-(DEFUN |UniqueFactorizationDomain&| (|#1|)
- (PROG (|dv$1| |dv$| $ |pv$|)
- (RETURN
- (PROGN
- (LETT |dv$1| (|devaluate| |#1|)
- . #0=(|UniqueFactorizationDomain&|))
- (LETT |dv$| (LIST '|UniqueFactorizationDomain&| |dv$1|) . #0#)
- (LETT $ (|newShell| 25) . #0#)
- (|setShellEntry| $ 0 |dv$|)
- (|setShellEntry| $ 3
- (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#))
- (|stuffDomainSlots| $)
- (|setShellEntry| $ 6 |#1|)
- $))))
-
-(MAKEPROP '|UniqueFactorizationDomain&| '|infovec|
- (LIST '#(NIL NIL NIL NIL NIL NIL (|local| |#1|) (|Factored| $)
- (0 . |squareFree|) (|Factored| 6) (5 . |unit|) (|Integer|)
- (|Record| (|:| |factor| 6) (|:| |exponent| 11))
- (|List| 12) (10 . |factors|) (15 . *) (21 . |One|)
- |UFD-;squareFreePart;2S;1| (25 . |factor|)
- (|Union| '"nil" '"sqfr" '"irred" '"prime")
- (|Record| (|:| |flg| 19) (|:| |fctr| 6) (|:| |xpnt| 11))
- (|List| 20) (30 . |factorList|) (|Boolean|)
- |UFD-;prime?;SB;2|)
- '#(|squareFreePart| 35 |prime?| 40) 'NIL
- (CONS (|makeByteWordVec2| 1 'NIL)
- (CONS '#()
- (CONS '#()
- (|makeByteWordVec2| 24
- '(1 6 7 0 8 1 9 6 0 10 1 9 13 0 14 2 6
- 0 0 0 15 0 6 0 16 1 6 7 0 18 1 9 21 0
- 22 1 0 0 0 17 1 0 23 0 24)))))
- '|lookupComplete|))
-@
\section{category VSPACE VectorSpace}