Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement picard group and unit group for non-maximal orders #27413

Open
kevinywlui mannequin opened this issue Mar 4, 2019 · 11 comments
Open

Implement picard group and unit group for non-maximal orders #27413

kevinywlui mannequin opened this issue Mar 4, 2019 · 11 comments

Comments

@kevinywlui
Copy link
Mannequin

kevinywlui mannequin commented Mar 4, 2019

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.

Component: number fields

Keywords: class group, unit group, non-maximal order, picard group

Branch/Commit: u/klui/implement_picard_group_and_unit_group_for_non_maximal_orders @ 3df71d5

Issue created by migration from https://trac.sagemath.org/ticket/27413

@kevinywlui
Copy link
Mannequin Author

kevinywlui mannequin commented Mar 16, 2019

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 17, 2019

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

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 17, 2019

Commit: 9d09ebf

@kevinywlui

This comment has been minimized.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 17, 2019

Changed commit from 9d09ebf to c58a523

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 17, 2019

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

c58a523Implement intersection of orders with ideals

@kevinywlui

This comment has been minimized.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 19, 2019

Changed commit from c58a523 to 3df71d5

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Aug 19, 2019

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

@kevinywlui

This comment has been minimized.

@grhkm21
Copy link
Contributor

grhkm21 commented Feb 12, 2024

Hey @kevinywlui, I am now working on this issue. Is it okay if I use your code, such as the prime_factors and intersection methods? I will list you as a coauthor.

I didn't realise (or rather, I forgot) this issue exists and reimplemented the features at my branch, but I think yours is better written.

(I also didn't know about the paper you linked.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant