Quaternion orders with type number one

A list of all definite Gorenstein quaternion orders (up to isomorphism) with type numbers one or two over number fields is available here. Since the type number of a quaternion order coincides with the type number of its Gorenstein closure, this classifies all definite quaternion orders of type number at most two.

The file is compressed with tar and bzip2. After unpacking, one can load the file in Magma with load "smalltypenumber.m";

Loading the file in Magma creates a list called OneClassGenera. Each entry of the list consists of a tuple

  < K, D, a, b, G, type, h, B1, B2 >

where

Quaternion orders with type number two

Loading the file in Magma creates a list called TwoClassGenera. Each entry of the list consists of a tuple

  < K, D, a, b, G1, G2, type, h, B1, B2 >

The entries are the same as above, except that G1 and G2 represent the two conjugacy classes of orders in this genus.

Quaternion orders with ideal class number at most two

The isomorphism classes of Gorenstein orders with ideal class number one are represented by the entries in the above lists for which the entry "h" equals 1 or 2.

The isomorphism classes of non-Gorenstein orders with ideal class number one or two can be obtained from the lists of possible Brandt invariants B1 and B2.

Ternary genera with class number one

The (similarity classes of) genera of definite ternary quadratic forms with class number one correspond to the (isomorphism classes of) definite Gorenstein quaternion orders with type number one. This correspondence assigns to each such order O the trace zero submodule of the dual (=inverse different) of O. With respect to the reduced norm this is a definite ternary lattice. Magma provides the intrinsic TernaryForm to compute this information from O automatically.

Example

We show how to read entry number 6341 from the table TwoClassGenera in Magma.

> load "smalltypenumber.m";
> entry:= TwoClassGenera[6341];
> K:= NumberField(Polynomial(entry[1]));
> a:= K ! entry[3]; b:= K ! entry[4];
> Q:= QuaternionAlgebra< K | a,b >;
> G1:= ChangeUniverse(entry[5], Q);
> O1:= Type(K) eq FldRat select QuaternionOrder(G1) else Order(G1);
> G2:= ChangeUniverse(entry[6], Q);
> O2:= Type(K) eq FldRat select QuaternionOrder(G2) else Order(G2);
> type:= entry[7]; h:= entry[8];
> B1:= [ ideal< Integers(K) | ChangeUniverse(b, K) > : b in entry[ 9] ];
> B2:= [ ideal< Integers(K) | ChangeUniverse(b, K) > : b in entry[10] ];
> O1;
Order of Quaternion Algebra with base ring K, defined by i^2 = -1, j^2 = -1
with coefficient ring Maximal Equation Order with defining polynomial x^2 - 3 
over ZZ
> B2;
[
    Principal Ideal
    Generator:
        [-1, -1]
]
For convenience, a function called "ReadOrders" is also provided which does the above steps automatically. Thus the above code is equivalent to:

> load "smalltypenumber.m";
> OO, type, h, B1, B2:= ReadOrders(TwoClassGenera[6341]);
> O1, O2:= Explode(OO);