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:  sage8.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 5adic 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
 Branch set to u/roed/teichmuller_prec
comment:2 Changed 3 years ago by
 Commit set to 5745f993b4c23e11e076111aedc5ebd789710f6d
 Status changed from new to needs_review
comment:3 Changed 3 years ago by
 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
 Commit changed from 5745f993b4c23e11e076111aedc5ebd789710f6d to e20a5a0b81f045679c76b3d226fbc85fccd3463d
Branch pushed to git repo; I updated commit sha1. New commits:
e20a5a0  Update implementation of teichmuller so that we don't lift to too high precision

comment:5 Changed 3 years ago by
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 warnlong 45.5 src/sage/schemes/hyperelliptic_curves/hyperelliptic_padic_field.py # 4 doctests failed sage t warnlong 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
 Commit changed from e20a5a0b81f045679c76b3d226fbc85fccd3463d to 3de062fa0899946f36d4f4bc228b438dd60b67e4
comment:8 Changed 3 years ago by
I just ran all tests in src/sage
with no failures.
comment:9 Changed 3 years ago by
 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
 Branch changed from u/roed/teichmuller_prec to 3de062fa0899946f36d4f4bc228b438dd60b67e4
 Resolution set to fixed
 Status changed from positive_review to closed
New commits:
Fix precision in teichmuller function