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
|