These methods implement the base change of rings. As input, one can either give a ring map $\phi$, or the ring $S$ (when there is a canonical map from $R$ to $S$).
We illustrate the tensor product of a map of complexes along a ring map.
i1 : R = QQ[a,b,c,d]; |
i2 : S = QQ[s,t]; |
i3 : phi = map(S, R, {s, s+t, t, s-t}) o3 = map (S, R, {s, s + t, t, s - t}) o3 : RingMap S <--- R |
i4 : I = ideal(a*b, b*c, c*d) o4 = ideal (a*b, b*c, c*d) o4 : Ideal of R |
i5 : J = I + ideal(a^2, b^2, c^2, d^2) 2 2 2 2 o5 = ideal (a*b, b*c, c*d, a , b , c , d ) o5 : Ideal of R |
i6 : CI = freeResolution I 1 3 2 o6 = R <-- R <-- R 0 1 2 o6 : Complex |
i7 : CJ = freeResolution J 1 7 13 10 3 o7 = R <-- R <-- R <-- R <-- R 0 1 2 3 4 o7 : Complex |
i8 : f = extend(CJ, CI, map(CJ_0, CI_0, 1)) 1 1 o8 = 0 : R <--------- R : 0 | 1 | 7 3 1 : R <----------------- R : 1 {2} | 0 0 0 | {2} | 1 0 0 | {2} | 0 0 0 | {2} | 0 1 0 | {2} | 0 0 0 | {2} | 0 0 1 | {2} | 0 0 0 | 13 2 2 : R <--------------- R : 2 {3} | 0 0 | {3} | 0 0 | {3} | 1 0 | {3} | 0 0 | {3} | 0 0 | {3} | 0 1 | {3} | 0 0 | {3} | 0 0 | {4} | 0 0 | {4} | 0 0 | {4} | 0 0 | {4} | 0 0 | {4} | 0 0 | o8 : ComplexMap |
i9 : assert isWellDefined f |
i10 : g = phi ** f 1 1 o10 = 0 : S <--------- S : 0 | 1 | 7 3 1 : S <----------------- S : 1 {2} | 0 0 0 | {2} | 1 0 0 | {2} | 0 0 0 | {2} | 0 1 0 | {2} | 0 0 0 | {2} | 0 0 1 | {2} | 0 0 0 | 13 2 2 : S <--------------- S : 2 {3} | 0 0 | {3} | 0 0 | {3} | 1 0 | {3} | 0 0 | {3} | 0 0 | {3} | 0 1 | {3} | 0 0 | {3} | 0 0 | {4} | 0 0 | {4} | 0 0 | {4} | 0 0 | {4} | 0 0 | {4} | 0 0 | o10 : ComplexMap |
i11 : assert isWellDefined g |
i12 : dd^(source g) 1 3 o12 = 0 : S <------------------------- S : 1 | s2+st st+t2 st-t2 | 3 2 1 : S <------------------- S : 2 {2} | -t 0 | {2} | s -s+t | {2} | 0 s+t | o12 : ComplexMap |
i13 : dd^(target g) 1 7 o13 = 0 : S <--------------------------------------------------- S : 1 | s2 s2+st s2+2st+t2 st+t2 t2 st-t2 s2-2st+t2 | 7 13 1 : S <------------------------------------------------------------------------------------------- S : 2 {2} | -s-t 0 0 0 0 0 0 0 -t2 -st+t2 -s2+2st-t2 0 0 | {2} | s -s-t -t 0 0 0 0 0 0 0 0 -s2+2st-t2 0 | {2} | 0 s 0 -t 0 0 0 0 0 0 0 0 -s2+2st-t2 | {2} | 0 0 s s+t -t -s+t 0 0 0 0 0 0 0 | {2} | 0 0 0 0 s+t 0 -s+t 0 s2 0 0 0 0 | {2} | 0 0 0 0 0 s+t t -s+t 0 s2 0 0 0 | {2} | 0 0 0 0 0 0 0 t 0 0 s2 s2+st s2+2st+t2 | 13 10 2 : S <----------------------------------------------------------------------------------- S : 3 {3} | 0 0 -t2 -st+t2 0 s2-2st+t2 0 0 0 0 | {3} | t 0 0 0 0 0 s2-2st+t2 0 0 0 | {3} | -s-t 0 -st -s2+st 0 0 0 0 -s2+2st-t2 0 | {3} | s 0 0 0 0 0 0 0 0 -s2+2st-t2 | {3} | 0 s-t -s2 0 0 0 0 0 0 0 | {3} | 0 -t 0 -s2 0 0 0 0 -s2+st -s2+t2 | {3} | 0 s+t 0 0 -s2 0 0 0 0 0 | {3} | 0 0 0 0 0 0 0 -s2 -s2-st -s2-2st-t2 | {4} | 0 0 s+t 0 -s+t 0 0 0 0 0 | {4} | 0 0 0 s+t t 0 0 -s+t 0 0 | {4} | 0 0 0 0 0 -s-t 0 t 0 0 | {4} | 0 0 0 0 0 s -s-t 0 t 0 | {4} | 0 0 0 0 0 0 s 0 0 t | 10 3 3 : S <------------------------------ S : 4 {4} | 0 0 s2-2st+t2 | {4} | s2 0 0 | {5} | s-t 0 0 | {5} | -t -s+t 0 | {5} | s+t 0 0 | {5} | 0 -t 0 | {5} | 0 0 -t | {5} | 0 -s-t 0 | {5} | 0 s -s-t | {5} | 0 0 s | o13 : ComplexMap |
i14 : prune HH g o14 = 0 : cokernel | t2 st s2 | <--------- cokernel | t2 st s2 | : 0 | 1 | o14 : ComplexMap |