Opened 2 years ago

Last modified 2 years ago

## #27413 new enhancement

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

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: | Commit: | ||

Dependencies: | Stopgaps: |

### Description

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.

**Note:**See TracTickets for help on using tickets.