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:
- every
g_jandJis an involution; - each
g_jcommutes withJ; - variables that occur in a common equation commute;
- each equation imposes the product relation
∏_{j ∈ support(i)} g_j = J ^ b_i.
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.
Generators for the solution group of a binary linear system.
- var {S : LinearSystem} : Fin S.layout.s → SolutionGen S
- J {S : LinearSystem} : SolutionGen S
Instances For
Equations
- instDecidableEqSolutionGen.decEq (SolutionGen.var a) (SolutionGen.var b) = if h : a = b then h ▸ isTrue ⋯ else isFalse ⋯
- instDecidableEqSolutionGen.decEq (SolutionGen.var a) SolutionGen.J = isFalse ⋯
- instDecidableEqSolutionGen.decEq SolutionGen.J (SolutionGen.var a) = isFalse ⋯
- instDecidableEqSolutionGen.decEq SolutionGen.J SolutionGen.J = isTrue ⋯
Instances For
Equations
- One or more equations did not get rendered due to their size.
- instReprSolutionGen.repr SolutionGen.J prec✝ = Repr.addAppParen (Std.Format.nest (if prec✝ ≥ 1024 then 1 else 2) (Std.Format.text "SolutionGen.J")).group prec✝
Instances For
Equations
- instReprSolutionGen = { reprPrec := instReprSolutionGen.repr }
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
- genVar j = FreeGroup.of (SolutionGen.var j)
Instances For
The distinguished central free-group generator.
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 relator encoding equation i as equationWord = J^(b i).
Equations
- equationRelator S i = equationWord S i * (genJ ^ ↑(S.b i))⁻¹
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.
!
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.