[Next][Prev] [Right] [Left] [Up] [Index] [Root]

Order and Ideal Isomorphisms

Using the inner product on a definite quaternion order, we can use basis reduction and lattice isomorphism techniques to compute isomorphisms between orders and ideals. Note that two ideals may be isomorphic as algebras (in the general sense, not implying existence of a unity), even if they share no left or right order. Since the isomorphism is given by conjugation, this implies, in particular, that they have the same norm. On the other hand, left and right isomorphisms are defined to be isomorphisms of modules, which in general scales the ideal norm by the norm some element which defines the isomorphism by right or left multiplication.

IsIsomorphic(I,J) : AlgQuatOrd, AlgQuatOrd -> BoolElt
Given two definite quaternion orders or ideals over Z, returns true if and only if they are isomorphic as algebras.
Isomorphism(I,J) : AlgQuatOrd, AlgQuatOrd -> BoolElt
Given two isomorphic definite quaternion orders, or ideals over Z, returns an isomorphism as algebras.
IsLeftIsomorphic(I,J) : AlgQuatOrd, AlgQuatOrd -> BoolElt, Map, AlgQuatElt
Given two definite ideals over Z with the same left order S, returns true if and only if they are isomorphic as S-modules. The isomorphism and the transforming scalar -- in the quaternion algebra -- are returned as second and third values if true.
LeftIsomorphism(I,J) : AlgQuatOrd, AlgQuatOrd -> Map, AlgQuatElt
Given two isomorphism left ideals over a definite order S, returns the S-module isomorphism between them, followed by the quaternion algebra element which defines the isomorphism by right multiplication.
IsRightIsomorphic(I,J) : AlgQuatOrd, AlgQuatOrd -> BoolElt, Map, AlgQuatElt
Given two definite ideals over Z with the same right order S, returns true if and only if they are isomorphic as S-modules. The isomorphism and the transforming scalar -- in the quaternion algebra -- are returned as second and third values if true.
RightIsomorphism(I,J) : AlgQuatOrd, AlgQuatOrd -> Map, AlgQuatElt
Given two isomorphism right ideals over a definite order S, returns the S-module isomorphism between them, followed by the quaternion algebra element which defines the isomorphism by left multiplication.

Example AlgQuat_Left_Right_Isomorphisms (H72E12)

We recall the construction of two non-isomorphic left ideals with the same left and right orders, then investigate their isomorphisms as right ideals.

> S := QuaternionOrder(37);
> ideals := LeftIdealClasses(S);
> _, I, J := Explode(ideals);
> R := RightOrder(I);
> _, pi := Isomorphism(R,RightOrder(J));
> J := lideal< S | [ x*pi : x in Basis(J) ] >;
> IsLeftIsomorphic(I,J);
true
> IsRightIsomorphic(I,J);
true Mapping from: AlgQuatOrd: I to AlgQuatOrd: J given by a rule [no inverse]
1 + i - 2*k
> h, x := RightIsomorphism(I,J);
> y := I![1,2,-1,3];
> h(y);
185 - 11*i - 27*j - 10*k
> x*y;
185 - 11*i - 27*j - 10*k
The existence of an isomorphism as a right ideal is due to the fact that the two 2-sided ideals of R do not have non-isomorphic counterparts in S.

> TwoSidedIdealClasses(R);
[
    Quaternion Order of level (37, 1) with base ring Integer Ring,
    Quaternion Ideal of level (37, 1) with base ring Integer Ring
]
> TwoSidedIdealClasses(S);
[
    Quaternion Order of level (37, 1) with base ring Integer Ring
]
Thus while Conjugate(I)*J is in the nonprincipal R-ideal class, the ideal I*Conjugate(J) represents the unique principal ideal class of S.
 [Next][Prev] [Right] [Left] [Up] [Index] [Root]