Segmentation fault when multiplying by variable

In Sage 7.5.1 I'm trying to work with unknown values in GF(3) and polynomials.

The following code gives me a segmentation fault:

P.<x> = GF(3)['x']
var('a')
sigma = 2*x+ 1
print(a*(sigma))


What is the proper way to handle unknown GF(3) values like "a" in Sage?

edit retag close merge delete

Seg fault confirmed with Sage 8.1.beta5; looks a real bug...

( 2017-10-19 00:15:44 +0200 )edit

@eric_g Yikes, should I report it somewhere?

( 2017-10-19 17:38:50 +0200 )edit

same error in 8.1.beta8.

( 2017-10-19 17:47:33 +0200 )edit

Bug confirmed. I haven't been able to track it completely, but experimentally the bug happens when one multiplies a symbolic expression by a non-monic polynomial over some finite field.

You can report it on trac and/or on sage-devel.

Concerning your last question, on possibility (depending on what is your goal) is to define a multivariate polynomial ring in x and a, using for instance P.<x,a> = GF(3)[].

( 2017-10-19 18:15:31 +0200 )edit
1

I've created #24072 to report the bug.

( 2017-10-20 09:09:36 +0200 )edit

Sort by » oldest newest most voted

The ticket #24072 has been positively reviewed, meaning that it will be included into the next SageMath release. The solution found by developers is to forbid to mix elements from the symbolic ring SR and elements from finite fields. The reason is that the symbolic ring is inherently a ring of characteristic $0$. Your example will not result in a segmentation fault anymore, but you'll get an exception TypeError: positive characteristic not allowed in symbolic computations.

In your case, the solution is to work with either a multivariate polynomial ring (P.<x, a> = GF(3)[]), or you may want to have rational functions in a for instance, using P.<x> = GF(3)[] and F.<a> = FractionField(P['a']).

more