Opened 10 years ago

Closed 7 years ago

#8241 closed enhancement (fixed)

p-adic fields should have Witt Frobenius

Reported by: dmharvey Owned by: roed
Priority: major Milestone: sage-5.0
Component: padics Keywords:
Cc: Merged in: sage-5.0.beta9
Authors: David Roe Reviewers: Kiran Kedlaya, David Loeffler
Report Upstream: N/A Work issues:
Branch: Commit:
Dependencies: Stopgaps:

Description (last modified by davidloeffler)

If K is an unramified extension of Qp, there should be a function that computes the canonical Witt p-Frobenius:

sage: K.<a> = Qp(25)
sage: a.witt_frobenius()
???

Apply trac_8241-frobenius.patch to the Sage library.

Attachments (2)

8241.patch (13.0 KB) - added by roed 8 years ago.
trac_8241-frobenius.patch (14.5 KB) - added by davidloeffler 8 years ago.
Apply only this patch. Patch against 5.0.beta7

Download all attachments as: .zip

Change History (18)

comment:1 Changed 10 years ago by dmharvey

(oops the Qp above should be Qq)

comment:2 Changed 9 years ago by roed

  • Authors set to David Roe
  • Milestone set to sage-4.6.1
  • Status changed from new to needs_review

I called the function frobenius rather than witt_frobenius.

comment:3 Changed 9 years ago by roed

Fixed a small problem revealed by the test-bot.

comment:4 Changed 8 years ago by kedlaya

For consistency, these methods should also apply to Qp, with Frobenius acting as the identity map. For instance, the following should not raise an exception:

sage: Qp(7)(2).frobenius()

comment:5 Changed 8 years ago by kedlaya

  • Status changed from needs_review to needs_work

comment:6 Changed 8 years ago by roed

  • Status changed from needs_work to needs_review

There's now a frobenius method for p-adic base rings and fields.

comment:7 follow-up: Changed 8 years ago by roed

I have no idea why adding a method to Qp causes a test in sage/libs/fplll/fplll.py to fail.

comment:8 in reply to: ↑ 7 Changed 8 years ago by jdemeyer

Replying to roed:

I have no idea why adding a method to Qp causes a test in sage/libs/fplll/fplll.py to fail.

See #10195.

comment:9 Changed 8 years ago by leif

  • Description modified (diff)
  • Reviewers set to Kiran Kedlaya

Ping. (#11586, which has positive review, depends on this one.)

Changed 8 years ago by roed

comment:10 Changed 8 years ago by roed

As Sebastian Pancratz noted in his talk, it would be great if someone wrote a better implementation of this.

comment:11 Changed 8 years ago by davidloeffler

The patchbot finds some Sphinx formatting errors in the docstrings:

docstring of sage.rings.padics.padic_ZZ_pX_CA_element.pAdicZZpXCAElement.teichmuller_list:4: WARNING: Inline interpreted text or phrase reference start-string without end-string.
docstring of sage.rings.padics.padic_ZZ_pX_CA_element:2: WARNING: Block quote ends without a blank line; unexpected unindent.
docstring of sage.rings.padics.padic_ZZ_pX_CR_element.pAdicZZpXCRElement.teichmuller_list:4: WARNING: Inline interpreted text or phrase reference start-string without end-string.
docstring of sage.rings.padics.padic_ZZ_pX_CR_element:2: WARNING: Block quote ends without a blank line; unexpected unindent.
docstring of sage.rings.padics.padic_ext_element.pAdicExtElement.frobenius:6: WARNING: Inline interpreted text or phrase reference start-string without end-string.

It's also harping on about trailing whitespace (which is apparently now a Bad Thing, although Sage has been tolerating it cheerfully for years).

comment:12 Changed 8 years ago by davidloeffler

  • Description modified (diff)

comment:13 Changed 8 years ago by davidloeffler

  • Reviewers changed from Kiran Kedlaya to Kiran Kedlaya, David Loeffler

Here's a new patch with the docstrings straightened out and trailing whitespace removed. I've also added a doctest to show that an error is raised when "frobenius" is called on an element of a ramified extension. I'm happy with the rest of the code, so if David's happy with my changes we can call this that's a positive review.

comment:14 Changed 8 years ago by roed

  • Status changed from needs_review to positive_review

Looks good to me. I've created #12657: write a more efficient implementation of Frobenius.

Changed 8 years ago by davidloeffler

Apply only this patch. Patch against 5.0.beta7

comment:15 Changed 8 years ago by davidloeffler

Patchbot's grumbling about trailing whitespace again, so I removed one single space character and re-uploaded the patch.

comment:16 Changed 7 years ago by jdemeyer

  • Merged in set to sage-5.0.beta9
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.