As in the commutative case, a map F:R->S where R or S is an NCRing is specified by giving the images in S of the variables of R. The target map is given first.
Common ways to make (and use) an NCRingMap include
Common ways to get information about NCRingMaps Code UL {TO (source,NCRingMap), TO (target,NCRingMap), TO (matrix,NCRingMap), TO (isWellDefined,NCRingMap), TO (isHomogeneous,NCRingMap), TO (symbol _, NCRingMap, ZZ)} Text Common operations involving NCRingMaps Code UL {TO (ambient,NCRingMap), TO (symbol /,List,NCRingMap), TO (symbol SPACE, NCRingMap, NCRingElement), TO (symbol SPACE, NCRingMap, RingElement), TO (symbol SPACE, NCRingMap, NCMatrix), }
i1 : A = skewPolynomialRing(QQ,(-1)_QQ,{w,x,y,z})
--Calling Bergman for NCGB calculation.
Complete!
o1 = A
o1 : NCQuotientRing
|
i2 : B = QQ{a,b,c}
o2 = B
o2 : NCPolynomialRing
|
i3 : f = ncMap(B,A,{a^3,b^2,a+b,a-b})
o3 = NCRingMap B <--- A
o3 : NCRingMap
|
i4 : target f o4 = B o4 : NCPolynomialRing |
i5 : source f o5 = A o5 : NCQuotientRing |
i6 : matrix f o6 = | a^3 b^2 b+a -b+a | o6 : NCMatrix |
Note that NCRingMaps need not be well-defined or homogeneous. Apply a function to an element or a matrix using the usual function notation. NCRingMaps are linear and multiplicative by definition.
i7 : f(w*x+2*y)
3 2
o7 = 2b+a b +2a
o7 : B
|
i8 : isWellDefined f o8 = false |
i9 : isHomogeneous f o9 = false |
The user has the option to define an NCRingMap to be a derivation. Of course, such a map must have the same source and target.
i10 : g = ncMap(B,B,{a*b,b^2,c*a*c},Derivation=>true)
o10 = NCRingMap B <--- B
o10 : NCRingMap
|
i11 : g(a*b)==g(a)*b+a*g(b) o11 = true |
i12 : g(promote(1,B)) o12 = 0 o12 : B |
i13 : g(c*a+2*b)
2
o13 = caca+cab+2b
o13 : B
|