1
2(DEFPARAMETER |RectangularMatrixCategory;CAT| 'NIL)
3
4(DECLAIM (NOTINLINE |RectangularMatrixCategory;|))
5
6(DEFPARAMETER |RectangularMatrixCategory;AL| 'NIL)
7
8(DEFUN |RectangularMatrixCategory| (|t#1| |t#2| |t#3| |t#4| |t#5|)
9  (LET (#1=#:G407
10        (#2=#:G408
11         (LIST |t#1| |t#2| (|devaluate| |t#3|) (|devaluate| |t#4|)
12               (|devaluate| |t#5|))))
13    (COND ((SETQ #1# (|assoc| #2# |RectangularMatrixCategory;AL|)) (CDR #1#))
14          (T
15           (SETQ |RectangularMatrixCategory;AL|
16                   (|cons5|
17                    (CONS #2#
18                          (SETQ #1#
19                                  (APPLY #'|RectangularMatrixCategory;| #2#)))
20                    |RectangularMatrixCategory;AL|))
21           #1#))))
22
23(DEFUN |RectangularMatrixCategory;| (|t#1| |t#2| |t#3| |t#4| |t#5|)
24  (SPROG ((#1=#:G406 NIL))
25         (PROG1
26             (LETT #1#
27                   (|sublisV|
28                    (MAKE_PAIRS '(|t#1| |t#2| |t#3| |t#4| |t#5|)
29                                (LIST |t#1| |t#2| |t#3| |t#4| |t#5|))
30                    (COND (|RectangularMatrixCategory;CAT|)
31                          ('T
32                           (LETT |RectangularMatrixCategory;CAT|
33                                 (|Join| (|BiModule| '|t#3| '|t#3|)
34                                         (|HomogeneousAggregate| '|t#3|)
35                                         (|finiteAggregate|)
36                                         (|mkCategory|
37                                          '(((|matrix|
38                                              ($ (|List| (|List| |t#3|))))
39                                             T)
40                                            ((|square?| ((|Boolean|) $)) T)
41                                            ((|diagonal?| ((|Boolean|) $)) T)
42                                            ((|symmetric?| ((|Boolean|) $)) T)
43                                            ((|antisymmetric?| ((|Boolean|) $))
44                                             (|has| |t#3| (|AbelianGroup|)))
45                                            ((|antisymmetric?| ((|Boolean|) $))
46                                             T)
47                                            ((|minRowIndex| ((|Integer|) $)) T)
48                                            ((|maxRowIndex| ((|Integer|) $)) T)
49                                            ((|minColIndex| ((|Integer|) $)) T)
50                                            ((|maxColIndex| ((|Integer|) $)) T)
51                                            ((|nrows|
52                                              ((|NonNegativeInteger|) $))
53                                             T)
54                                            ((|ncols|
55                                              ((|NonNegativeInteger|) $))
56                                             T)
57                                            ((|listOfLists|
58                                              ((|List| (|List| |t#3|)) $))
59                                             T)
60                                            ((|elt|
61                                              (|t#3| $ (|Integer|)
62                                               (|Integer|)))
63                                             T)
64                                            ((|qelt|
65                                              (|t#3| $ (|Integer|)
66                                               (|Integer|)))
67                                             T)
68                                            ((|elt|
69                                              (|t#3| $ (|Integer|) (|Integer|)
70                                               |t#3|))
71                                             T)
72                                            ((|row| (|t#4| $ (|Integer|))) T)
73                                            ((|column| (|t#5| $ (|Integer|)))
74                                             T)
75                                            ((|map|
76                                              ($ (|Mapping| |t#3| |t#3|) $))
77                                             T)
78                                            ((|map|
79                                              ($ (|Mapping| |t#3| |t#3| |t#3|)
80                                               $ $))
81                                             T)
82                                            ((|exquo|
83                                              ((|Union| $ "failed") $ |t#3|))
84                                             (|has| |t#3| (|IntegralDomain|)))
85                                            ((/ ($ $ |t#3|))
86                                             (|has| |t#3| (|Field|)))
87                                            ((|rowEchelon| ($ $))
88                                             (|has| |t#3| (|EuclideanDomain|)))
89                                            ((|columnSpace| ((|List| |t#5|) $))
90                                             (|has| |t#3| (|EuclideanDomain|)))
91                                            ((|rank|
92                                              ((|NonNegativeInteger|) $))
93                                             (|has| |t#3| (|IntegralDomain|)))
94                                            ((|nullity|
95                                              ((|NonNegativeInteger|) $))
96                                             (|has| |t#3| (|IntegralDomain|)))
97                                            ((|nullSpace| ((|List| |t#5|) $))
98                                             (|has| |t#3| (|IntegralDomain|))))
99                                          '(((|Finite|)
100                                             (|has| |t#3| (|Finite|)))
101                                            ((|Module| |t#3|)
102                                             (|has| |t#3|
103                                                    (|CommutativeRing|))))
104                                          NIL NIL)))))))
105           (SETELT #1# 0
106                   (LIST '|RectangularMatrixCategory| |t#1| |t#2| |t#3| |t#4|
107                         |t#5|)))))
108