Documentation

TauCeti.GroupTheory.Presentation.GroupPresentation

Auditable finite group presentations #

This file packages a finite group presentation. The generator count fixes the relator index type to Fin generatorCount. Sources, generator names and conventions, and transcription notes belong in the docstring of each concrete presentation. The expected relator count stated by the source is checked against the transcribed data by TauCeti.GroupPresentation.matchesMetadata.

The stored relators are human-readable TauCeti.Relator expressions. They are compiled to Mathlib's signed words and then interpreted by FreeGroup.mk; the resulting finite list of relations, regarded as a set, defines TauCeti.GroupPresentation.Group using Mathlib's PresentedGroup.

Main definitions #

Main results #

A finite group presentation with an expected relator count.

The source must be a full presentation of the abstract group, not a semi-presentation for recognizing generators in a group already constructed elsewhere. Record its citation, generator names and conventions, and any transcription notes in the presentation's docstring. generatorCount determines the relator arity; matchesMetadata checks the relator count against expectedRelatorCount.

  • generatorCount : ℕ

    The number of generators stated by the source, fixing the relator index type.

  • expectedRelatorCount : ℕ

    The number of relators stated by the source.

  • transcribed : List (Relator (Fin self.generatorCount))

    Relators transcribed in the generator order documented for the presentation.

Instances For

    The relator expressions compiled to left-to-right signed words.

    Instances For

      The compiled relators are obtained by compiling each transcribed expression.

      This is the unfolding lemma for TauCeti.GroupPresentation.relators, whose body is sealed. It is deliberately not @[simp]: the simp normal form of a presentation is the structural description given by length_relators and mem_relators_iff below, not the compiled list.

      @[simp]

      Compilation preserves the number of relators.

      @[simp]

      The compiled words are exactly the compilations of the transcribed expressions.

      The compiled relator words, with each generator index displayed as a natural number.

      A transcription is audited by comparing the compiled letters with the published relators, and this form of them is the one to state such a comparison against: the index type of a word depends on the generator count, whereas the letters here do not, so the comparison needs no arithmetic on that dependency.

      Instances For

        The displayed letters are obtained by forgetting the bounds on the compiled generator indices. This is the unfolding lemma for the sealed body, and like relators_def it is not @[simp].

        The total number of letters in the compiled relator words.

        Sources for finite presentations customarily publish this figure, usually calling it the length of the presentation, so comparing it with the transcribed data gives a decidable check on a transcription alongside the relator count of TauCeti.GroupPresentation.matchesMetadata. A published length is normally measured after free and cyclic reduction of each relator, so a row using it as a check should also record that its compiled words are reduced.

        Instances For

          The total length is the sum of the lengths of the compiled relator words. This is the unfolding lemma for the sealed body, and like relators_def it is not @[simp].

          The displayed letter words have the same lengths as the compiled relator words, since forgetting the bounds on the generator indices does not change a word's length.

          A row that spells its compiled words out letter by letter therefore gets its per-relator length check from that one comparison, rather than by unfolding the relator compiler a second time.

          The total length is also the sum of the lengths of the displayed letter words.

          Every compiled relator word of a presentation is cyclically reduced.

          A published presentation length is normally measured after free and cyclic reduction of each relator, so this is what makes TauCeti.GroupPresentation.totalLength comparable with such a figure. It is a check on the transcribed data only, and says nothing about the presented group.

          Instances For
            @[simp]

            The cyclic-reduction check unfolds to a statement about each compiled word.

            @[instance_reducible]

            A word is cyclically reduced exactly when free reduction leaves it alone and its last letter does not cancel against its first, and both halves of that are decidable.

            The compiled relations, interpreted as elements of the free group.

            Instances For
              @[simp]

              The relations are exactly the free-group elements denoted by the transcribed expressions.

              This is stated against Relator.toFreeGroup rather than against the compiled words, so a consumer discharging the relations of PresentedGroup never has to unfold the compiler.

              The relations of a presentation are the relator set of its transcribed expressions.

              This is the bridge between the presentation-level relation set and TauCeti.Relator.relatorSet, the notion in which the relator lists of a transcription are built and reasoned about, so a consumer relating the two never has to re-derive the identification by extensionality.

              It is deliberately not @[simp]: mem_relatorSet_iff above is the simp normal form of a membership in relatorSet, and rewriting the set itself would take that lemma's left-hand side out of normal form, which the simpNF linter rejects.

              @[reducible, inline]

              The group defined by the generators and compiled relations of a presentation.

              Instances For

                Homomorphisms from a finite presentation correspond to generator assignments satisfying its transcribed relators. No generation or injectivity condition is imposed on the assignment.

                Instances For
                  @[simp]

                  The assignment associated to a homomorphism consists of its values on the generators.

                  @[simp]

                  Extending a satisfying assignment sends each generator to its assigned value.

                  The range of the homomorphism extending a satisfying assignment is the subgroup generated by the assigned values.

                  A satisfying assignment whose values generate a subgroup H gives a surjective homomorphism from the presented group onto H.

                  The recorded relator count agrees with the transcribed data.

                  This checks transcription metadata only; it makes no claim that the source presents a named group or that the transcription agrees with the source.

                  Instances For
                    @[simp]

                    The metadata check unfolds to the relator count equality.