i1 : R = QQ[a..f]; |
i2 : F = matrix{{a,b,d,e},{b,c,e,f}}
o2 = | a b d e |
| b c e f |
2 4
o2 : Matrix R <--- R
|
i3 : M = ker F
-- ker (113) called with OptionTable: OptionTable{SubringLimit => infinity}
-- ker (113) returned CacheFunction: -*a cache function*-
-- ker (113) called with Matrix: | a b d e |
-- | b c e f |
-- ker (113) returned Module: image {1} | cd-be 0 e2-df ce-bf |
-- {1} | -bd+ae e2-df 0 -be+af |
-- {1} | b2-ac -ce+bf -be+af 0 |
-- {1} | 0 cd-be bd-ae b2-ac |
assert( ker(map(R^2,R^{{-1}, {-1}, {-1}, {-1}},{{a,b,d,e}, {b,c,e,f}})) === (image(map(R^{{-1}, {-1}, {-1}, {-1}},R^{{-3}, {-3}, {-3}, {-3}},{{c*d-b*e,0,e^2-d*f,c*e-b*f}, {-b*d+a*e,e^2-d*f,0,-b*e+a*f}, {b^2-a*c,-c*e+b*f,-b*e+a*f,0}, {0,c*d-b*e,b*d-a*e,b^2-a*c}}))))
o3 = image {1} | cd-be 0 e2-df ce-bf |
{1} | -bd+ae e2-df 0 -be+af |
{1} | b2-ac -ce+bf -be+af 0 |
{1} | 0 cd-be bd-ae b2-ac |
4
o3 : R-module, submodule of R
|
i4 : coker F
o4 = cokernel | a b d e |
| b c e f |
2
o4 : R-module, quotient of R
|
i5 : image F
o5 = image | a b d e |
| b c e f |
2
o5 : R-module, submodule of R
|
i6 : generators M
o6 = {1} | cd-be 0 e2-df ce-bf |
{1} | -bd+ae e2-df 0 -be+af |
{1} | b2-ac -ce+bf -be+af 0 |
{1} | 0 cd-be bd-ae b2-ac |
4 4
o6 : Matrix R <--- R
|
i7 : relations M
o7 = 0
4
o7 : Matrix R <--- 0
|
i8 : presentation M
o8 = {3} | -f -e |
{3} | b a |
{3} | -c -b |
{3} | e d |
4 2
o8 : Matrix R <--- R
|