# Quaternion Algebras

- [Introduction](introduction.md)

- [Creation of Quaternion Algebras](creation.md)

  - [`QuaternionAlgebra< K | a, b >: Rng, RngElt, RngElt → AlgQuat`](creation.md#constructor-constructor-quaternionalgebra-rng-rngelt-rngelt-algquat)

  - [`AssignNames(~A, S): AlgQuat, [MonStgElt]`](creation.md#function-assignnames-algquat-monstgelt-ref)

  - [`Example: Quaternion Constructor`](creation.md#example-ex-24b190)

  - [`Example: Quaternion Constructor Char2`](creation.md#example-ex-c9a2d5)

  - [`QuaternionAlgebra(N): RngIntElt → AlgQuat`](creation.md#function-quaternionalgebra-rngintelt)

  - [`QuaternionAlgebra(N): RngUPolElt → AlgQuat`](creation.md#function-quaternionalgebra-rngupolelt)

  - [`QuaternionAlgebra(I): RngOrdIdl → AlgQuat`](creation.md#function-quaternionalgebra-rngordidl)

  - [`QuaternionAlgebra(I, S): RngOrdIdl, [PlcNumElt] → AlgQuat`](creation.md#function-quaternionalgebra-rngordidl-plcnumelt)

  - [`QuaternionAlgebra(S): [PlcNumElt] → AlgQuat`](creation.md#function-quaternionalgebra-plcnumelt)

  - [`Example: Quaternion Constructor Over NumberField`](creation.md#example-ex-b19daa)

  - [`QuaternionAlgebra(D1, D2, T): RngIntElt, RngIntElt, RngIntElt → AlgQuat`](creation.md#function-quaternionalgebra-rngintelt-rngintelt-rngintelt)

  - [`Example: Quaternion Constructor Over Rationals`](creation.md#example-ex-359d98)

- [Creation of Quaternion Orders](order-creation.md)

  - [Creation of Orders from Elements](order-creation.md#creation-of-orders-from-elements)

    - [`QuaternionOrder(S): [AlgQuatElt] → AlgQuatOrd`](order-creation.md#function-quaternionorder-algquatelt)

    - [`QuaternionOrder(R, S): Rng, [AlgQuatElt] → AlgQuatOrd`](order-creation.md#function-quaternionorder-rng-algquatelt)

    - [`Order(R, S): Rng, [AlgQuatElt] → AlgQuatOrd`](order-creation.md#function-order-rng-algquatelt)

    - [`Example: Quaternion Orders Over Q FqX`](order-creation.md#example-ex-b0f32f)

  - [Creation of Maximal Orders](order-creation.md#creation-of-maximal-orders)

    - [`MaximalOrder(A): AlgQuat[FldRat] → AlgQuatOrd`](order-creation.md#function-maximalorder-algquat-fldrat)

    - [`MaximalOrder(A): AlgQuat[FldFunRat] → AlgQuatOrd`](order-creation.md#function-maximalorder-algquat-fldfunrat)

    - [`MaximalOrder(A): AlgQuat[FldOrd] → AlgAssVOrd`](order-creation.md#function-maximalorder-algquat-fldord)

    - [`MaximalOrder(A): AlgQuat[FldNum] → AlgAssVOrd`](order-creation.md#function-maximalorder-algquat-fldnum)

    - [`Example: Quaternion MaximalOrder`](order-creation.md#example-ex-9b04e9)

    - [`MaximalOrder(O): AlgQuatOrd → AlgQuat`](order-creation.md#function-maximalorder-algquatord)

    - [`MaximalOrder(O): AlgAssVOrd[RngOrd] → AlgAssVOrd`](order-creation.md#function-maximalorder-algassvord-rngord)

    - [`pMaximalOrder(O, p): AlgQuatOrd, RngElt → AlgQuatOrd, RngIntElt`](order-creation.md#function-pmaximalorder-algquatord-rngelt)

    - [`pMaximalOrder(O, p): AlgAssVOrd, RngOrdIdl → AlgAssVOrd, RngIntElt`](order-creation.md#function-pmaximalorder-algassvord-rngordidl)

    - [`TameOrder(A): AlgQuat[FldAlg] → AlgAssVOrd`](order-creation.md#function-tameorder-algquat-fldalg)

  - [Creation of Orders with given Discriminant](order-creation.md#creation-of-orders-with-given-discriminant)

    - [`Order(O, N): AlgQuatOrd, RngElt → AlgQuatOrd`](order-creation.md#function-order-algquatord-rngelt)

    - [`Order(O, N): AlgAssVOrd, RngOrdIdl → AlgAssVOrd`](order-creation.md#function-order-algassvord-rngordidl)

    - [`GorensteinClosure(O): AlgAssVOrd → AlgAssVOrd, .`](order-creation.md#function-algquat-gorensteinclosure)

    - [`Example: Quaternion Orders`](order-creation.md#example-ex-966516)

  - [Creation of Orders with given Discriminant over the Integers](order-creation.md#creation-of-orders-with-given-discriminant-over-the-integers)

    - [`QuaternionOrder(A, M): AlgQuat[FldRat], RngIntElt → AlgQuatOrd`](order-creation.md#function-quaternionorder-algquat-fldrat-rngintelt)

    - [`QuaternionOrder(N): RngIntElt → AlgQuatOrd`](order-creation.md#function-quaternionorder-rngintelt)

    - [`QuaternionOrder(N, M): RngIntElt, RngIntElt → AlgQuatOrd`](order-creation.md#function-quaternionorder-rngintelt-rngintelt)

    - [`QuaternionOrder(D1, D2, T): RngIntElt, RngIntElt, RngIntElt → AlgQuat`](order-creation.md#function-quaternionorder-rngintelt-rngintelt-rngintelt)

    - [`Example: Quaternion Orders Over The Integers`](order-creation.md#example-ex-f04e9e)

- [Elements of Quaternion Algebras](elements.md)

  - [Creation of Elements](elements.md#creation-of-elements)

    - [`A ! 0: AlgQuat, RngIntElt → AlgQuatElt`](elements.md#operation-op-algquat-rngintelt)

    - [`Zero(A): AlgQuat → AlgQuatElt`](elements.md#function-zero-algquat)

    - [`A ! 1: AlgQuat, RngIntElt → AlgQuatElt`](elements.md#operation-op-algquat-rngintelt-2)

    - [`One(A): AlgQuat → AlgQuatElt`](elements.md#function-one-algquat)

    - [`A . i: AlgQuat, RngIntElt → AlgQuatElt`](elements.md#operation-operation-algquat-rngintelt-algquatelt)

    - [`Name(A, i): AlgQuat, RngIntElt → AlgQuatElt`](elements.md#function-name-algquat-rngintelt)

    - [`A ! x: AlgQuat, Any → AlgQuatElt`](elements.md#operation-op-algquat-any)

  - [Arithmetic of Elements](elements.md#arithmetic-of-elements)

    - [`x + y: AlgQuatElt, AlgQuatElt → AlgQuatElt`](elements.md#operation-op-plus-algquatelt-algquatelt)

    - [`x - y: AlgQuatElt, AlgQuatElt → AlgQuatElt`](elements.md#operation-op-minus-algquatelt-algquatelt)

    - [`x * y: AlgQuatElt, AlgQuatElt → AlgQuatElt`](elements.md#operation-op-times-algquatelt-algquatelt)

    - [`x / y: AlgQuatElt, AlgQuatElt → AlgQuatElt`](elements.md#operation-op-div-algquatelt-algquatelt)

    - [`x / y: AlgQuatOrdElt, AlgQuatOrdElt → AlgQuatElt`](elements.md#operation-op-div-algquatordelt-algquatordelt)

    - [`x eq y: AlgQuatElt, AlgQuatElt → BoolElt`](elements.md#operation-op-eq-algquatelt-algquatelt)

    - [`x ne y: AlgQuatElt, AlgQuatElt → BoolElt`](elements.md#operation-op-ne-algquatelt-algquatelt)

    - [`x in A: AlgQuatElt, AlgQuat → BoolElt`](elements.md#operation-op-in-algquatelt-algquat)

    - [`x notin A: AlgQuatElt, AlgQuat → BoolElt`](elements.md#operation-op-notin-algquatelt-algquat)

    - [`Conjugate(x): AlgQuatElt → AlgQuatElt`](elements.md#function-conjugate-algquatelt)

    - [`Conjugate(x): AlgQuatOrdElt → AlgQuatOrdElt`](elements.md#function-conjugate-algquatordelt)

    - [`Conjugate(x): AlgAssVOrdElt → AlgAssVOrdElt`](elements.md#function-conjugate-algassvordelt)

    - [`ElementToSequence(x): AlgQuatElt → SeqEnum`](elements.md#function-elementtosequence-algquatelt)

    - [`Eltseq(x): AlgQuatElt → SeqEnum`](elements.md#function-eltseq-algquatelt)

    - [`Coordinates(x): AlgQuatElt → SeqEnum`](elements.md#function-coordinates-algquatelt)

    - [`Norm(x): AlgQuatElt → FldElt`](elements.md#function-norm-algquatelt)

    - [`Norm(x): AlgQuatOrdElt → RngElt`](elements.md#function-norm-algquatordelt)

    - [`Trace(x): AlgQuatElt → FldElt`](elements.md#function-trace-algquatelt)

    - [`Trace(x): AlgQuatOrdElt → RngElt`](elements.md#function-trace-algquatordelt)

    - [`CharacteristicPolynomial(x): AlgQuatElt → RngUPolElt`](elements.md#function-characteristicpolynomial-algquatelt)

    - [`CharacteristicPolynomial(x): AlgQuatOrdElt → RngUPolElt`](elements.md#function-characteristicpolynomial-algquatordelt)

    - [`MinimalPolynomial(x): AlgQuatElt → RngUPolElt`](elements.md#function-minimalpolynomial-algquatelt)

    - [`Example: Element Arithmetic`](elements.md#example-ex-317c57)

- [Attributes of Quaternion Algebras](algebra-attributes.md)

  - [`BaseField(A): AlgQuat → Fld`](algebra-attributes.md#function-basefield-algquat)

  - [`BaseRing(A): AlgQuat → Fld`](algebra-attributes.md#function-basering-algquat)

  - [`Basis(A): AlgQuat → SeqEnum`](algebra-attributes.md#function-basis-algquat)

  - [`RamifiedPrimes(A): AlgQuat → SeqEnum`](algebra-attributes.md#function-ramifiedprimes-algquat)

  - [`Example: Ramified Primes`](algebra-attributes.md#example-ex-4e1f00)

  - [`RamifiedPlaces(A): AlgQuat → SeqEnum, SeqEnum`](algebra-attributes.md#function-ramifiedplaces-algquat)

  - [`FactoredDiscriminant(A): AlgQuat → SeqEnum, SeqEnum`](algebra-attributes.md#function-factoreddiscriminant-algquat)

  - [`Example: Ramified Primes FqX`](algebra-attributes.md#example-ex-642861)

  - [`Discriminant(A): AlgQuat[FldRat] → RngIntElt`](algebra-attributes.md#function-discriminant-algquat-fldrat)

  - [`Discriminant(A): AlgQuat[FldFunRat] → RngUPolElt`](algebra-attributes.md#function-discriminant-algquat-fldfunrat)

  - [`Discriminant(A): AlgQuat[FldAlg] → RngOrdIdl, SeqEnum`](algebra-attributes.md#function-discriminant-algquat-fldalg)

  - [`StandardForm(A): AlgQuat → RngElt, RngElt, AlgQuat, Map`](algebra-attributes.md#function-standardform-algquat)

- [Hilbert Symbols and Embeddings](hilbert-symbols.md)

  - [`HilbertSymbol(a, b, p): FldRatElt, FldRatElt, RngIntElt → RngIntElt`](hilbert-symbols.md#function-hilbertsymbol-fldratelt-fldratelt-rngintelt)

  - [`HilbertSymbol(a, b, p): FldFunRatElt, FldFunRatElt, RngElt p → RngIntElt`](hilbert-symbols.md#function-hilbertsymbol-fldfunratelt-fldfunratelt-rngelt-p)

  - [`HilbertSymbol(a, b, p): FldNumElt, FldNumElt, RngOrdIdl → RngIntElt`](hilbert-symbols.md#function-hilbertsymbol-fldnumelt-fldnumelt-rngordidl)

  - [`HilbertSymbol(A, p): AlgQuat[FldRat], RngIntElt → RngIntElt`](hilbert-symbols.md#function-hilbertsymbol-algquat-fldrat-rngintelt)

  - [`HilbertSymbol(A, p): AlgQuat[FldFunRat], RngElt → RngIntElt`](hilbert-symbols.md#function-hilbertsymbol-algquat-fldfunrat-rngelt)

  - [`HilbertSymbol(A, p): AlgQuat, RngOrdIdl → RngIntElt`](hilbert-symbols.md#function-hilbertsymbol-algquat-rngordidl)

  - [`IsRamified(p, A): RngElt, AlgQuat → BoolElt`](hilbert-symbols.md#function-isramified-rngelt-algquat)

  - [`IsUnramified(p, A): RngElt, AlgQuat → BoolElt`](hilbert-symbols.md#function-isunramified-rngelt-algquat)

  - [`IsRamified(p, A): RngUPol, AlgQuat[FldFunRat] → BoolElt`](hilbert-symbols.md#function-isramified-rngupol-algquat-fldfunrat)

  - [`IsUnramified(p, A): RngUPol, AlgQuat[FldFunRat] → BoolElt`](hilbert-symbols.md#function-isunramified-rngupol-algquat-fldfunrat)

  - [`IsRamified(p, A): RngOrdIdl, AlgQuat[FldAlg] → BoolElt`](hilbert-symbols.md#function-isramified-rngordidl-algquat-fldalg)

  - [`IsUnramified(p, A): RngOrdIdl, AlgQuat[FldAlg] → BoolElt`](hilbert-symbols.md#function-isunramified-rngordidl-algquat-fldalg)

  - [`Example: Hilbert Symbols`](hilbert-symbols.md#example-ex-9d678c)

  - [`pMatrixRing(A, p): AlgQuat, RngOrdIdl → AlgMat, Map, Map`](hilbert-symbols.md#function-pmatrixring-algquat-rngordidl)

  - [`pMatrixRing(A, p): AlgQuat, RngElt → AlgMat, Map, Map`](hilbert-symbols.md#function-pmatrixring-algquat-rngelt)

  - [`pMatrixRing(O, p): AlgAssVOrd, RngOrdIdl → AlgMat, Map, Map`](hilbert-symbols.md#function-pmatrixring-algassvord-rngordidl)

  - [`pMatrixRing(O, p): AlgQuatOrd, RngElt → AlgMat, Map, Map`](hilbert-symbols.md#function-pmatrixring-algquatord-rngelt)

  - [`pMatrixRing(O, p): AlgQuatOrd[RngInt], RngInt → AlgMat, Map, Map`](hilbert-symbols.md#function-pmatrixring-algquatord-rngint-rngint)

  - [`IsSplittingField(K, A): Fld, AlgQuat → BoolElt, AlgQuatElt, Map`](hilbert-symbols.md#function-issplittingfield-fld-algquat)

  - [`HasEmbedding(K, A): Fld, AlgQuat → BoolElt, AlgQuatElt, Map`](hilbert-symbols.md#function-hasembedding-fld-algquat)

  - [`Embed(K, A): Fld, AlgQuat → AlgQuatElt, Map`](hilbert-symbols.md#function-embed-fld-algquat)

  - [`Embed(Oc, O): RngOrd, AlgAssVOrd → AlgAssVOrdElt, Map`](hilbert-symbols.md#function-embed-rngord-algassvord)

  - [`Example: Embed`](hilbert-symbols.md#example-ex-06ae1e)

- [Predicates on Algebras](predicates.md)

  - [`IsDefinite(A): AlgQuat → BoolElt`](predicates.md#function-isdefinite-algquat)

  - [`IsIndefinite(A): AlgQuat → BoolElt`](predicates.md#function-isindefinite-algquat)

- [Recognition Functions](matrix-ring-test.md)

  - [`IsMatrixRing(A): AlgQuat → BoolElt, AlgMat, Map`](matrix-ring-test.md#function-ismatrixring-algquat)

  - [`MatrixRing(A, eps): AlgQuat, AlgQuatElt → AlgMat, Map`](matrix-ring-test.md#function-matrixring-algquat-algquatelt)

  - [`MatrixAlgebra(A, eps): AlgQuat, AlgQuatElt → AlgMat, Map`](matrix-ring-test.md#function-matrixalgebra-algquat-algquatelt)

  - [`Example: Quaternion MatrixRing`](matrix-ring-test.md#example-ex-696aa7)

  - [`IsQuaternionAlgebra(B): AlgAss → BoolElt, AlgQuat, Map`](matrix-ring-test.md#function-isquaternionalgebra-algass)

  - [`IsQuaternionAlgebra(B): AlgMat → BoolElt, AlgQuat, Map`](matrix-ring-test.md#function-isquaternionalgebra-algmat)

  - [`Example: Quaternion IsQuaternionAlgebra`](matrix-ring-test.md#example-ex-52731a)

  - [`MatrixRepresentation(A): AlgQuat → Map`](matrix-ring-test.md#function-matrixrepresentation-algquat)

  - [`MatrixRepresentation(R): AlgQuatOrd → Map`](matrix-ring-test.md#function-matrixrepresentation-algquatord)

- [Attributes of Orders](order-attributes.md)

  - [`Algebra(S): AlgQuatOrd → AlgQuat`](order-attributes.md#function-algebra-algquatord)

  - [`QuaternionAlgebra(S): AlgQuatOrd → AlgQuat`](order-attributes.md#function-quaternionalgebra-algquatord)

  - [`BasisMatrix(S): AlgQuatOrd → AlgMatElt`](order-attributes.md#function-basismatrix-algquatord)

  - [`EmbeddingMatrix(S): AlgQuatOrd → AlgMatElt`](order-attributes.md#function-embeddingmatrix-algquatord)

  - [`Discriminant(S): AlgQuatOrd → RngElt`](order-attributes.md#function-discriminant-algquatord)

  - [`FactoredDiscriminant(S): AlgQuatOrd → SeqEnum`](order-attributes.md#function-factoreddiscriminant-algquatord)

  - [`Conductor(S): AlgQuatOrd → RngElt`](order-attributes.md#function-conductor-algquatord)

  - [`Level(S): AlgQuatOrd → RngElt`](order-attributes.md#function-level-algquatord)

  - [`Normalizer(S): AlgAssVOrd → Grp, Map`](order-attributes.md#function-normalizer-algassvord)

- [Predicates of Orders](order-pred.md)

  - [`IsMaximal(O): AlgAssVOrd → BoolElt`](order-pred.md#function-ismaximal-algassvord)

  - [`IspMaximal(O, p): AlgAssVOrd, RngOrdIdl → BoolElt`](order-pred.md#function-ispmaximal-algassvord-rngordidl)

  - [`IspMaximal(O, p): AlgQuatOrd, RngElt → BoolElt`](order-pred.md#function-ispmaximal-algquatord-rngelt)

  - [`IsEichler(O): AlgAssVOrd → BoolElt, AlgAssVOrd, AlgAssVOrd`](order-pred.md#function-iseichler-algassvord)

  - [`IsEichler(O, p): AlgAssVOrd, RngOrdIdl → BoolElt, AlgAssVOrd, AlgAssVOrd`](order-pred.md#function-iseichler-algassvord-rngordidl)

  - [`IsEichler(O, p): AlgQuatOrd, RngElt → BoolElt, AlgQuatOrd, AlgQuatOrd`](order-pred.md#function-iseichler-algquatord-rngelt)

  - [`EichlerInvariant(O, p): AlgAssVOrd, RngOrdIdl → RngIntElt`](order-pred.md#function-eichlerinvariant-algassvord-rngordidl)

  - [`EichlerInvariant(O, p): AlgQuatOrd, RngElt → RngIntElt`](order-pred.md#function-eichlerinvariant-algquatord-rngelt)

  - [`IsHereditary(O): AlgAssVOrd → BoolElt`](order-pred.md#function-ishereditary-algassvord)

  - [`IsHereditary(O, p): AlgAssVOrd, RngOrdIdl → BoolElt`](order-pred.md#function-ishereditary-algassvord-rngordidl)

  - [`IsHereditary(O, p): AlgQuatOrd, RngElt → BoolElt`](order-pred.md#function-ishereditary-algquatord-rngelt)

  - [`IsGorenstein(O): AlgAssVOrd → BoolElt, .`](order-pred.md#function-isgorenstein-algassvord)

  - [`IsGorenstein(O, p): AlgAssVOrd, RngOrdIdl → BoolElt, RngIntElt`](order-pred.md#function-isgorenstein-algassvord-rngordidl)

  - [`IsGorenstein(O, p): AlgQuatOrd, RngElt → BoolElt, RngIntElt`](order-pred.md#function-isgorenstein-algquatord-rngelt)

  - [`IsBass(O): AlgAssVOrd → BoolElt`](order-pred.md#function-isbass-algassvord)

  - [`IsBass(O, p): AlgAssVOrd, RngOrdIdl → BoolElt`](order-pred.md#function-isbass-algassvord-rngordidl)

  - [`IsBass(O, p): AlgQuatOrd, RngElt → BoolElt`](order-pred.md#function-isbass-algquatord-rngelt)

  - [`IsSameType(O1, O2): AlgAssVOrd, AlgAssVOrd → BoolElt`](order-pred.md#function-issametype-algassvord-algassvord)

- [Operations with Orders](order-ops.md)

  - [`O1 meet O2: AlgQuatOrd[RngInt], AlgQuatOrd[RngInt] → AlgQuatOrd`](order-ops.md#operation-op-meet-algquatord-rngint-algquatord-rngint)

  - [`O1 meet O2: AlgQuatOrd[RngUPol], AlgQuatOrd[RngUPol] → AlgQuatOrd`](order-ops.md#operation-op-meet-algquatord-rngupol-algquatord-rngupol)

  - [`O1 meet O2: AlgAssVOrd, AlgAssVOrd → AlgAssVOrd`](order-ops.md#operation-op-meet-algassvord-algassvord)

  - [`O ^ x: AlgQuatOrd, AlgQuatElt → AlgQuatOrd`](order-ops.md#operation-op-pow-algquatord-algquatelt)

  - [`O ^ x: AlgAssVOrd, AlgAssElt → AlgAssvOrd`](order-ops.md#operation-op-pow-algassvord-algasselt)

- [Ideal Theory of Orders](ideal-theory.md)

  - [Creation and Access Functions](ideal-theory.md#creation-and-access-functions)

    - [`LeftIdeal(S, X): AlgQuatOrd, [AlgQuatElt] → AlgQuatOrdIdl`](ideal-theory.md#function-leftideal-algquatord-algquatelt)

    - [`lideal<S | X>: AlgQuatOrd, [AlgQuatElt] → AlgQuatOrdIdl`](ideal-theory.md#constructor-constructor-lideal-algquatord-algquatelt-algquatordidl)

    - [`RightIdeal(S, X): AlgQuatOrd, [AlgQuatElt] → AlgQuatOrdIdl`](ideal-theory.md#function-rightideal-algquatord-algquatelt)

    - [`rideal<S | X>: AlgQuatOrd, [AlgQuatElt] → AlgQuatOrd`](ideal-theory.md#constructor-constructor-rideal-algquatord-algquatelt-algquatord)

    - [`ideal<S | X>: AlgQuatOrd, [AlgQuatElt] → AlgQuatOrdIdl`](ideal-theory.md#constructor-constructor-ideal-algquatord-algquatelt-algquatordidl)

    - [`PrimeIdeal(S, p): AlgQuatOrd, RngElt → AlgQuatOrdIdl`](ideal-theory.md#function-primeideal-algquatord-rngelt)

    - [`CommutatorIdeal(S): AlgQuatOrd → AlgQuatOrdIdl`](ideal-theory.md#function-commutatorideal-algquatord)

    - [`CommutatorIdeal(S): AlgAssVOrd → AlgAssVOrdIdl`](ideal-theory.md#function-commutatorideal-algassvord)

    - [`MaximalLeftIdeals(O, p): AlgQuatOrd, RngElt → [AlgQuatOrdIdl]`](ideal-theory.md#function-maximalleftideals-algquatord-rngelt)

    - [`MaximalLeftIdeals(O, p): AlgAssVOrd, RngOrdIdl → [AlgAssVOrdIdl]`](ideal-theory.md#function-maximalleftideals-algassvord-rngordidl)

    - [`MaximalRightIdeals(O, p): AlgQuatOrd, RngElt → [AlgQuatOrdIdl]`](ideal-theory.md#function-maximalrightideals-algquatord-rngelt)

    - [`MaximalRightIdeals(O, p): AlgAssVOrd, RngOrdIdl → [AlgAssVOrdIdl]`](ideal-theory.md#function-maximalrightideals-algassvord-rngordidl)

    - [`Example: Elementary Ideals`](ideal-theory.md#example-ex-4a8cb2)

    - [`Example: Ideal Bases`](ideal-theory.md#example-ex-1b3844)

    - [`LeftOrder(I): AlgQuatOrdIdl → AlgQuatOrd`](ideal-theory.md#function-leftorder-algquatordidl)

    - [`LeftOrder(I): AlgAssVOrdIdl[RngOrd] → AlgAssVOrd`](ideal-theory.md#function-leftorder-algassvordidl-rngord)

    - [`RightOrder(I): AlgQuatOrdIdl → AlgQuatOrd`](ideal-theory.md#function-rightorder-algquatordidl)

    - [`RightOrder(I): AlgAssVOrdIdl[RngOrd] → AlgAssVOrd`](ideal-theory.md#function-rightorder-algassvordidl-rngord)

    - [`Example: Left Right Quaternion Ordre`](ideal-theory.md#example-ex-c0479d)

  - [Enumeration of Ideal Classes](ideal-theory.md#enumeration-of-ideal-classes)

    - [`Mass(S): AlgAssVOrd → FldRatElt`](ideal-theory.md#function-mass-algassvord)

    - [`LeftIdealClasses(S): AlgQuatOrd → [AlgQuatOrdIdl]`](ideal-theory.md#function-leftidealclasses-algquatord)

    - [`LeftIdealClasses(S): AlgAssVOrd[RngOrd] → [AlgAssVOrdIdl]`](ideal-theory.md#function-leftidealclasses-algassvord-rngord)

    - [`RightIdealClasses(S): AlgQuatOrd → [AlgQuatOrdIdl]`](ideal-theory.md#function-rightidealclasses-algquatord)

    - [`RightIdealClasses(S): AlgAssVOrd[RngOrd] → [AlgAssVOrdIdl]`](ideal-theory.md#function-rightidealclasses-algassvord-rngord)

    - [`TwoSidedIdealClasses(S): AlgQuatOrd → [AlgQuatOrdIdl]`](ideal-theory.md#function-twosidedidealclasses-algquatord)

    - [`TwoSidedIdealClasses(S : Support): AlgAssVOrd[RngOrd] → [AlgAssVOrdIdl]`](ideal-theory.md#function-twosidedidealclasses-algassvord-rngord)

    - [`TwoSidedIdealClassGroup(S : Support): AlgAssVOrd → GrpAb, Map`](ideal-theory.md#function-twosidedidealclassgroup-algassvord)

    - [`ConjugacyClasses(S): AlgAssVOrd → SeqEnum`](ideal-theory.md#function-conjugacyclasses-algassvord)

    - [`Example: Ideal Enumeration`](ideal-theory.md#example-ex-092c7e)

    - [`Example: Ideal Enumeration`](ideal-theory.md#example-ex-81fcc0)

    - [`Example: Ideal Enumeration`](ideal-theory.md#example-ex-d6b8cf)

  - [Operations on Ideals](ideal-theory.md#operations-on-ideals)

    - [`I * J: AlgAssVOrdIdl, AlgAssVOrdIdl → AlgAssVOrdIdl`](ideal-theory.md#operation-op-times-algassvordidl-algassvordidl)

    - [`I meet J: AlgQuatOrdIdl, AlgQuatOrdIdl → AlgQuatOrdIdl`](ideal-theory.md#operation-op-meet-algquatordidl-algquatordidl)

    - [`Conjugate(I): AlgQuatOrdIdl → AlgQuatOrdIdl`](ideal-theory.md#function-conjugate-algquatordidl)

    - [`Conjugate(I): AlgAssVOrdIdl → AlgAssVOrdIdl`](ideal-theory.md#function-conjugate-algassvordidl)

    - [`Norm(I): AlgQuatOrdIdl → RngElt`](ideal-theory.md#function-norm-algquatordidl)

    - [`Norm(I): AlgAssVOrdIdl → RngOrdFracIdl`](ideal-theory.md#function-norm-algassvordidl)

    - [`Factorization(I): AlgQuatOrdIdl → SeqEnum`](ideal-theory.md#function-factorization-algquatordidl)

    - [`Factorization(I): AlgAssVOrdIdl → SeqEnum`](ideal-theory.md#function-factorization-algassvordidl)

- [Norm Spaces and Basis Reduction](norm-space.md)

  - [`NormSpace(A): AlgQuat → ModTupFld, Map`](norm-space.md#function-normspace-algquat)

  - [`NormSpace(S): AlgQuatOrd → ModTupRng, Map`](norm-space.md#function-normspace-algquatord)

  - [`NormModule(S): AlgQuatOrd → ModTupRng, Map`](norm-space.md#function-normmodule-algquatord)

  - [`GramMatrix(S): AlgQuatOrd → AlgMatElt`](norm-space.md#function-grammatrix-algquatord)

  - [`GramMatrix(I): AlgQuatOrdIdl → AlgMatElt`](norm-space.md#function-grammatrix-algquatordidl)

  - [`ReducedGramMatrix(S): AlgQuatOrd[RngInt] → AlgMatElt`](norm-space.md#function-reducedgrammatrix-algquatord-rngint)

  - [`ReducedGramMatrix(S): AlgQuatOrdIdl[RngInt] → AlgMatElt`](norm-space.md#function-reducedgrammatrix-algquatordidl-rngint)

  - [`ReducedBasis(S): AlgQuatOrd[RngInt] → SeqEnum`](norm-space.md#function-reducedbasis-algquatord-rngint)

  - [`ReducedBasis(S): AlgQuatOrdIdl[RngInt] → SeqEnum`](norm-space.md#function-reducedbasis-algquatordidl-rngint)

  - [`Example: Basis Reduction`](norm-space.md#example-ex-dbe93f)

  - [`ReducedGramMatrix(S): AlgQuatOrd[RngUPol] → AlgMatElt, SeqEnum`](norm-space.md#function-reducedgrammatrix-algquatord-rngupol)

  - [`ReducedGramMatrix(S): AlgQuatOrdIdl[RngUPol] → AlgMatElt, SeqEnum`](norm-space.md#function-reducedgrammatrix-algquatordidl-rngupol)

  - [`ReducedBasis(S): AlgQuatOrd[RngUPol] → SeqEnum`](norm-space.md#function-reducedbasis-algquatord-rngupol)

  - [`ReducedBasis(S): AlgQuatOrdIdl[RngUPol] → SeqEnum`](norm-space.md#function-reducedbasis-algquatordidl-rngupol)

  - [`ReducedBasis(O): AlgAssVOrd[RngOrd] → [AlgAssVElt]`](norm-space.md#function-reducedbasis-algassvord-rngord)

  - [`ReducedBasis(I): AlgAssVOrdIdl[RngOrd] → [AlgAssVOrdElt]`](norm-space.md#function-reducedbasis-algassvordidl-rngord)

  - [`OptimizedRepresentation(O): AlgAssVOrd → AlgQuat, Map`](norm-space.md#function-optimizedrepresentation-algassvord)

  - [`OptimisedRepresentation(O): AlgAssVOrd → AlgQuat, Map`](norm-space.md#function-optimisedrepresentation-algassvord)

  - [`OptimizedRepresentation(A): AlgQuat → AlgQuat, Map`](norm-space.md#function-optimizedrepresentation-algquat)

  - [`OptimisedRepresentation(A): AlgQuat → AlgQuat, Map`](norm-space.md#function-optimisedrepresentation-algquat)

  - [`Enumerate(O, A, B): AlgQuatOrd[RngInt], RngIntElt, RngIntElt → [AlgQuatOrdElt]`](norm-space.md#function-enumerate-algquatord-rngint-rngintelt-rngintelt)

  - [`Enumerate(O, B): AlgQuatOrd[RngInt], RngIntElt → [AlgQuatOrdElt]`](norm-space.md#function-enumerate-algquatord-rngint-rngintelt)

  - [`Enumerate(O, A, B): AlgQuatOrdIdl[RngInt], RngElt, RngElt → [AlgQuatElt]`](norm-space.md#function-enumerate-algquatordidl-rngint-rngelt-rngelt)

  - [`Enumerate(O, B): AlgQuatOrd[RngInt], RngElt → [AlgQuatElt]`](norm-space.md#function-enumerate-algquatord-rngint-rngelt)

  - [`Enumerate(O, A, B): AlgAssVOrd[RngOrd], RngElt, RngElt → [AlgAssVOrdElt]`](norm-space.md#function-enumerate-algassvord-rngord-rngelt-rngelt)

  - [`Enumerate(O, B): AlgAssVOrd[RngOrd], RngElt → [AlgAssVOrdElt]`](norm-space.md#function-enumerate-algassvord-rngord-rngelt)

  - [`Enumerate(O, B): AlgAssVOrd[RngOrd], [RngElt] → [AlgAssVOrdElt]`](norm-space.md#function-enumerate-algassvord-rngord-rngelt-2)

  - [`Enumerate(I, B): AlgAssVOrdIdl[RngOrd], [RngElt] → [AlgAssVOrdElt]`](norm-space.md#function-enumerate-algassvordidl-rngord-rngelt)

- [Isomorphisms](isomorphisms.md)

  - [Isomorphisms of Algebras](isomorphisms.md#isomorphisms-of-algebras)

    - [`IsIsomorphic(A, B): AlgQuat, AlgQuat → BoolElt, Map`](isomorphisms.md#function-isisomorphic-algquat-algquat)

  - [Isomorphisms of Orders](isomorphisms.md#isomorphisms-of-orders)

    - [`IsIsomorphic(S, T): AlgQuatOrd, AlgQuatOrd → BoolElt, Map, AlgQuatElt`](isomorphisms.md#function-isisomorphic-algquatord-algquatord)

    - [`IsIsomorphic(S, T): AlgAssVOrd[RngOrd], AlgAssVOrd[RngOrd] → BoolElt, Map, AlgQuatElt`](isomorphisms.md#function-isisomorphic-algassvord-rngord-algassvord-rngord)

    - [`IsConjugate(S, T): AlgAssVOrd, AlgAssVOrd → BoolElt, Map, AlgQuatElt`](isomorphisms.md#function-isconjugate-algassvord-algassvord)

    - [`Isomorphism(S, T): AlgQuatOrd, AlgQuatOrd → Map`](isomorphisms.md#function-isomorphism-algquatord-algquatord)

  - [Isomorphisms of Ideals](isomorphisms.md#isomorphisms-of-ideals)

    - [`IsIsomorphic(I, J): AlgAssVOrdIdl, AlgAssVOrdIdl → BoolElt, AlgAssVElt`](isomorphisms.md#function-isisomorphic-algassvordidl-algassvordidl)

    - [`IsPrincipal(I): AlgAssVOrdIdl → BoolElt, AlgQuatElt`](isomorphisms.md#function-isprincipal-algassvordidl)

    - [`IsLeftIsomorphic(I, J): AlgQuatOrdIdl, AlgQuatOrdIdl → BoolElt, Map, AlgQuatElt`](isomorphisms.md#function-isleftisomorphic-algquatordidl-algquatordidl)

    - [`IsRightIsomorphic(I, J): AlgQuatOrdIdl, AlgQuatOrdIdl → BoolElt, Map, AlgQuatElt`](isomorphisms.md#function-isrightisomorphic-algquatordidl-algquatordidl)

    - [`IsLeftIsomorphic(I, J): AlgAssVOrdIdl[RngOrd], AlgAssVOrdIdl[RngOrd] → BoolElt, AlgQuatElt`](isomorphisms.md#function-isleftisomorphic-algassvordidl-rngord-algassvordidl-rngord)

    - [`IsRightIsomorphic(I, J): AlgAssVOrdIdl[RngOrd], AlgAssVOrdIdl[RngOrd] → BoolElt, AlgQuatElt`](isomorphisms.md#function-isrightisomorphic-algassvordidl-rngord-algassvordidl-rngord)

    - [`LeftIsomorphism(I, J): AlgQuatOrdIdl, AlgQuatOrdIdl → Map, AlgQuatElt`](isomorphisms.md#function-leftisomorphism-algquatordidl-algquatordidl)

    - [`RightIsomorphism(I, J): AlgQuatOrdIdl, AlgQuatOrdIdl → Map, AlgQuatElt`](isomorphisms.md#function-rightisomorphism-algquatordidl-algquatordidl)

  - [Examples](isomorphisms.md#examples)

    - [`Example: Isomorphism Algebras`](isomorphisms.md#example-ex-f5c0d5)

    - [`Example: Isomorphism Example`](isomorphisms.md#example-ex-50db58)

    - [`Example: Left Right Isomorphisms`](isomorphisms.md#example-ex-03d026)

    - [`Example: Left Right Isomorphisms Number Field`](isomorphisms.md#example-ex-0c04cb)

- [Units and Unit Groups](unit-group.md)

  - [`NormOneGroup(S): AlgAssVOrd → GrpPerm, Map`](unit-group.md#function-normonegroup-algassvord)

  - [`NormOneGroup(S): AlgQuatOrd → GrpAb, Map`](unit-group.md#function-normonegroup-algquatord)

  - [`Units(S): AlgQuatOrd → SeqEnum`](unit-group.md#function-units-algquatord)

  - [`Units(S): AlgAssVOrd → SeqEnum`](unit-group.md#function-units-algassvord)

  - [`MultiplicativeGroup(S): AlgQuatOrd[RngInt] → GrpPerm, Map`](unit-group.md#function-multiplicativegroup-algquatord-rngint)

  - [`UnitGroup(S): AlgQuatOrd[RngInt] → GrpPerm, Map`](unit-group.md#function-unitgroup-algquatord-rngint)

  - [`MultiplicativeGroup(S): AlgQuatOrd[RngUPol] → GrpAb, Map`](unit-group.md#function-multiplicativegroup-algquatord-rngupol)

  - [`UnitGroup(S): AlgQuatOrd[RngUPol] → GrpAb, Map`](unit-group.md#function-unitgroup-algquatord-rngupol)

  - [`MultiplicativeGroup(S): AlgAssVOrd[RngOrd] → GrpPerm, Map`](unit-group.md#function-multiplicativegroup-algassvord-rngord)

  - [`UnitGroup(S): AlgAssVOrd[RngOrd] → GrpPerm, Map`](unit-group.md#function-unitgroup-algassvord-rngord)

  - [`Example: Unit Group`](unit-group.md#example-ex-410b55)

  - [`Example: Unit Group NumberRing`](unit-group.md#example-ex-b816c0)
