Documentation

LCS.SolutionGroup

Solution Groups for Binary Linear Systems #

This module defines the solution group attached to a binary linear system. For a system with variables g_j and distinguished generator J, the presentation is generated by the four standard families of relations:

The main construction is SolutionGroup S, together with quotient elements SolutionGroup.var and SolutionGroup.J and lemmas showing that the four families of defining constraints hold in the presented group.

inductive SolutionGen (S : LinearSystem) :

Generators for the solution group of a binary linear system.

Instances For
    Equations
    Instances For

      Pretty-print a free-group relator as a product of solution-group generators.

      Equations
      • One or more equations did not get rendered due to their size.
      Instances For

        Defining Constraint Relators #

        The next definitions collect the free-group words used to impose the four families of constraints in the solution-group presentation.

        The free-group generator attached to variable j.

        Equations
        Instances For

          The distinguished central free-group generator.

          Equations
          Instances For
            def involutionRel {α : Type u_1} (x : FreeGroup α) :

            The relator forcing x to be an involution.

            Equations
            Instances For
              def commuteRel {α : Type u_1} (x y : FreeGroup α) :

              The commutator relator forcing x and y to commute.

              Equations
              Instances For

                ∏_{j ∈ support(i)} g_j = J ^ b_i #

                The next helper lemmas work towards the product for equation i equals J^(b_i)

                The support of equation i, extracted from the coefficient matrix.

                Equations
                Instances For

                  The left-hand-side word of equation i, ordered by the Finset order.

                  Equations
                  Instances For

                    The relator encoding equation i as equationWord = J^(b i).

                    Equations
                    Instances For
                      def sameEquation (S : LinearSystem) (j k : Fin S.layout.s) :

                      Two variables are related when they appear together in some equation.

                      Equations
                      Instances For

                        Computable test for sameEquation, used to build an inspectable relator list.

                        Equations
                        Instances For

                          List of the defining relators of the solution group of S.

                          Equations
                          • One or more equations did not get rendered due to their size.
                          Instances For

                            Defining the relations as a set #

                            The defining relators of the solution group of S.

                            Equations
                            • One or more equations did not get rendered due to their size.
                            Instances For

                              The computable same-equation test agrees with the propositional predicate.

                              The list presentation has the same membership as the direct set presentation.

                              @[reducible, inline]

                              !

                              The Presented Solution Group #

                              The solution group of a linear system is the presented group with the relators defined above.

                              Equations
                              Instances For

                                The distinguished quotient element attached to variable j.

                                Equations
                                Instances For

                                  The distinguished quotient element J.

                                  Equations
                                  Instances For
                                    @[simp]
                                    theorem SolutionGroup.var_sq {S : LinearSystem} (j : Fin S.layout.s) :
                                    var j ^ 2 = 1
                                    @[simp]
                                    theorem SolutionGroup.J_sq {S : LinearSystem} :
                                    J ^ 2 = 1