sagemath / sage

Main repository of SageMath
https://www.sagemath.org
Other
1.22k stars 424 forks source link

multivariate polynomials over residue fields of number fields are broken #2789

Closed e13df781-8644-42aa-9d66-1e8d332e25bb closed 15 years ago

e13df781-8644-42aa-9d66-1e8d332e25bb commented 16 years ago

This example from Genya Zaytman:

sage: F1.<u> = NumberField(x^6 + 6*x^5 + 124*x^4 + 452*x^3 + 4336*x^2 + 8200*x + 42316)
sage: reduct_id = F1.factor_integer(47)[0][0]
sage: Rf = F1.residue_field(reduct_id)   # = GF(47^3)
sage: R1.<X,Y> = PolynomialRing(Rf)
sage: ubar = Rf(u)
sage: I = ideal([ubar*X+Y])
sage: I.groebner_basis()
[boom]

Basically all we're doing is working with polynomials over a finite field. Perhaps the singular interface can't handle the way the field is presented, or something like that.

Component: commutative algebra

Keywords: residue field multivariate prime groebner basis

Issue created by migration from https://trac.sagemath.org/ticket/2789

93749b3a-c0a4-47a7-b178-004ba08b0b97 commented 15 years ago
comment:2

This now works without major changes... but I found a show stopper bug. It had to do with hashing "large" residue fields, meaning large characteristic residue fields. The hash method tried to hash an ideal of the residue field itself, which tried to hash its parent, leading to an infinite loop.

This means that at no time has a residue field with cardinality a very large prime been created in Sage!

I've added the obvious .ideal() method, tested the hashing and construction for larger examples, and added doctests showing Groebner basis computations.

93749b3a-c0a4-47a7-b178-004ba08b0b97 commented 15 years ago

Changed keywords from none to residue field multivariate prime groebner basis

malb commented 15 years ago

Attachment: trac_2789.patch.gz

Attachment: trac_2789.2.patch.gz

replaces some line numbers in verbose output by ...

85eec1a4-3d04-4b4d-b711-d4db03337c41 commented 15 years ago
comment:4

Merged in Sage 3.3.alpha1