i1 : R = QQ[x,y]; |
i2 : I = ideal vars R o2 = ideal (x, y) o2 : Ideal of R |
i3 : M = image vars R o3 = image | x y | 1 o3 : R-module, submodule of R |
i4 : N = prune M o4 = cokernel {1} | -y | {1} | x | 2 o4 : R-module, quotient of R |
i5 : f = N.cache.pruningMap o5 = {1} | 1 0 | {1} | 0 1 | o5 : Matrix |
i6 : isIsomorphism f -- ker (108) called with OptionTable: OptionTable{SubringLimit => infinity} -- ker (108) returned CacheFunction: -*a cache function*- -- ker (108) called with Matrix: {1} | 1 0 | -- {1} | 0 1 | -- ker (108) returned Module: subquotient ({1} | -y |, {1} | -y |) -- {1} | x | {1} | x | assert( ker(map(image(map(R^1,R^{{-1}, {-1}},{{x,y}})),cokernel(map(R^{{-1}, {-1}},R^{{-2}},{{-y}, {x}})),{{1,0}, {0,1}})) === (subquotient(map(R^{{-1}, {-1}},R^{{-2}},{{-y}, {x}}),map(R^{{-1}, {-1}},R^{{-2}},{{-y}, {x}})))) o6 = true |
i7 : f^-1 o7 = {1} | 1 0 | {1} | 0 1 | o7 : Matrix |
i8 : source f o8 = cokernel {1} | -y | {1} | x | 2 o8 : R-module, quotient of R |
i9 : target f o9 = image | x y | 1 o9 : R-module, submodule of R |
i10 : super M 1 o10 = R o10 : R-module, free |
i11 : cover N 2 o11 = R o11 : R-module, free, degrees {2:1} |
i12 : M ++ N o12 = subquotient ({0} | x y 0 0 |, {0} | 0 |) {1} | 0 0 1 0 | {1} | -y | {1} | 0 0 0 1 | {1} | x | 3 o12 : R-module, subquotient of R |
i13 : M ** N o13 = cokernel {2} | -y 0 -y 0 | {2} | x 0 0 -y | {2} | 0 -y x 0 | {2} | 0 x 0 x | 4 o13 : R-module, quotient of R |
i14 : M^3 o14 = image | x y 0 0 0 0 | | 0 0 x y 0 0 | | 0 0 0 0 x y | 3 o14 : R-module, submodule of R |
i15 : I^3 3 2 2 3 o15 = ideal (x , x y, x*y , y ) o15 : Ideal of R |