Ask Your Question

Revision history [back]

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

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