-
Notifications
You must be signed in to change notification settings - Fork 128
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Smith normal form over residue ring #4293
Comments
Interesting. But your code snippet actually doesn't run in AA, nor in Nemo (entering it will throw various "not implemented" errors). It only runs in Hecke (and hence in OSCAR) because Hecke actually implements Anyway, Nemocas/AbstractAlgebra.jl#1899 fixes this particular instances. But I'd not be surprised if there were other issues with it. |
Thanks, this is very interesting! I had tracked the SNF code to AbstractAlgebra but couldn't get my example to run, for the reason you mentioned. It seems like there is still something to be done in the implementation over in AbstractAlgebra to make it work in the presence of zero divisors. I'm not sure if this issue should be closed while the one in AA remains open? |
The problem
The function
snf_with_transform
returns inconsistent results, at least over residue rings ofZZ
. As documented, the returned tupleS,T,U = snf_with_transform(A)
should satisfyT*A*U == S
but doesn't in the following example:The function works fine over
ZZ
:Note that a Smith normal form over
ZZ
reduces to a Smith normal form overZZ/8
by reducing all the entries mod 8. This shows that the matrixS
computed overZZ/8
was wrong (its 3rd diagonal entry should be 4 instead of 0) andT*A*U
was right.Version information
The text was updated successfully, but these errors were encountered: