The functor Tor_R(M,N) is also functorial in the ring argument. Therefore, a ring map phi from A to B induces an algebra map from the Tor algebra of A to the Tor algebra of B.
i1 : R = ZZ/101[a,b,c]/ideal{a^3,b^3,c^3,a^2*b^2*c^2}
o1 = R
o1 : QuotientRing
|
i2 : S = R/ideal{a*b^2*c^2,a^2*b*c^2,a^2*b^2*c}
o2 = S
o2 : QuotientRing
|
i3 : f = map(S,R)
o3 = map(S,R,{a, b, c})
o3 : RingMap S <--- R
|
i4 : fTor = torMap(f,GenDegreeLimit=>3)
ZZ ZZ
o4 = map(---[X ..X ],---[X ..X ],{X , X , X , X , X , X , 0, 0, 0, 0})
101 1 17 101 1 10 1 2 3 4 5 6
ZZ ZZ
o4 : RingMap ---[X ..X ] <--- ---[X ..X ]
101 1 17 101 1 10
|
i5 : matrix fTor
o5 = | X_1 X_2 X_3 X_4 X_5 X_6 0 0 0 0 |
ZZ 1 ZZ 10
o5 : Matrix (---[X ..X ]) <--- (---[X ..X ])
101 1 17 101 1 17
|
In the following example, the map on Tor is surjective, which means that the ring homomorphism is large (Dress-Kramer).
i6 : R = ZZ/101[a,b,c,d]/ideal{a^3,b^3,c^3,d^3,a*c,a*d,b*c,b*d}
o6 = R
o6 : QuotientRing
|
i7 : S = ZZ/101[a,b]/ideal{a^3,b^3}
o7 = S
o7 : QuotientRing
|
i8 : f = map(S,R,matrix{{a,b,0,0}})
o8 = map(S,R,{a, b, 0, 0})
o8 : RingMap S <--- R
|
i9 : fTor = torMap(f,GenDegreeLimit=>4)
ZZ ZZ
o9 = map(---[X ..X ],---[X ..X ],{X , X , 0, 0, 0, 0, 0, 0, X , X , 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0})
101 1 4 101 1 55 1 2 3 4
ZZ ZZ
o9 : RingMap ---[X ..X ] <--- ---[X ..X ]
101 1 4 101 1 55
|
i10 : matrix fTor
o10 = | X_1 X_2 0 0 0 0 0 0 X_3 X_4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 |
ZZ 1 ZZ 55
o10 : Matrix (---[X ..X ]) <--- (---[X ..X ])
101 1 4 101 1 4
|
The object torMap is a method function with options.