Opened 3 years ago

Closed 3 years ago

#23736 closed defect (fixed)

Teichmuller lift of residual element has wrong precision

Reported by: kedlaya Owned by:
Priority: major Milestone: sage-8.1
Component: padics Keywords: teichmuller lift
Cc: roed Merged in:
Authors: David Roe Reviewers: Kiran Kedlaya
Report Upstream: N/A Work issues:
Branch: 3de062f (Commits) Commit: 3de062fa0899946f36d4f4bc228b438dd60b67e4
Dependencies: Stopgaps:

Description

See below:

sage: R = Zp(5); R
5-adic Ring with capped relative precision 20
sage: R.teichmuller(2)
2 + 5 + 2*5^2 + 5^3 + 3*5^4 + 4*5^5 + 2*5^6 + 3*5^7 + 3*5^9 + 2*5^10 + 2*5^11 + 4*5^13 + 5^14 + 3*5^15 + 2*5^16 + 4*5^17 + 4*5^19 + O(5^20)
sage: R.teichmuller(GF(5)(2)) % should have precision 20?
2 + O(5)

According to roed, this occurs because GF(5)(2) is first cast into R, with precision 5^1, and then R.teichmuller respects the precision of the element. But since Teichmuller lifts are in principle exact objects, it would make more sense to have the default behavior (when the optional argument prec is omitted) be for the lift to be defined to the full precision of the ambient ring.

Change History (10)

comment:1 Changed 3 years ago by roed

  • Branch set to u/roed/teichmuller_prec

comment:2 Changed 3 years ago by roed

  • Authors set to David Roe
  • Commit set to 5745f993b4c23e11e076111aedc5ebd789710f6d
  • Status changed from new to needs_review

New commits:

5745f99Fix precision in teichmuller function

comment:3 Changed 3 years ago by kedlaya

  • Status changed from needs_review to needs_work

This looks good on its own; but I get some doctest failures in adjacent files:

sage -t src/sage/rings/padics/padic_base_leaves.py  # 3 doctests failed
sage -t src/sage/rings/padics/padic_ZZ_pX_CR_element.pyx  # 1 doctest failed
sage -t src/sage/rings/padics/local_generic.py  # 1 doctest failed

which all appear to be of the form

    PrecisionError: Precision higher than allowed by the precision cap.

comment:4 Changed 3 years ago by git

  • Commit changed from 5745f993b4c23e11e076111aedc5ebd789710f6d to e20a5a0b81f045679c76b3d226fbc85fccd3463d

Branch pushed to git repo; I updated commit sha1. New commits:

e20a5a0Update implementation of teichmuller so that we don't lift to too high precision

comment:5 Changed 3 years ago by roed

Alright, I fixed those problems by adapting the way precision is handled in teichmuller and now all tests in sage.rings.padics pass.

However, there are now failing tests in

sage -t --warn-long 45.5 src/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py  # 4 doctests failed
sage -t --warn-long 45.5 src/sage/modular/overconvergent/weightspace.py  # 5 doctests failed

which look more serious.

I'm going to have to come back to this in a few days, since I need to get ready for the start of classes.

comment:6 Changed 3 years ago by git

  • Commit changed from e20a5a0b81f045679c76b3d226fbc85fccd3463d to 3de062fa0899946f36d4f4bc228b438dd60b67e4

Branch pushed to git repo; I updated commit sha1. New commits:

a97dd52Merge branch 'u/roed/teichmuller_prec' of git://trac.sagemath.org/sage into t/23736/teichmuller_prec
3de062fFix doctest errors from teichmuller change

comment:7 Changed 3 years ago by roed

  • Status changed from needs_work to needs_review

Alright, fixed it.

comment:8 Changed 3 years ago by roed

I just ran all tests in src/sage with no failures.

comment:9 Changed 3 years ago by kedlaya

  • Reviewers set to Kiran Kedlaya
  • Status changed from needs_review to positive_review

Looks good to me. Positive review.

comment:10 Changed 3 years ago by vbraun

  • Branch changed from u/roed/teichmuller_prec to 3de062fa0899946f36d4f4bc228b438dd60b67e4
  • Resolution set to fixed
  • Status changed from positive_review to closed
Note: See TracTickets for help on using tickets.