diff options
Diffstat (limited to 'src/algebra/strap/RING-.lsp')
-rw-r--r-- | src/algebra/strap/RING-.lsp | 31 |
1 files changed, 26 insertions, 5 deletions
diff --git a/src/algebra/strap/RING-.lsp b/src/algebra/strap/RING-.lsp index 31e6daf4..dee3b20e 100644 --- a/src/algebra/strap/RING-.lsp +++ b/src/algebra/strap/RING-.lsp @@ -2,7 +2,7 @@ (/VERSIONCHECK 2) (DEFUN |RING-;coerce;IS;1| (|n| $) - (SPADCALL |n| (|spadConstant| $ 7) (QREFELT $ 9))) + (SPADCALL |n| (|spadConstant| $ 7) (|getShellEntry| $ 9))) (DEFUN |Ring&| (|#1|) (PROG (|dv$1| |dv$| $ |pv$|) @@ -10,11 +10,12 @@ (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#)) + (LETT $ (|newShell| 12) . #0#) + (|setShellEntry| $ 0 |dv$|) + (|setShellEntry| $ 3 + (LETT |pv$| (|buildPredVector| 0 0 NIL) . #0#)) (|stuffDomainSlots| $) - (QSETREFV $ 6 |#1|) + (|setShellEntry| $ 6 |#1|) $)))) (MAKEPROP '|Ring&| '|infovec| @@ -27,3 +28,23 @@ (|makeByteWordVec2| 10 '(0 6 0 7 2 6 0 8 0 9 1 0 0 8 10))))) '|lookupComplete|)) + +(SETQ |$CategoryFrame| + (|put| '|Ring&| '|isFunctor| + '(((|coerce| ($ (|Integer|))) T (ELT $ 10)) + ((|coerce| ((|OutputForm|) $)) T (ELT $ NIL))) + (|addModemap| '|Ring&| '(|Ring&| |#1|) + '((CATEGORY |domain| + (SIGNATURE |coerce| (|#1| (|Integer|))) + (SIGNATURE |coerce| ((|OutputForm|) |#1|))) + (|Ring|)) + T '|Ring&| + (|put| '|Ring&| '|mode| + '(|Mapping| + (CATEGORY |domain| + (SIGNATURE |coerce| + (|#1| (|Integer|))) + (SIGNATURE |coerce| + ((|OutputForm|) |#1|))) + (|Ring|)) + |$CategoryFrame|)))) |