Opened 8 months ago

Last modified 2 months 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) Commit: 3df71d581a10a14a5399b79f666560e1fd2dfc6b
Dependencies: Stopgaps:

Description (last modified by klui)

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 8 months ago by klui

  • Component changed from modular forms to number fields

comment:2 Changed 7 months ago by klui

  • Branch set to u/klui/implement_picard_group_and_unit_group_for_non_maximal_orders

comment:3 Changed 2 months ago by git

  • Commit set to 9d09ebf443058d35ad6f0a9178514b8f44b277fb

Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:

b5aa206Add comments to conductor
ae37da6Add an OrderIdeal class
ce1a7caUse OrderIdeal as base class of NumberFieldIdeal
8416412Generalize free_module to work for OrderIdeals
dda08baAdd a README which I will remove at the end
157ab65Rename from order_ideal to order_fractional_ideal
2f2a91dFix a typo
80905e6Allow conductor to be returned as ideal of self
d2455f2Update README to remind to ask sage-nt
9d09ebfImplement richcmp for ideals

comment:4 Changed 2 months ago by klui

  • Description modified (diff)

comment:5 Changed 2 months ago by git

  • Commit changed from 9d09ebf443058d35ad6f0a9178514b8f44b277fb to c58a523ebe49defce004c17b2128982854ac8c82

Branch pushed to git repo; I updated commit sha1. New commits:

c58a523Implement intersection of orders with ideals

comment:6 Changed 2 months ago by klui

  • Description modified (diff)

comment:7 Changed 2 months ago by git

  • Commit changed from c58a523ebe49defce004c17b2128982854ac8c82 to 3df71d581a10a14a5399b79f666560e1fd2dfc6b

Branch pushed to git repo; I updated commit sha1. This was a forced push. Last 10 new commits:

e487c7eRename from order_ideal to order_fractional_ideal
a061edcFix a typo
ca83717Allow conductor to be returned as ideal of self
8e9337eUpdate README to remind to ask sage-nt
b95b503Implement richcmp for ideals
1adfd9dImplement intersection of orders with ideals
16b453fImplement a hash on fractional ideals
eb87920Fix bug in intersection
c1b9b26Fix remaining bug from conductor
3df71d5Implemented prime_factors

comment:8 Changed 2 months ago by klui

  • Description modified (diff)
Note: See TracTickets for help on using tickets.