Inverse of a Matrix in a Polynomial Quotient Ring

99 views
Skip to first unread message

Samanta

unread,
Oct 5, 2021, 3:52:25 PM10/5/21
to sage-support
Hi supporters,
I am using SageMath (version 8.9) in my Ubuntu 18.04 LTS and during the calculation of inverse of a matrix in the quotient ring GF(2)[x]/<x^8+x^2+1>, I am getting an error "NotImplementedError".
However, the determinant of the matrix is a unit in the ring so it is invertible. Also, I have run the same code in the SageCell (https://sagecell.sagemath.org/) and get no error.
I am attaching the details of the error and a picture of the solution from SageCell. I can't get any idea how to overcome this problem without installing the latest version of SageMath. Please guide me. 
Thanks

Code:
---------------------------------------------
R = PolynomialRing(GF(2),'x')
S = R.quotient(x^8 + x^2 + 1,'a')
a = S.gen()
M= matrix([[a,a],[a^2,1]])
~M

Error in SageMath 8.9:
-------------------------------------------
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "_sage_input_5.py", line 10, in <module> exec compile(u'open("___code___.py","w").write("# -*- coding: utf-8 -*-\\n" + _support_.preparse_worksheet_cell(base64.b64decode("UiA9IFBvbHlub21pYWxSaW5nKEdGKDIpLCd4JykKUyA9IFIucXVvdGllbnQoeF44ICsgeF4yICsgMSkKYSA9IFMuZ2VuKCkKTT0gbWF0cml4KFtbYSxhXSxbYV4yLDFdXSkKfk0="),globals())+"\\n"); execfile(os.path.abspath("___code___.py")) File "", line 1, in <module> File "/tmp/tmpT8yobj/___code___.py", line 7, in <module> exec compile(u'~M File "", line 1, in <module> File "sage/matrix/matrix0.pyx", line 5389, in sage.matrix.matrix0.Matrix.__invert__ (build/cythonized/sage/matrix/matrix0.c:35644) File "sage/matrix/matrix1.pyx", line 628, in sage.matrix.matrix1.Matrix.matrix_over_field (build/cythonized/sage/matrix/matrix1.c:8265) File "sage/rings/ring.pyx", line 1317, in sage.rings.ring.CommutativeRing.fraction_field (build/cythonized/sage/rings/ring.c:11715) File "sage/rings/ring.pyx", line 996, in sage.rings.ring.Ring.is_integral_domain (build/cythonized/sage/rings/ring.c:8473) NotImplementedError

Result in SageCell:
----------------------------------
[ a^5 + a^3 + a     a^6 + a^4 + a^2] 
[a^7 + a^5 + a^3  a^6 + a^4 + a^2]

result_Sage_9_4.png

Emmanuel Charpentier

unread,
Oct 6, 2021, 8:09:00 AM10/6/21
to sage-support
That means that inversion in your ring has been implemented somewhere between Sage 8.9 and  Sage 9.4. The simplest and laziest solution is to install 9.4 by compiling from source (not *that* hard). You may also try the 9.2 version, available in Ubuntu 21.04, but I have no idea of the implementation of inverses in your ring in this version...

--
Emmanuel Charpentier

Reply all
Reply to author
Forward
0 new messages