Opened 2 years ago

# Implement picard group and unit group for non-maximal orders — at Version 4

Reported by: Owned by: klui major sage-wishlist number fields class group, unit group, non-maximal order, picard group N/A u/klui/implement_picard_group_and_unit_group_for_non_maximal_orders 9d09ebf443058d35ad6f0a9178514b8f44b277fb

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.

## Github

I've been using Github for version control. See https://github.com/kevinywlui/sage/tree/order for the lastest development.

### comment:1 Changed 2 years ago by klui

• Component changed from modular forms to number fields

### comment:2 Changed 2 years ago by klui

• Branch set to u/klui/implement_picard_group_and_unit_group_for_non_maximal_orders

### comment:3 Changed 2 years ago by git

 ​b5aa206 `Add comments to conductor` ​ae37da6 `Add an OrderIdeal class` ​ce1a7ca `Use OrderIdeal as base class of NumberFieldIdeal` ​8416412 `Generalize free_module to work for OrderIdeals` ​dda08ba `Add a README which I will remove at the end` ​157ab65 `Rename from order_ideal to order_fractional_ideal` ​2f2a91d `Fix a typo` ​80905e6 `Allow conductor to be returned as ideal of self` ​d2455f2 `Update README to remind to ask sage-nt` ​9d09ebf `Implement richcmp for ideals`