1 | initial version |
The integer n = 11053185041 that you are working with is not prime.
Therefore, Z/n is not a field, and (Z/n)^d is not a vector space.
Matrices of size d by d over Z/n act on (Z/n)^d, but what would you mean by the kernel of such a matrix?
In Sage, check if n is prime:
sage: n = 11053185041
sage: n.is_prime()
False
Define a matrix A like yours.
sage: Zn = Zmod(n)
sage: M = MatrixSpace(Zn, 3)
sage: A = M.random_element()
sage: A
[5536663376 7738465479 1500190241]
[3332719788 6363640206 7818018221]
[4113950387 3041564037 4475036832]
Observe that the kernel
method raises a NotImplementedError
.
sage: A.kernel()
Traceback (most recent call last)
...
NotImplementedError: Cannot compute a matrix kernel over Ring of integers modulo 11053185041
2 | No.2 Revision |
The integer n = 11053185041 that you are working with is not prime.
Therefore, Z/n is not a field, and (Z/n)^d is not a vector space.
Matrices of size d by d over Z/n act on (Z/n)^d, but what would you mean by the kernel method
is not implemented in Sage for such matrices.
The reason is that the kernel might not have a simple structure
(a subspace of such a matrix?vector space) in this case.
In Sage, check if n is prime:
sage: n = 11053185041
sage: n.is_prime()
False
Define a matrix A like yours.
sage: Zn = Zmod(n)
sage: M = MatrixSpace(Zn, 3)
sage: A = M.random_element()
sage: A
[5536663376 7738465479 1500190241]
[3332719788 6363640206 7818018221]
[4113950387 3041564037 4475036832]
Observe that the kernel
method raises a NotImplementedError
.
sage: A.kernel()
Traceback (most recent call last)
...
NotImplementedError: Cannot compute a matrix kernel over Ring of integers modulo 11053185041