Ask Your Question
1

Specifying names of variables in output of self.coordinate_ring()

asked 2016-02-10 23:18:32 -0500

admiraltso gravatar image

updated 2016-02-19 21:34:26 -0500

Let

E = EllipticCurve([1,2,3,4,5])

Then E.coordinate_ring() outputs a ring with generators.

E.coordinate_ring().gens()

yields

(xbar,ybar,zbar)

Is there a way to change the names of these variables at any point in this process?

EDIT The goal is to have sage treat the underlying rings to be treated as unique objects. Currently if I execute

E1 = EllipticCurve([1,2,3,4,5]).coordinate_ring() 
E1._names = ('a','b','c')
E2 = EllipticCurve([1,2,3,4,5]).coordinate_ring() 
E2._names =('l','m','n')
E1;E2

I get

Quotient of Multivariate Polynomial Ring in x, y, z over Rational Field by the ideal (-x^3 - 2*x^2*z + x*y*z + y^2*z - 4*x*z^2 + 3*y*z^2 - 5*z^3)
Quotient of Multivariate Polynomial Ring in x, y, z over Rational Field by the ideal (-x^3 - 2*x^2*z + x*y*z + y^2*z - 4*x*z^2 + 3*y*z^2 - 5*z^3)

(An indication that the rings are "the same":

E1sing = E1._singular_()
E2sing = E2._singular_()

ProdE1E2sing = singular.ringtensor(E1sing,E2sing);
ProdE1E2.sage()

gives

Quotient of Multivariate Polynomial Ring in x, y, z over Rational Field by the ideal (-x^3 - 2*x^2*z + x*y*z + y^2*z - 4*x*z^2 + 3*y*z^2 - 5*z^3)

whereas there should be 6 variables if the two rings were unique.)


Note: I have also tried to change the _gens, as well as injecting variables at every stage, but all with the same outcome.

edit retag flag offensive close merge delete

1 answer

Sort by ยป oldest newest most voted
0

answered 2016-02-11 10:57:19 -0500

tmonteil gravatar image

updated 2016-02-11 10:58:50 -0500

This is probably an ugly hack, but you after reading the source code of such quotient rings, you can change the hidden _names attribute of your object as follows:

sage: R = E.coordinate_ring()
sage: R._names = ('X','Y','Z')

Then you can see:

sage: R.gens()
(X, Y, Z)

And you can let the Sage (=Python) variables X, Y, Z point to those indeterminates as follows:

sage: R.inject_variables()
Defining X, Y, Z
sage: X+Y^2
Y^2 + X
edit flag offensive delete link more

Comments

Agreed on the ugly hack.

kcrisman gravatar imagekcrisman ( 2016-02-11 15:00:58 -0500 )edit

@tmonteil I un-accepted this answer since it didn't seem to actually change the names. But if I should accept the answer based on the unedited question and ask a new question, please let me know (or whatever the correct thing to do is).

admiraltso gravatar imageadmiraltso ( 2016-02-19 21:38:45 -0500 )edit

Your Answer

Please start posting anonymously - your entry will be published after you log in or create a new account.

Add Answer

Question Tools

1 follower

Stats

Asked: 2016-02-10 23:18:32 -0500

Seen: 109 times

Last updated: Feb 19 '16