$SPAD/src/input algaggr.input

Timothy Daly December 3, 2016

Abstract

Handle direct product of two copies of a monoid R.

Contents

2

The direct product D of two (or more) copies of a monoid R is not implemented in Axiom. The scalar multiplication is implemented coordinatewise, the identity element is defined, but the monoid product between elements of D is not, and the domain is not declared as a monoid. On the other hand, if R is a ring, then the direct product is a ring. (Bug report 117). This is fixed by patch 20080620.01.wxh.patch.

— * —

)set break resume
)spool directproduct.output
)set message auto off
)set message test on
)clear all
--S 1 of 12
NNI has Monoid
--R
--R
--R   (1)  true
--R                                                                Type: Boolean
--E 1
--S 2 of 12
NNI2:=DirectProduct(2,NNI)
--R
--R
--R   (2)  DirectProduct(2,NonNegativeInteger)
--R                                                                 Type: Domain
--E 2
--S 3 of 12
NNI2 has Monoid
--R
--R
--R   (3)  true
--R                                                                Type: Boolean
--E 3
--S 4 of 12
a:NNI2:=directProduct([3,5])
--R
--R
--R   (4)  [3,5]
--R                                    Type: DirectProduct(2,NonNegativeInteger)
--E 4
--S 5 of 12
3*a
--R
--R
--R   (5)  [9,15]

--R                                    Type: DirectProduct(2,NonNegativeInteger)
--E 5
--S 6 of 12
b:NNI2:=1
--R
--R
--R   (6)  [1,1]
--R                                    Type: DirectProduct(2,NonNegativeInteger)
--E 6
--S 7 of 12
1*a
--R
--R
--R   (7)  [3,5]
--R                                    Type: DirectProduct(2,NonNegativeInteger)
--E 7
--S 8 of 12
b*a
--R
--R
--R   (8)  [3,5]
--R                                    Type: DirectProduct(2,NonNegativeInteger)
--E 8
--S 9 of 12
c:NNI2:=directProduct([1,1])
--R
--R
--R   (9)  [1,1]
--R                                    Type: DirectProduct(2,NonNegativeInteger)
--E 9
--S 10 of 12
c*a
--R
--R
--R   (10)  [3,5]
--R                                    Type: DirectProduct(2,NonNegativeInteger)
--E 10
--S 11 of 12
d:NNI2:=directProduct([1,2])
--R
--R
--R   (11)  [1,2]
--R                                    Type: DirectProduct(2,NonNegativeInteger)
--E 11

--S 12 of 12
d*a
--R
--R
--R   (12)  [3,10]
--R                                    Type: DirectProduct(2,NonNegativeInteger)
--E 12
)spool
)lisp (bye)

———-

References^{[1] nothing}

6