Let S be a definite quaternion order over Z, Fq[X] with q odd, or a number ring. In the first two cases, the unit group of S is finite and can be read off any reduced Gram matrix of S. If the base ring of S is some number ring R, then an explicit description of the finite quotient S * /R * is given in [Vig76].
ModScalars: BoolElt Default: false
Returns a group G isomorphic to the group S1 of elements in S with reduced norm 1 (unless ModScalars is set, in which case G is isomorphic to S1 modulo {∓ 1}).The second object returned is a map from G to S expressing the isomorphism.
This intrinsic computes the set of units S * for the definite order S. When the base ring of S is Z or Fq[X], the returned sequence contains all units of S; when the base field is a number field, the returned sequence contains representatives modulo the unit group of the base ring (since the unit group is infinite in general).
This intrinsic computes the unit group S * of the definite quaternion order S. The function returns an abstract group G, and a map from G to S. When the base ring of S is Z or Fq[X], G represents the full group of units of S; when the base field is a number field, G represents the unit group of S modulo the unit group of the base ring (since the unit group is infinite in general).
> A := QuaternionAlgebra< RationalField() | -1, -1 >; > S1 := MaximalOrder(A); > S2 := QuaternionOrder(A,2); > G1, h1 := UnitGroup(S1); > #G1; 24 > [ A | h1(g) : g in G1 ]; [ 1, -1, -j, -k, i, -1/2 + 1/2*i - 1/2*j - 1/2*k, 1/2 + 1/2*i - 1/2*j + 1/2*k, -1/2 - 1/2*i - 1/2*j + 1/2*k, -1/2 + 1/2*i + 1/2*j + 1/2*k, 1/2 - 1/2*i - 1/2*j - 1/2*k, 1/2 + 1/2*i + 1/2*j - 1/2*k, 1/2 - 1/2*i + 1/2*j + 1/2*k, -1/2 - 1/2*i + 1/2*j - 1/2*k, 1/2 - 1/2*i + 1/2*j - 1/2*k, -1/2 + 1/2*i + 1/2*j - 1/2*k, 1/2 + 1/2*i - 1/2*j - 1/2*k, -1/2 - 1/2*i - 1/2*j - 1/2*k, 1/2 + 1/2*i + 1/2*j + 1/2*k, -1/2 - 1/2*i + 1/2*j + 1/2*k, -1/2 + 1/2*i - 1/2*j + 1/2*k, 1/2 - 1/2*i - 1/2*j + 1/2*k, k, -i, j ] > G2, h2 := UnitGroup(S2); > #G2; 8 > [ A | h2(g) : g in G2 ]; [ 1, -1, -j, j, k, -k, -i, i ]The unit groups of orders in indefinite quaternion algebras A are infinite arithmetic groups, which are twisted analogues of the groups SL2(Z) and their families of subgroups. These are studied in relation to their actions on the upper half complex plane, via an embedding in GL2(R) provided by some isomorphism A tensor R isomorphic to M2(R).
> P<x> := PolynomialRing(Rationals()); > F := NumberField(x^3-3*x-1); > Z_F := MaximalOrder(F); > Foo := InfinitePlaces(F);We use SetSeed since the following line makes random choices.
> SetSeed(1); > A := QuaternionAlgebra(ideal<Z_F | 2>, Foo); > IsDefinite(A); true > O := MaximalOrder(A); > U, h := UnitGroup(O); > U; Permutation group U acting on a set of cardinality 12 Order = 12 = 2^2 * 3 Id(U) (1, 2, 4)(3, 6, 7)(5, 9, 10)(8, 12, 11) (1, 3)(2, 5)(4, 8)(6, 11)(7, 9)(10, 12) > #Units(O); 12