#11586: bug in p-adic extension norm method
----------------------+-----------------------------------------------------
Reporter: was | Owner: roed
Type: defect | Status: new
Priority: major | Milestone: sage-4.7.2
Component: padics | Keywords:
Work_issues: | Upstream: N/A
Reviewer: | Author:
Merged: | Dependencies:
----------------------+-----------------------------------------------------
{{{
R.<x> = QQ[]
f = x^2 + 3*x + 1
K = Qp(7)
M.<a> = K.extension(f)
M(7).norm()
}}}
The above outputs {{{1 + O(7^20)}}}, which is completely wrong. The norm
should be {{{7^2 + O(7^20)}}}, I think -- anyways, it should be divisible
by 7.
The problem is that the actual code for the norm, which ones sees by
typing {{{a.norm??}}} assumes that the generator for M is in fact a
generator for the maximal ideal of the ring of integers. However, this
assumption is just completely false.
Typing {{{a.norm???}}} we see
{{{
...
norm_of_uniformizer = (-1)**self.parent().degree() *
self.parent().defining_polynomial()[0]
if self.valuation() == 0:
return
self.parent().ground_ring()(self.unit_part().matrix_mod_pn().det())
else:
return
self.parent().ground_ring()(self.unit_part().matrix_mod_pn().det()) *
norm_of_uniformizer**self.valuation()
}}}
The above is wrong as mentioned above. Moreover, it is nonoptimal in that
norm_of_uniformizer is computed but never used in the case when
{{{self.valuation()==0}}}.
This bug caused some confusion when computing with p-adic L-series for a
research paper...
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/11586>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sage-trac?hl=en.