#5792: [with patch, needs review] Dirichlet character bug
---------------------------+------------------------------------------------
Reporter: davidloeffler | Owner: craigcitro
Type: defect | Status: new
Priority: major | Milestone:
Component: modular forms | Keywords: dirichlet characters
---------------------------+------------------------------------------------
Comment(by davidloeffler):
There is a bit more too this, though.
Basically, the whole Dirichlet character machinery goes a bit mad whenever
you have two Dirichlet characters with the same modulus and base ring, but
where the zeta orders aren't the same. For a start, the parent
!DirichletGroups compare as equal but their elements are different -- or
at least they will be if we fix the !__call!__ method properly.
Similarly, arithmetic coercion is screwed up, in some interesting ways:
{{{
sage: K.<w> = NumberField(x^2 + x + 1)
sage: G2 = DirichletGroup(7, K, zeta_order=2, zeta=K(-1))
sage: G3 = DirichletGroup(7, K, zeta_order=3, zeta=w)
sage: G2.0 * G3.0
}}}
Here the coercion model will fail miserably to find the right parent.
One option would be to prevent Dirichlet groups ever being created for
which the zeta order is not maximal for the given base ring. This would
sort of work, but would restrict us to Dirichlet groups over integral
domains (so we can guarantee that the group of roots of unity in the ring
is cyclic) and it would make it a pain to implement base extension (at
present the base_extend method for !DirichletGroup_class just base extends
the zeta element it already knows about.
The alternative is to be "honest" and make Dirichlet groups with the same
modulus and base ring but different zeta order into genuinely different
objects, comparing as unequal and with different string representations.
One can then sort out coercion arithmetic using the machinery from
sage.categories.pushout; I coded this up as an experiment (creating a
class "DirichletGroupExtensionFunctor" whose effect was to extend
Dirichlet groups by adding an nth root of unity into their value group).
But it's a bit of a cheat since my "functors" aren't actually functors in
any natural category I can think of.
--
Ticket URL: <http://trac.sagemath.org/sage_trac/ticket/5792#comment:2>
Sage <http://sagemath.org/>
Sage - Open Source Mathematical Software: Building the Car Instead of
Reinventing the Wheel
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---