# Relations in a polynomial ring

Suppose Sage hands me a multivariable polynomial ring specified by some number of generators, and some relations that I don't know. How can I get a list of relations among the generators? In particular, here is the code I'm using:

rays = [(0,0,1),(1,0,-2),(0,1,-2),(-1,0,-2),(0,-1,-2)]
cones = [(1,2,3,4)]
Delta = Fan(cones,rays)
T = ToricVariety(Delta)
R = T.affine_patch(0).coordinate_ring()


I've tried defining a morphism from R to itself which just sends the generators to themselves, then computing a groebner basis for the ideal of the kernel.

generators = R.gens()
phi = R.hom(generators)


Sage doesn't seem to let me do this, since kernel isn't implemented for morphisms defined this way. At this point I'm not sure what else to try. I feel like there must be a simpler way to extract relations among generators in a ring, but after spending a couple of days scouring the documentation I can't seem to notice anything relevant. Help is much appreciated!

edit retag close merge delete

Sort by » oldest newest most voted

Hello,

One has to come back in the category of schemes :

rays = [(0,0,1),(1,0,-2),(0,1,-2),(-1,0,-2),(0,-1,-2)]
cones = [(1,2,3,4)]
Delta = Fan(cones,rays)
T = ToricVariety(Delta)
R = T.affine_patch(0).Spec().coordinate_ring()


R.defining_ideal().gens()


(By the way I also tried cohomology ring : it is not implemented for this toric variety, only for orbifold toric varieties so far.)

Matthieu

more

Hi,

There is no relation in the ring you get. It is a polynomial ring! A quotient would rather looks like the following

sage: R
Multivariate Polynomial Ring in z0, z1, z2, z3 over Rational Field
sage: R.quotient([R.gen(0)**2])
Quotient of Multivariate Polynomial Ring in z0, z1, z2, z3 over Rational Field by the ideal (z0^2)


Vincent

more

Hmmm. That's weird. The coordinate ring of this affine toric variety is supposed to have relations in it. I'll have to take a look through the toric varieties package and see what I'm doing wrong. Thanks for the answer!

1

I guess that you are interested in .cohomology_ring() or some other method... but not in that one ;-)