Documentation

TauCeti.GroupTheory.Presentation.Coxeter

Auditable Coxeter relator lists #

A Coxeter presentation is normally published as a diagram: a set of involutions, one per node, with a braid relation on each edge and a commuting relation on each non-edge. Mathlib turns a CoxeterMatrix into a group through CoxeterMatrix.relationsSet, the range of CoxeterMatrix.relation, which is a set indexed by ordered pairs rather than an explicit list whose entries and length a reviewer can audit. This file produces that finite relator list, one relator per unordered pair of nodes, the diagonal included, so that the n involution relators sᵢ ^ 2 are among them.

The count is the point. TauCeti.length_coxeterRelators says that a diagram on n nodes has (n + 1).choose 2 = n * (n + 1) / 2 relators — the number of unordered pairs with repetition allowed, not n.choose 2.

The ordered-pair set and the unordered-pair list need not agree: for distinct nodes, (sᵢ sⱼ) ^ mᵢⱼ and (sⱼ sᵢ) ^ mᵢⱼ can be distinct elements of the free group, so the list has to pick one of the two orders — here the one increasing in the node numbering. They are conjugate, so the two sets have the same normal closure, which is what TauCeti.normalClosure_relatorSet_coxeterRelators proves and what makes the presented groups the same.

A published diagram is usually simply laced: every edge carries the label three and every non-edge the label two. TauCeti.coxeterMatrixOfEdges builds the CoxeterMatrix of such a diagram from the list of its edges, so that a transcribed row records the edges the source draws rather than a hand-built matrix.

Main definitions #

Main results #

References #

This file supplies reusable Coxeter-presentation machinery needed by milestone S1 of TauCetiRoadmap/CFSGStatement/README.md. No presentation of a named group is asserted here.

TauCeti.coxeterRelatorsOfList is built from Mathlib's List.sym2 in Mathlib.Data.List.Sym, whose List.length_sym2 supplies the relator count, and from Sym2.inf/Sym2.sup in Mathlib.Data.Sym.Sym2.Order, which pick the canonical ordered representative of an unordered pair.

The Coxeter relators of a Coxeter matrix #

def TauCeti.coxeterMatrixOfEdges {B : Type u_1} [DecidableEq B] (edges : List (B × B)) :

The Coxeter matrix of the simply laced diagram with the given edges: a node with itself has entry one, a pair of distinct nodes joined by an edge has entry three, and every other pair of distinct nodes has entry two.

The edge list is read symmetrically, so each edge may be oriented either way, and repeated edges are harmless. The body is exposed so that the checks a transcribed diagram runs on its own matrix reduce.

