Opened 17 months ago

Last modified 17 months ago

#27012 needs_work enhancement

Add construction method to function fields

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

Description (last modified by gh-BrentBaccala)

This ticket enhances the function field code to add a construction functor and support the construction method:

sage: K.<x> = FunctionField(QQ)
sage: K.construction()
(FunctionField
 Fraction Field of Univariate Polynomial Ring in x over Rational Field)

sage: from sage.rings.function_field.function_field import FunctionFieldFunctor
sage: R.<x> = QQ[]
sage: FunctionFieldFunctor()(Frac(R))
Rational function field in x over Rational Field

Change History (8)

comment:1 Changed 17 months ago by gh-BrentBaccala

  • Authors set to Brent Baccala
  • Branch set to public/27012
  • Commit set to 62a80275e753308a38da35e2fbc73f2e97dadb26
  • Dependencies set to #22982

New commits:

62a8027Trac #27012: add construction method to FunctionField's

comment:2 Changed 17 months ago by gh-BrentBaccala

  • Dependencies #22982 deleted
  • Status changed from new to needs_review

Don't think this needs 22892 as a dependency; it seems to commit fine with 8.5 as a base.

comment:3 Changed 17 months ago by gh-BrentBaccala

  • Description modified (diff)

comment:4 Changed 17 months ago by gh-BrentBaccala

I'm not sure where FunctionFieldFunctor should go. Right now, it's in function_field.py in the src/sage/rings/function_field directory.

Perhaps we should add a new file in that directory called functors.py? There's going to be at least one more ConstructionFunctor in the function field code, for constructing spaces of differentials.

comment:5 follow-up: Changed 17 months ago by mmezzarobba

While your patch looks sensible to me, that's not how things currently work for number fields. Instead, number fields are constructed directly from their base field by an AlgebraicConstructionFunctor. Can you explain why you are deviating from that model? (This may be a stupid question, I basically don't know anything about function fields.) And if your approach is better, should we use it from number fields too?

Also, you may want to add a couple of example of new coercions discovered thanks to the new construction, if there are any.

comment:6 in reply to: ↑ 5 Changed 17 months ago by gh-BrentBaccala

Replying to mmezzarobba:

While your patch looks sensible to me, that's not how things currently work for number fields. Instead, number fields are constructed directly from their base field by an AlgebraicConstructionFunctor. Can you explain why you are deviating from that model? (This may be a stupid question, I basically don't know anything about function fields.) And if your approach is better, should we use it from number fields too?

I don't know if it's any better this way.

Also, you may want to add a couple of example of new coercions discovered thanks to the new construction, if there are any.

Well, the coercions I wanted it to discover, it couldn't, so I ended up coding them by hand (Trac #26993). I created this ticket because I didn't want to just throw this code away, but I don't know if it does anything useful.

comment:7 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:8 Changed 17 months ago by gh-BrentBaccala

  • Milestone changed from sage-8.7 to sage-pending
  • Status changed from needs_review to needs_work
Note: See TracTickets for help on using tickets.