# Root Systems

- [Introduction](introduction.md)

  - [Reflections](introduction.md#reflections)

  - [Definition of a Root System](introduction.md#definition-of-a-root-system)

  - [Simple and Positive Roots](introduction.md#simple-and-positive-roots)

  - [The Coxeter Group](introduction.md#the-coxeter-group)

  - [Nonreduced Root Systems](introduction.md#nonreduced-root-systems)

- [Constructing Root Systems](construct-root-system.md)

  - [`RootSystem(N): MonStgElt → RootSys`](construct-root-system.md#function-intrrootsystemn)

  - [`Example: Creating Root Systems Name`](construct-root-system.md#example-ex-ff0977)

  - [`RootSystem(M): AlgMatElt → RootSys`](construct-root-system.md#function-rootsystem-algmatelt)

  - [`RootSystem(G): GrphUnd → RootSys`](construct-root-system.md#function-rootsystem-grphund)

  - [`RootSystem(C): AlgMatElt → RootSys`](construct-root-system.md#function-rootsystem-algmatelt-2)

  - [`RootSystem(D): GrphDir → RootSys`](construct-root-system.md#function-rootsystem-grphdir)

  - [`Example: Creating Root Systems Matrix`](construct-root-system.md#example-ex-4f54b6)

  - [`RootSystem(A, B): Mtrx, Mtrx → RootSys`](construct-root-system.md#function-rootsystem-mtrx-mtrx)

  - [`Example: G2Root System`](construct-root-system.md#example-ex-ad34e4)

  - [`IrreducibleRootSystem(X, n): MonStgElt, RngIntElt → RootSys`](construct-root-system.md#function-irreduciblerootsystem-monstgelt-rngintelt)

  - [`StandardRootSystem(X, n): MonStgElt, RngIntElt → RootSys`](construct-root-system.md#function-intrstandardrootsystem)

  - [`Example: Irreducible Root System`](construct-root-system.md#example-ex-28a4fc)

  - [`ToralRootSystem(n): RngIntElt → RootSys`](construct-root-system.md#function-toralrootsystem-rngintelt)

  - [`TrivialRootSystem() → RootSys`](construct-root-system.md#function-trivialrootsystem)

- [Operators on Root Systems](operators-root-sys.md)

  - [`R1 eq R2: RootSys, RootSys → BoolElt`](operators-root-sys.md#operation-op-eq-rootsys-rootsys)

  - [`IsIsomorphic(R1, R2): RootSys, RootSys → BoolElt`](operators-root-sys.md#function-isisomorphic-rootsys-rootsys)

  - [`IsCartanEquivalent(R1, R2): RootSys, RootSys → BoolElt`](operators-root-sys.md#function-iscartanequivalent-rootsys-rootsys)

  - [`Example: Isomorphism`](operators-root-sys.md#example-ex-d4eea1)

  - [`CartanName(R): RootSys → List`](operators-root-sys.md#function-cartanname-rootsys)

  - [`CoxeterDiagram(R): RootSys`](operators-root-sys.md#function-coxeterdiagram-rootsys)

  - [`DynkinDiagram(R): RootSys`](operators-root-sys.md#function-dynkindiagram-rootsys)

  - [`CoxeterMatrix(R): RootSys → AlgMatElt`](operators-root-sys.md#function-coxetermatrix-rootsys)

  - [`CoxeterGraph(R): RootSys → GrphUnd`](operators-root-sys.md#function-coxetergraph-rootsys)

  - [`CartanMatrix(R): RootSys → AlgMatElt`](operators-root-sys.md#function-cartanmatrix-rootsys)

  - [`DynkinDigraph(R): RootSys → GrphDir`](operators-root-sys.md#function-dynkindigraph-rootsys)

  - [`Example: Diagrams`](operators-root-sys.md#example-ex-f78777)

  - [`BaseField(R): RootSys → Fld`](operators-root-sys.md#function-basefield-rootsys)

  - [`BaseRing(R): RootSys → Fld`](operators-root-sys.md#function-basering-rootsys)

  - [`RealInjection(R): RootSys → .`](operators-root-sys.md#function-realinjection-rootsys)

  - [`Rank(R): RootSys → RngIntElt`](operators-root-sys.md#function-rank-rootsys)

  - [`Dimension(R): RootSys → RngIntElt`](operators-root-sys.md#function-dimension-rootsys)

  - [`CoxeterGroupOrder(R): RootSys → RngIntElt`](operators-root-sys.md#function-coxetergrouporder-rootsys)

  - [`Example: Basic Operations`](operators-root-sys.md#example-ex-5eca2e)

- [Properties of Root Systems](properties-root-system.md)

  - [`IsIrreducible(R): RootSys → BoolElt`](properties-root-system.md#function-isirreducible-rootsys)

  - [`IsProjectivelyIrreducible(R): RootSys → BoolElt`](properties-root-system.md#function-isprojectivelyirreducible-rootsys)

  - [`IsReduced(R): RootSys → BoolElt`](properties-root-system.md#function-isreduced-rootsys)

  - [`IsSemisimple(R): RootSys → BoolElt`](properties-root-system.md#function-issemisimple-rootsys)

  - [`IsCrystallographic(R): RootSys → BoolElt`](properties-root-system.md#function-iscrystallographic-rootsys)

  - [`IsSimplyLaced(R): RootSys → BoolElt`](properties-root-system.md#function-issimplylaced-rootsys)

  - [`Example: Properties`](properties-root-system.md#example-ex-a19f70)

- [Roots and Coroots](roots-coroots-weights.md)

  - [Accessing Roots and Coroots](roots-coroots-weights.md#accessing-roots-and-coroots)

    - [`RootSpace(R): RootSys → ModTupFld`](roots-coroots-weights.md#function-rootspace-rootsys)

    - [`CorootSpace(R): RootSys → ModTupFld`](roots-coroots-weights.md#function-corootspace-rootsys)

    - [`SimpleRoots(R): RootSys → Mtrx`](roots-coroots-weights.md#function-simpleroots-rootsys)

    - [`SimpleCoroots(R): RootSys → Mtrx`](roots-coroots-weights.md#function-simplecoroots-rootsys)

    - [`Example: Root Space`](roots-coroots-weights.md#example-ex-fe8350)

    - [`NumberOfPositiveRoots(R): RootSys → RngIntElt`](roots-coroots-weights.md#function-numberofpositiveroots-rootsys)

    - [`NumPosRoots(R): RootSys → RngIntElt`](roots-coroots-weights.md#function-numposroots-rootsys)

    - [`Roots(R): RootSys → SetIndx`](roots-coroots-weights.md#function-roots-rootsys)

    - [`Coroots(R): RootSys → SetIndx`](roots-coroots-weights.md#function-coroots-rootsys)

    - [`PositiveRoots(R): RootSys → SetIndx`](roots-coroots-weights.md#function-positiveroots-rootsys)

    - [`PositiveCoroots(R): RootSys → SetIndx`](roots-coroots-weights.md#function-positivecoroots-rootsys)

    - [`Root(R, r): RootSys, RngIntElt → SetIndx`](roots-coroots-weights.md#function-root-rootsys-rngintelt)

    - [`Coroot(R, r): RootSys, RngIntElt → SetIndx`](roots-coroots-weights.md#function-coroot-rootsys-rngintelt)

    - [`RootPosition(R, v): RootSys, . → SetIndx`](roots-coroots-weights.md#function-rootposition-rootsys)

    - [`CorootPosition(R, v): RootSys, . → SetIndx`](roots-coroots-weights.md#function-corootposition-rootsys)

    - [`Example: Roots Coroots`](roots-coroots-weights.md#example-ex-89c0a9)

    - [`HighestRoot(R): RootSys → .`](roots-coroots-weights.md#function-highestroot-rootsys)

    - [`HighestCoroot(R): RootSys → .`](roots-coroots-weights.md#function-highestcoroot-rootsys)

    - [`HighestLongRoot(R): RootSys → .`](roots-coroots-weights.md#function-highestlongroot-rootsys)

    - [`HighestLongCoroot(R): RootSys → .`](roots-coroots-weights.md#function-highestlongcoroot-rootsys)

    - [`HighestShortRoot(R): RootSys → .`](roots-coroots-weights.md#function-highestshortroot-rootsys)

    - [`HighestShortCoroot(R): RootSys → .`](roots-coroots-weights.md#function-highestshortcoroot-rootsys)

    - [`Example: Heighest Roots`](roots-coroots-weights.md#example-ex-77bd29)

    - [`CoxeterForm(R): RootSys → AlgMatElt`](roots-coroots-weights.md#function-coxeterform-rootsys)

    - [`DualCoxeterForm(R): RootSys → AlgMatElt`](roots-coroots-weights.md#function-dualcoxeterform-rootsys)

  - [Reflections](roots-coroots-weights.md#reflections)

    - [`SimpleReflectionMatrices(R): RootSys → []`](roots-coroots-weights.md#function-simplereflectionmatrices-rootsys)

    - [`SimpleCoreflectionMatrices(R): RootSys → []`](roots-coroots-weights.md#function-simplecoreflectionmatrices-rootsys)

    - [`ReflectionMatrices(R): RootSys → []`](roots-coroots-weights.md#function-reflectionmatrices-rootsys)

    - [`CoreflectionMatrices(R): RootSys → []`](roots-coroots-weights.md#function-coreflectionmatrices-rootsys)

    - [`ReflectionMatrix(R, r): RootSys, RngIntElt → []`](roots-coroots-weights.md#function-reflectionmatrix-rootsys-rngintelt)

    - [`CoreflectionMatrix(R, r): RootSys, RngIntElt → []`](roots-coroots-weights.md#function-coreflectionmatrix-rootsys-rngintelt)

    - [`SimpleReflectionPermutations(R): RootSys → []`](roots-coroots-weights.md#function-simplereflectionpermutations-rootsys)

    - [`ReflectionPermutations(R): RootSys → []`](roots-coroots-weights.md#function-reflectionpermutations-rootsys)

    - [`ReflectionPermutation(R, r): RootSys, RngIntElt → []`](roots-coroots-weights.md#function-reflectionpermutation-rootsys-rngintelt)

    - [`ReflectionWords(R): RootSys → []`](roots-coroots-weights.md#function-reflectionwords-rootsys)

    - [`ReflectionWord(R, r): RootSys, RngIntElt → []`](roots-coroots-weights.md#function-reflectionword-rootsys-rngintelt)

    - [`Example: Action`](roots-coroots-weights.md#example-ex-a58034)

  - [Operations and Properties for Roots and Coroot Indices](roots-coroots-weights.md#operations-and-properties-for-roots-and-coroot-indices)

    - [`Sum(R, r, s): RootSys, RngIntElt, RngIntElt → RngIntElt`](roots-coroots-weights.md#function-sum-rootsys-rngintelt-rngintelt)

    - [`IsPositive(R, r): RootSys, RngIntElt → BoolElt`](roots-coroots-weights.md#function-ispositive-rootsys-rngintelt)

    - [`IsNegative(R, r): RootSys, RngIntElt → BoolElt`](roots-coroots-weights.md#function-isnegative-rootsys-rngintelt)

    - [`Negative(R, r): RootSys, RngIntElt → RngIntElt`](roots-coroots-weights.md#function-negative-rootsys-rngintelt)

    - [`Example: Root Arithmetic`](roots-coroots-weights.md#example-ex-8a578c)

    - [`RootHeight(R, r): RootSys, RngIntElt → RngIntElt`](roots-coroots-weights.md#function-rootheight-rootsys-rngintelt)

    - [`CorootHeight(R, r): RootSys, RngIntElt → RngIntElt`](roots-coroots-weights.md#function-corootheight-rootsys-rngintelt)

    - [`RootNorms(R): RootSys → [RngIntElt]`](roots-coroots-weights.md#function-rootnorms-rootsys)

    - [`CorootNorms(R): RootSys → [RngIntElt]`](roots-coroots-weights.md#function-corootnorms-rootsys)

    - [`RootNorm(R, r): RootSys, RngIntElt → RngIntElt`](roots-coroots-weights.md#function-rootnorm-rootsys-rngintelt)

    - [`CorootNorm(R, r): RootSys, RngIntElt → RngIntElt`](roots-coroots-weights.md#function-corootnorm-rootsys-rngintelt)

    - [`IsLongRoot(R, r): RootSys, RngIntElt → BoolElt`](roots-coroots-weights.md#function-islongroot-rootsys-rngintelt)

    - [`IsShortRoot(R, r): RootSys, RngIntElt → BoolElt`](roots-coroots-weights.md#function-isshortroot-rootsys-rngintelt)

    - [`IsIndivisibleRoot(R, r): RootSys, RngIntElt → BoolElt`](roots-coroots-weights.md#function-isindivisibleroot-rootsys-rngintelt)

    - [`LeftString(R, r, s): RootSys, RngIntElt, RngIntElt → RngIntElt`](roots-coroots-weights.md#function-leftstring-rootsys-rngintelt-rngintelt)

    - [`RightString(R, r, s): RootSys, RngIntElt, RngIntElt → RngIntElt`](roots-coroots-weights.md#function-rightstring-rootsys-rngintelt-rngintelt)

    - [`LeftStringLength(R, r, s): RootSys, RngIntElt, RngIntElt → RngIntElt`](roots-coroots-weights.md#function-leftstringlength-rootsys-rngintelt-rngintelt)

    - [`RightStringLength(R, r, s): RootSys, RngIntElt, RngIntElt → RngIntElt`](roots-coroots-weights.md#function-rightstringlength-rootsys-rngintelt-rngintelt)

    - [`Example: Root Operations`](roots-coroots-weights.md#example-ex-e2515b)

    - [`AdditiveOrder(R): RootSys → SeqEnum`](roots-coroots-weights.md#function-additiveorder-rootsys)

    - [`IsAdditiveOrder(R, Q): RootSys, [RngIntElt] → BoolElt`](roots-coroots-weights.md#function-isadditiveorder-rootsys-rngintelt)

    - [`Example: Additive Order`](roots-coroots-weights.md#example-ex-20f94b)

- [Building Root Systems](create-new-root-system.md)

  - [`sub<R | a>: RootSys, SetEnum → RootSys`](create-new-root-system.md#constructor-constructor-sub-rootsys-setenum-rootsys)

  - [`sub<R | s>: RootSys, SetEnum → RootSys`](create-new-root-system.md#constructor-constructor-sub-rootsys-setenum-rootsys-2)

  - [`R1 subset R2: RootSys, RootSys → BoolElt, .`](create-new-root-system.md#operation-op-subset-rootsys-rootsys)

  - [`R1 + R2: RootSys, RootSys → RootSys`](create-new-root-system.md#operation-op-plus-rootsys-rootsys)

  - [`DirectSum(R1, R2): RootSys, RootSys → RootSys`](create-new-root-system.md#function-directsum-rootsys-rootsys)

  - [`R1 join R2: RootSys, RootSys → RootSys`](create-new-root-system.md#operation-op-join-rootsys-rootsys)

  - [`Example: Root Sys Sums`](create-new-root-system.md#example-ex-f885fa)

  - [`DirectSumDecomposition(R): RootSys → []`](create-new-root-system.md#function-directsumdecomposition-rootsys)

  - [`IndecomposableSummands(R): RootDtm → [], RootDtm, Map`](create-new-root-system.md#function-indecomposablesummands-rootdtm)

  - [`Dual(R): RootSys → RootSys`](create-new-root-system.md#function-dual-rootsys)

  - [`IndivisibleSubsystem(R): RootSys → RootSys`](create-new-root-system.md#function-indivisiblesubsystem-rootsys)

  - [`Example: Direct Sum Dual`](create-new-root-system.md#example-ex-feab7e)

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

  - [`RootDatum(R): RootSys → RootDtm`](related-structures.md#function-rootdatum-rootsys)

  - [`CoxeterGroup(grpcat,R): Cat, RootSys → grpcat`](related-structures.md#function-coxetergroup-cat-rootsys)

  - [`CoxeterGroup(R): RootSys → GrpPermCox`](related-structures.md#function-coxetergroup-rootsys)

  - [`WeylGroup(R): RootSys → GrpPermCox`](related-structures.md#function-weylgroup-rootsys)

  - [`CoxeterGroup(GrpPermCox, R): Cat, RootSys → RngIntElt`](related-structures.md#function-coxetergroup-cat-rootsys-2)

  - [`ReflectionGroup(R): RootSys → GrpMat`](related-structures.md#function-reflectiongroup-rootsys)

  - [`CoxeterGroup(GrpPermCox, W): Cat, RootSys → GrpPermCox`](related-structures.md#function-coxetergroup-cat-rootsys-3)

  - [`LieAlgebra(R, k): RootSys, Rng → AlgLie`](related-structures.md#function-liealgebra-rootsys-rng)

  - [`MatrixLieAlgebra(R, k): RootSys → GrpMat`](related-structures.md#function-matrixliealgebra-rootsys)

  - [`Example: Related`](related-structures.md#example-ex-3411ae)
