You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
sagemathgh-39583: Handle various extension degrees in pAdicGenericElement initialisation
I have looked into bug sagemath#28555. I have been able to reproduce it with
version 10.6.beta7.
It turns out the infinite loop can be reproduced with:
```
sage: A.<a> = Qq(5^2)
sage: A.base_ring()(a)
```
But the following also triggers the bug: `A.base_ring()(A(1))`. This is
bug sagemath#33527.
The culprit is in the file
`src/sage/rings/padics/padic_template_element.pxi`. Calling
`A.base_ring()(a)` will call `pAdicTemplateElement.__init__` which will
call `A.base_ring()(a)` again on line 140.
To fix it, I added a check for when the degree of the polynomial (over
the base ring $\mathbb Z_p$ or $\mathbb Q_p$) defining the element is
greater than one. If we were trying to convert to the base ring, I raise
a `TypeError` exception. Else, I raise a `NotImplementedError` exception
(this is the case when one tries to convert between two extensions, it
should be implemented later, but here I only fix the bug).
Finally, I change line 140 from `x = self.base_ring()(x)` to `x =
self.base_ring()(x.polynomial().constant_coefficient())` to avoid the
infinite loop.
NOTE: this is my "hello world" PR, I may have broken something with
this, please be kind. Please do not hesitate to tell me how to do
better.
Fixessagemath#28555.
Fixessagemath#33527.
### 📝 Checklist
<!-- Put an `x` in all the boxes that apply. -->
- [x] The title is concise and informative.
- [x] The description explains in detail what this PR is about.
- [x] I have linked a relevant issue or discussion.
- [x] I have created tests covering the changes.
- [ ] I have updated the documentation and checked the documentation
preview.
### ⌛ Dependencies
<!-- List all open PRs that this PR logically depends on. For example,
-->
<!-- - sagemath#12345: short description why this is a dependency -->
<!-- - sagemath#34567: ... -->
None
URL: sagemath#39583
Reported by: Rubén Muñoz--Bertrand
Reviewer(s): Julian Rüth, roed314, Rubén Muñoz--Bertrand
0 commit comments