Opened 2 years ago
Last modified 2 years ago
#27413 new enhancement
Implement picard group and unit group for nonmaximal orders — at Version 6
Reported by:  klui  Owned by:  

Priority:  major  Milestone:  sagewishlist 
Component:  number fields  Keywords:  class group, unit group, nonmaximal order, picard group 
Cc:  Merged in:  
Authors:  Reviewers:  
Report Upstream:  N/A  Work issues:  
Branch:  u/klui/implement_picard_group_and_unit_group_for_non_maximal_orders (Commits, GitHub, GitLab)  Commit:  c58a523ebe49defce004c17b2128982854ac8c82 
Dependencies:  Stopgaps: 
Description (last modified by )
The goal of this ticket is to compute the unit group (as a subgroup of the unit group of the maximal order) and to compute the picard group (these are useful for isomorphismtesting and isogenyenumerating of modabvars.) So the goal is to implement the algorithms here: https://math.unipaderborn.de/fileadmin/mathematik/AGComputeralgebra/Publicationsklueners/picard.pdf . These have already been implemented in Magma (by the authors of the paper, I believe) so we should doublecheck with the results there.
Nonmaximal orders are not wellsupported in Sage (Sage uses PARI for maximal orders but PARI does not have nonmaximal orders, except for quadratic number fields). For example,
sage: K.<a> = NumberField(x^25) sage: O = K.order(a); O.is_maximal() False sage: O.ideal(2)  NotImplementedError Traceback (most recent call last) <ipythoninput108da0cc5ea6ab> in <module>() > 1 O.ideal(Integer(2)) /home/klui/sage/local/lib/python2.7/sitepackages/sage/rings/number_field/order.pyc in ideal(self, *args, **kwds) 232 """ 233 if not self.is_maximal(): > 234 raise NotImplementedError("ideals of nonmaximal orders not yet supported.") 235 I = self.number_field().ideal(*args, **kwds) 236 if not I.is_integral(): NotImplementedError: ideals of nonmaximal orders not yet supported.
So this might be hard.
Progress
This current branch can:
 return the underlying free module of a fractional ideal of an order given the generators.
 compute the conductor of a nonmaximal order as both an ideal of the maximal order and the nonmaximal order.
 intersect fractional ideals of nonmaximal orders with nonmaximal orders.
Github
I've been using Github for version control. See https://github.com/kevinywlui/sage/tree/order for the lastest development. But I'll push to this ticket every now and then.
Change History (6)
comment:1 Changed 2 years ago by
 Component changed from modular forms to number fields
comment:2 Changed 2 years ago by
 Branch set to u/klui/implement_picard_group_and_unit_group_for_non_maximal_orders
comment:3 Changed 2 years ago by
 Commit set to 9d09ebf443058d35ad6f0a9178514b8f44b277fb
comment:4 Changed 2 years ago by
 Description modified (diff)
comment:5 Changed 2 years ago by
 Commit changed from 9d09ebf443058d35ad6f0a9178514b8f44b277fb to c58a523ebe49defce004c17b2128982854ac8c82
Branch pushed to git repo; I updated commit sha1. New commits:
c58a523  Implement intersection of orders with ideals

comment:6 Changed 2 years ago by
 Description modified (diff)
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
Add comments to conductor
Add an OrderIdeal class
Use OrderIdeal as base class of NumberFieldIdeal
Generalize free_module to work for OrderIdeals
Add a README which I will remove at the end
Rename from order_ideal to order_fractional_ideal
Fix a typo
Allow conductor to be returned as ideal of self
Update README to remind to ask sagent
Implement richcmp for ideals