# Galois Rings

- [Introduction](introduction.md)

- [Creation Functions](creation.md)

  - [Creation of Structures](creation.md#creation-of-structures)

    - [`GaloisRing(q, d): RngIntElt, RngIntElt → RngGal`](creation.md#function-galoisring-rngintelt-rngintelt)

    - [`GR(q, d): RngIntElt, RngIntElt → RngGal`](creation.md#function-gr-rngintelt-rngintelt)

    - [`GaloisRing(p, a, d): RngIntElt, RngIntElt, RngIntElt → RngGal`](creation.md#function-galoisring-rngintelt-rngintelt-rngintelt)

    - [`GR(p, a, d): RngIntElt, RngIntElt, RngIntElt → RngGal`](creation.md#function-gr-rngintelt-rngintelt-rngintelt)

    - [`GaloisRing(q, D): RngIntElt, RngUPol → RngGal`](creation.md#function-galoisring-rngintelt-rngupol)

    - [`GR(q, D): RngIntElt, RngUPol → RngGal`](creation.md#function-gr-rngintelt-rngupol)

    - [`GaloisRing(p, a, D): RngIntElt, RngIntElt, RngUPol → RngGal`](creation.md#function-galoisring-rngintelt-rngintelt-rngupol)

    - [`GR(p, a, D): RngIntElt, RngIntElt, RngUPol → RngGal`](creation.md#function-gr-rngintelt-rngintelt-rngupol)

  - [Names](creation.md#names)

    - [`AssignNames(~R, [f]): RngGal, [ MonStgElt ])`](creation.md#function-assignnames-rnggal-monstgelt-ref)

    - [`Name(R, 1): RngGal, RngIntElt → RngGalElt`](creation.md#function-name-rnggal-rngintelt)

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

    - [`R . 1: RngGal → RngGalElt`](creation.md#operation-operation-rnggal-rnggalelt)

    - [`Generator(R): RngGal → RngGalElt`](creation.md#function-generator-rnggal)

    - [`R ! a: RngGal, RngElt → RngGalElt`](creation.md#operation-op-rnggal-rngelt)

    - [`One(R): RngGal → RngGalElt`](creation.md#function-one-rnggal)

    - [`Identity(R): RngGal → RngGalElt`](creation.md#function-identity-rnggal)

    - [`Zero(R): RngGal → RngGalElt`](creation.md#function-zero-rnggal)

    - [`Representative(R): RngGal → RngGalElt`](creation.md#function-representative-rnggal)

    - [`Random(R): RngGal → RngGalElt`](creation.md#function-random-rnggal)

  - [Sequence Conversions](creation.md#sequence-conversions)

    - [`ElementToSequence(a): RngGalElt → [ RngIntResElt ]`](creation.md#function-elementtosequence-rnggalelt)

    - [`Eltseq(a): RngGalElt → [ RngIntResElt ]`](creation.md#function-eltseq-rnggalelt)

    - [`Example: Create`](creation.md#example-ex-5d69d7)

- [Structure Operations](operation.md)

  - [Related Structures](operation.md#related-structures)

    - [`Category(R): RngGal → Cat`](operation.md#function-category-rnggal)

    - [`Parent(R): RngGal → PowerStructure`](operation.md#function-parent-rnggal)

    - [`Centre(R): RngGal → RngGal`](operation.md#function-centre-rnggal)

    - [`PrimeRing(R): RngGal → RngGal`](operation.md#function-primering-rnggal)

    - [`PrimeField(R): RngGal → RngGal`](operation.md#function-primefield-rnggal)

    - [`FieldOfFractions(R): RngGal → RngGal`](operation.md#function-fieldoffractions-rnggal)

  - [Numerical Invariants](operation.md#numerical-invariants)

    - [`Characteristic(R): RngGal → RngIntElt`](operation.md#function-characteristic-rnggal)

    - [`# R: RngGal → RngIntElt`](operation.md#operation-operation-rnggal-rngintelt)

    - [`Degree(R): RngGal → RngIntElt`](operation.md#function-degree-rnggal)

    - [`ResidueField(R): RngGal → FldFin`](operation.md#function-residuefield-rnggal)

  - [Ring Predicates and Booleans](operation.md#ring-predicates-and-booleans)

    - [`IsCommutative(R): RngGal → BoolElt`](operation.md#function-iscommutative-rnggal)

    - [`IsUnitary(R): RngGal → BoolElt`](operation.md#function-isunitary-rnggal)

    - [`IsFinite(R): RngGal → BoolElt`](operation.md#function-isfinite-rnggal)

    - [`IsOrdered(R): RngGal → BoolElt`](operation.md#function-isordered-rnggal)

    - [`IsField(R): RngGal → BoolElt`](operation.md#function-isfield-rnggal)

    - [`IsEuclideanDomain(R): RngGal → BoolElt`](operation.md#function-iseuclideandomain-rnggal)

    - [`IsPID(R): RngGal → BoolElt`](operation.md#function-ispid-rnggal)

    - [`IsUFD(R): RngGal → BoolElt`](operation.md#function-isufd-rnggal)

    - [`IsDivisionRing(R): RngGal → BoolElt`](operation.md#function-isdivisionring-rnggal)

    - [`IsEuclideanRing(R): RngGal → BoolElt`](operation.md#function-iseuclideanring-rnggal)

    - [`IsPrincipalIdealRing(R): RngGal → BoolElt`](operation.md#function-isprincipalidealring-rnggal)

    - [`IsDomain(R): RngGal → BoolElt`](operation.md#function-isdomain-rnggal)

    - [`R eq G: RngGal, Rng → BoolElt`](operation.md#operation-op-eq-rnggal-rng)

    - [`R ne G: RngGal, Rng → BoolElt`](operation.md#operation-op-ne-rnggal-rng)

- [Element Operations](operation-element.md)

  - [Arithmetic Operators](operation-element.md#arithmetic-operators)

    - [`+ a: RngGalElt → RngGalElt`](operation-element.md#operation-operation-rnggalelt-rnggalelt)

    - [`- a: RngGalElt → RngGalElt`](operation-element.md#operation-operation-rnggalelt-rnggalelt-2)

    - [`a + b: RngGalElt, RngGalElt → RngGalElt`](operation-element.md#operation-op-plus-rnggalelt-rnggalelt)

    - [`a - b: RngGalElt, RngGalElt → RngGalElt`](operation-element.md#operation-op-minus-rnggalelt-rnggalelt)

    - [`a * b: RngGalElt, RngGalElt → RngGalElt`](operation-element.md#operation-op-times-rnggalelt-rnggalelt)

    - [`a ^ k: RngGalElt, RngIntElt → RngGalElt`](operation-element.md#operation-op-pow-rnggalelt-rngintelt)

    - [`a +:= b: RngGalElt, RngGalElt → RngGalElt`](operation-element.md#operation-operation-rnggalelt-rnggalelt-rnggalelt)

    - [`a -:= b: RngGalElt, RngGalElt → RngGalElt`](operation-element.md#operation-operation-rnggalelt-rnggalelt-rnggalelt-2)

    - [`a *:= b: RngGalElt, RngGalElt → RngGalElt`](operation-element.md#operation-operation-rnggalelt-rnggalelt-rnggalelt-3)

  - [Euclidean Operations](operation-element.md#euclidean-operations)

    - [`a div b: RngGalElt, RngGalElt → RngGalElt`](operation-element.md#operation-operation-div-rnggalelt-rnggalelt-rnggalelt)

    - [`a mod b: RngGalElt, RngGalElt → RngGalElt`](operation-element.md#operation-operation-mod-rnggalelt-rnggalelt-rnggalelt)

    - [`Quotrem(a, b): RngGalElt, RngGalElt → RngGalElt`](operation-element.md#function-quotrem-rnggalelt-rnggalelt)

    - [`GCD(a, b): RngGalElt, RngGalElt → RngGalElt`](operation-element.md#function-gcd-rnggalelt-rnggalelt)

    - [`LCM(a, b): RngGalElt, RngGalElt → RngGalElt`](operation-element.md#function-lcm-rnggalelt-rnggalelt)

    - [`XGCD(a, b): RngGalElt, RngGalElt → RngGalElt, RngGalElt, RngGalElt`](operation-element.md#function-xgcd-rnggalelt-rnggalelt)

  - [Equality and Membership](operation-element.md#equality-and-membership)

    - [`a eq b: RngGalElt, RngGalElt → BoolElt`](operation-element.md#operation-op-eq-rnggalelt-rnggalelt)

    - [`a ne b: RngGalElt, RngGalElt → BoolElt`](operation-element.md#operation-op-ne-rnggalelt-rnggalelt)

    - [`a in R: RngGalElt, Rng → BoolElt`](operation-element.md#operation-op-in-rnggalelt-rng)

    - [`a notin R: RngGalElt, Rng → BoolElt`](operation-element.md#operation-op-notin-rnggalelt-rng)

  - [Parent and Category](operation-element.md#parent-and-category)

    - [`Parent(a): RngGalElt → RngGal`](operation-element.md#function-parent-rnggalelt)

    - [`Category(a): RngGalElt → Cat`](operation-element.md#function-category-rnggalelt)

  - [Predicates on Ring Elements](operation-element.md#predicates-on-ring-elements)

    - [`IsZero(a): RngGalElt → BoolElt`](operation-element.md#function-iszero-rnggalelt)

    - [`IsOne(a): RngGalElt → BoolElt`](operation-element.md#function-isone-rnggalelt)

    - [`IsMinusOne(a): RngGalElt → BoolElt`](operation-element.md#function-isminusone-rnggalelt)

    - [`IsNilpotent(a): RngGalElt → BoolElt`](operation-element.md#function-isnilpotent-rnggalelt)

    - [`IsIdempotent(a): RngGalElt → BoolElt`](operation-element.md#function-isidempotent-rnggalelt)

    - [`IsUnit(a): RngGalElt → BoolElt`](operation-element.md#function-isunit-rnggalelt)

    - [`IsZeroDivisor(a): RngGalElt → BoolElt`](operation-element.md#function-iszerodivisor-rnggalelt)

    - [`Example: Create`](operation-element.md#example-ex-6cf97d)