Instances For
    @[simp]
    theorem TauCeti.coxeterMatrixOfEdges_apply {B : Type u_1} [DecidableEq B] (edges : List (B × B)) (i j : B) :
    (coxeterMatrixOfEdges edges).M i j = if i = j then 1 else if (i, j) ∈ edges ∨ (j, i) ∈ edges then 3 else 2

    Evaluation of the Coxeter matrix of a simply laced diagram directly from its edge list.

    def TauCeti.coxeterRelator {B : Type u_1} (M : CoxeterMatrix B) (i j : B) :

    The Coxeter relator (sᵢ sⱼ) ^ M i j, as an auditable relator expression. On the diagonal M i i = 1, so this is the involution relator sᵢ ^ 2 written as (sᵢ sᵢ) ^ 1.

    Instances For
      @[simp]

      The compiled signed word of a Coxeter relator.

      theorem TauCeti.length_toWord_coxeterRelator {B : Type u_1} (M : CoxeterMatrix B) (i j : B) :

      A Coxeter relator contains twice as many signed letters as its matrix entry.

      The signed word of a Coxeter relator is cyclically reduced.

      @[simp]
      theorem TauCeti.toFreeGroup_coxeterRelator {B : Type u_1} (M : CoxeterMatrix B) (i j : B) :

      Interpreting a Coxeter relator in the free group yields Mathlib's Coxeter relation.

      The Coxeter relators drawn from a list of nodes: one relator (sᵢ sⱼ) ^ M i j for each unordered pair of list entries, including pairs that use the same entry, so that the involution relators are among them. Duplicate entries can produce repeated relators. The pair is written in increasing order.

      The unordered pairs are Mathlib's List.sym2; Sym2.inf and Sym2.sup name the smaller and the larger node, which is the choice of order the free group forces on the transcription.

      Instances For

        The Coxeter relator list is obtained by mapping the canonically ordered representative of each unordered pair of list positions to its Coxeter relator.

        This is the unfolding lemma for the sealed body, and like TauCeti.GroupPresentation.relators_def it is deliberately not @[simp]: it lets a concrete finite presentation audit the compiled words without the definition being exposed.

        @[simp]

        A list of length n yields (n + 1).choose 2 Coxeter relators, the number of unordered pairs of list positions with repetition allowed.

        @[simp]
        theorem TauCeti.mem_coxeterRelatorsOfList_iff {B : Type u_1} [LinearOrder B] {M : CoxeterMatrix B} {l : List B} {t : Relator B} :
        t ∈ coxeterRelatorsOfList M l ↔ ∃ i ∈ l, ∃ j ∈ l, t = coxeterRelator M s(i, j).inf s(i, j).sup

        Membership in the Coxeter relator list, in terms of two nodes of the source list and their canonical increasing order.

        The Coxeter relators of a matrix indexed by Fin n, in the order of the Bourbaki-style node numbering 0, 1, …, n - 1.

        Instances For

          The numbered Coxeter relator list uses the nodes 0, …, n - 1 in that order. This is the unfolding lemma for the sealed body, and like coxeterRelatorsOfList_def it is not @[simp].

          @[simp]
          theorem TauCeti.mem_coxeterRelators_iff {n : ℕ} {M : CoxeterMatrix (Fin n)} {t : Relator (Fin n)} :
          t ∈ coxeterRelators M ↔ ∃ (i : Fin n) (j : Fin n), t = coxeterRelator M s(i, j).inf s(i, j).sup

          Membership in the Coxeter relator list of a Fin n-indexed matrix: every pair of nodes contributes, so the only condition is that the relator be the one of a pair, written in the canonical increasing order.

          @[simp]

          A Coxeter diagram on n nodes has (n + 1).choose 2 relators.

          The finite Coxeter relator list presents the same group as Mathlib's relation set. The two sets of relations need not coincide: for distinct nodes, only one of (sᵢ sⱼ) ^ mᵢⱼ and (sⱼ sᵢ) ^ mᵢⱼ is transcribed. They are conjugate and so have the same normal closure.

          Appending further relators to the Coxeter relator list imposes Mathlib's Coxeter relations together with the extra relations. A published Y-diagram presentation has this shape, its extra relator being the spider relator.

          The group presented by the finite Coxeter relator list is Mathlib's Coxeter group.

          Instances For

            The Coxeter relator list followed by further relators presents Mathlib's Coxeter relations together with those extra relations. Taking extra = [] recovers TauCeti.mulEquivCoxeterGroup.

            Instances For
              @[simp]

              Every Coxeter relation of M holds in a presented group whose relators are the Coxeter relators of M followed by any further relators, in either order of the two generators.

              @[simp]

              Every generator is an involution in a presented group whose relators are the Coxeter relators of M followed by any further relators.

              A transcription whose relations have the same normal closure as the Coxeter relators of M presents M.Group. A presentation row that adds relators to the diagram — every published Y-diagram row does, its spider relator being the addition — is served by TauCeti.GroupPresentation.mulEquivPresentedGroupCoxeterAppend instead.

              The hypothesis is stated at the normal-closure level, so it also applies when different relation sets generate the same normal subgroup.

              Instances For

                A transcription whose relations have the same normal closure as the Coxeter relators of M followed by further relators presents the Coxeter relations together with those extra relations. This is the form an audited Y-diagram presentation row uses: the record supplies the generator names, the source, and the count checks, the diagram supplies the Coxeter relators, and the row's own relators — the spider relator, and for the Monster the relator Z as well — are the extras.

                Instances For