kernel forgets direct sum components
Problem: kernel changes the ambient free module. For instance, the original might have direct sum components, as in the example below, but the call to 'kernel' loses this information.
S = ZZ/101[a..d]
M = S^1 ++ S^2
F = S^2
f = random(F,M)
K = kernel f
assert(target generators K == M)
assert(target generators K === M)
assert(components target generators K == components M) -- fails
The ambient of the map should also remember this information.
g = K_{0}
ambient g
target ambient g === M
components M
components target ambient g
assert(components M == components target ambient g)
There is (or recently was) the same problem with tensor products and Hom. I wrote special versions “tensorWithSummands” etc to fix this. Mike or Dan commented that making this the global option would potentially increase storage requirements for some processes.
DE
On Nov 15, 2016, at 11:02 AM, Mike Stillman [email protected] wrote:
Problem: kernel changes the ambient free module. For instance, the original might have direct sum components, as in the example below, but the call to 'kernel' loses this information.
S = ZZ/101[a..d] M = S^1 ++ S^2 F = S^2 f = random(F,M) K = kernel f
assert(target generators K == M) assert(target generators K === M) assert(components target generators K == components M) -- failsThe ambient of the map should also remember this information.
g = K_{0} ambient g target ambient g === M components M components target ambient g assert(components M == components target ambient g)
— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub, or mute the thread.
But in this case, there is no computation to do to preserve the information.
Closing this issue in favor of #2891.