Opened 17 months ago

Last modified 6 weeks ago

#27011 needs_review enhancement

Quotient rings should support function field construction if they are fields.

Reported by: gh-BrentBaccala Owned by:
Priority: minor Milestone: sage-9.2
Component: algebra Keywords: function field
Cc: Merged in:
Authors: Brent Baccala Reviewers:
Report Upstream: N/A Work issues:
Branch: public/27011 (Commits) Commit: 734fa8250342f43e179dcb420bc3ab2bb83ac3ae
Dependencies: Stopgaps:

Description

Univariate polynomial rings have associated function fields:

sage: R.<x> = QQ[]
sage: Frac(R)
Fraction Field of Univariate Polynomial Ring in x over Rational Field
sage: Frac(R).function_field()
Rational function field in x over Rational Field

A similar construction should be possible for quotient rings, if they are fields:

sage: K.<x> = FunctionField(QQ); R.<y> = K[]
sage: R.quo(y^5 - (x^3 + 2*x*y + 1/x)).function_field()
Function field in y defined by y^5 - 2*x*y + (-x^4 - 1)/x

This ticket adds a function_field method to PolynomialQuotientRing_field

Change History (7)

comment:1 Changed 17 months ago by gh-BrentBaccala

  • Authors set to Brent Baccala
  • Branch set to public/27011
  • Commit set to 734fa8250342f43e179dcb420bc3ab2bb83ac3ae
  • Status changed from new to needs_review

New commits:

734fa82Trac #27011: add a function_field method to PolynomialQuotientRing_field

comment:2 Changed 17 months ago by embray

  • Milestone changed from sage-8.6 to sage-8.7

Retarging tickets optimistically to the next milestone. If you are responsible for this ticket (either its reporter or owner) and don't believe you are likely to complete this ticket before the next release (8.7) please retarget this ticket's milestone to sage-pending or sage-wishlist.

comment:3 Changed 14 months ago by embray

  • Milestone changed from sage-8.7 to sage-8.8

Ticket retargeted after milestone closed (if you don't believe this ticket is appropriate for the Sage 8.8 release please retarget manually)

comment:4 Changed 14 months ago by soehms

It's a good idea to have such a method! But I think it would be more useful if conversions between the both realizations would work. Unfortunately, this is not the case:

sage: K.<x> = FunctionField(QQ); R.<y> = K[]
sage: L = R.quo(y^5 - (x^3 + 2*x*y + 1/x))
sage: F = L.function_field()
sage: F(L.an_element())
Traceback (most recent call last):
...
TypeError: cannot convert ybar/1 to an element of Fraction Field of Univariate Polynomial Ring in x over Rational Field
sage: L(F.an_element())
Traceback (most recent call last):
...
ValueError: y is not an element of the base field

It should not be difficult to improve this (for example via the _convert_map_from_ method), since both maps can be obtained as ring homomorphisms:

sage: f = L.hom(F.gens())
sage: g = F.hom(L.gens())
sage: f(L.an_element())
y
sage: g(F.an_element())
ybar
sage: (f*g).is_one()
True
sage: (g*f).is_one()
True

comment:5 Changed 11 months ago by embray

  • Milestone changed from sage-8.8 to sage-8.9

Moving tickets from the Sage 8.8 milestone that have been actively worked on in the last six months to the next release milestone (optimistically).

comment:6 Changed 5 months ago by embray

  • Milestone changed from sage-8.9 to sage-9.1

Ticket retargeted after milestone closed

comment:7 Changed 6 weeks ago by mkoeppe

  • Milestone changed from sage-9.1 to sage-9.2

Batch modifying tickets that will likely not be ready for 9.1, based on a review of the ticket title, branch/review status, and last modification date.

Note: See TracTickets for help on using tickets.