Opened 11 years ago

Closed 9 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:

Status badges

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 10 years ago.
trac_8241-frobenius.patch (14.5 KB) - added by davidloeffler 9 years ago.
Apply only this patch. Patch against 5.0.beta7

Download all attachments as: .zip

Change History (18)

comment:1 Changed 11 years ago by dmharvey

(oops the Qp above should be Qq)

comment:2 Changed 10 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 10 years ago by roed

Fixed a small problem revealed by the test-bot.

comment:4 Changed 10 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 10 years ago by kedlaya

  • Status changed from needs_review to needs_work

comment:6 Changed 10 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 10 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 10 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 10 years ago by leif

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

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

Changed 10 years ago by roed

comment:10 Changed 9 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 9 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 9 years ago by davidloeffler

  • Description modified (diff)

comment:13 Changed 9 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 9 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 9 years ago by davidloeffler

Apply only this patch. Patch against 5.0.beta7

comment:15 Changed 9 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 9 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.