Opened 3 years ago
Last modified 3 years ago
#27413 new enhancement
Implement picard group and unit group for non-maximal orders
Reported by: | klui | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-wishlist |
Component: | number fields | Keywords: | class group, unit group, non-maximal 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: | 3df71d581a10a14a5399b79f666560e1fd2dfc6b |
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 isomorphism-testing and isogeny-enumerating of modabvars.) So the goal is to implement the algorithms here: https://math.uni-paderborn.de/fileadmin/mathematik/AG-Computeralgebra/Publications-klueners/picard.pdf . These have already been implemented in Magma (by the authors of the paper, I believe) so we should double-check with the results there.
Non-maximal orders are not well-supported in Sage (Sage uses PARI for maximal orders but PARI does not have non-maximal orders, except for quadratic number fields). For example,
sage: K.<a> = NumberField(x^2-5) sage: O = K.order(a); O.is_maximal() False sage: O.ideal(2) --------------------------------------------------------------------------- NotImplementedError Traceback (most recent call last) <ipython-input-10-8da0cc5ea6ab> in <module>() ----> 1 O.ideal(Integer(2)) /home/klui/sage/local/lib/python2.7/site-packages/sage/rings/number_field/order.pyc in ideal(self, *args, **kwds) 232 """ 233 if not self.is_maximal(): --> 234 raise NotImplementedError("ideals of non-maximal orders not yet supported.") 235 I = self.number_field().ideal(*args, **kwds) 236 if not I.is_integral(): NotImplementedError: ideals of non-maximal 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 non-maximal order as both an ideal of the maximal order and the non-maximal order.
- intersect fractional ideals of non-maximal orders with non-maximal orders.
- return the prime factors of an integral ideal of a non-maximal order.
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 (8)
comment:1 Changed 3 years ago by
- Component changed from modular forms to number fields
comment:2 Changed 3 years ago by
- Branch set to u/klui/implement_picard_group_and_unit_group_for_non_maximal_orders
comment:3 Changed 3 years ago by
- Commit set to 9d09ebf443058d35ad6f0a9178514b8f44b277fb
comment:4 Changed 3 years ago by
- Description modified (diff)
comment:5 Changed 3 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 3 years ago by
- Description modified (diff)
comment:7 Changed 3 years ago by
- Commit changed from c58a523ebe49defce004c17b2128982854ac8c82 to 3df71d581a10a14a5399b79f666560e1fd2dfc6b
Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:
e487c7e | Rename from order_ideal to order_fractional_ideal
|
a061edc | Fix a typo
|
ca83717 | Allow conductor to be returned as ideal of self
|
8e9337e | Update README to remind to ask sage-nt
|
b95b503 | Implement richcmp for ideals
|
1adfd9d | Implement intersection of orders with ideals
|
16b453f | Implement a hash on fractional ideals
|
eb87920 | Fix bug in intersection
|
c1b9b26 | Fix remaining bug from conductor
|
3df71d5 | Implemented prime_factors
|
comment:8 Changed 3 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 sage-nt
Implement richcmp for ideals