i1 : R = QQ[x,y,z] o1 = R o1 : PolynomialRing |
i2 : f = vars R ++ vars R o2 = | x y z 0 0 0 | | 0 0 0 x y z | 2 6 o2 : Matrix R <--- R |
i3 : g = homomorphism' f -- ker (35) called with OptionTable: OptionTable{SubringLimit => infinity} -- ker (35) returned CacheFunction: -*a cache function*- -- ker (35) called with Matrix: 0 -- 12 -- ker (35) returned Module: R assert( ker(map(R^0,R^{{1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}},0)) === (R^{{1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}, {1}})) o3 = {-1} | x | {-1} | 0 | {-1} | y | {-1} | 0 | {-1} | z | {-1} | 0 | {-1} | 0 | {-1} | x | {-1} | 0 | {-1} | y | {-1} | 0 | {-1} | z | 12 1 o3 : Matrix R <--- R |
i4 : target g === Hom(source f, target f) o4 = true |
We can undo the process with homomorphism.
i5 : f' = homomorphism g o5 = | x y z 0 0 0 | | 0 0 0 x y z | 2 6 o5 : Matrix R <--- R |
i6 : f === f' o6 = true |
The object homomorphism' is a method function.