Introduction
We begin by defining the basic objects of study, including the algebraic definition of braids, the Lean theorem prover, and the subword reversing algorithm. At the end of this chapter, we give an overview of the entire project.
Mathematical Braids
Braids were given their first full definition and exposition as a mathematical object by Emil Artin in 1925 [2 ] . He gave both a topological and algebraic definition of these physical objects. A physical braid is a set of strings in three-dimensional space, affixed at top and bottom to the “floor” and “ceiling.” These strings can be twisted together or crossed, but must always flow downwards. No doubling-back is allowed. This is the sort of image to keep in mind:
Figure 6.
The topological definition lies outside the scope of this project. We work solely with Artin’s algebraic definition, occasionally using images of the corresponding physical objects to aid in exposition.
Definition 1.1 (Presented Group). Consider a set S S S and a binary relation R R R on elements of the free group over S S S , F S F_S F S . The presented group ⟨ S ∣ R ⟩ \langle S \mid R\rangle ⟨ S ∣ R ⟩ is the quotient of F S F_S F S by the congruence generated over R R R (the reflexive, symmetric, transitive, multiplicative closure of R R R ).
Definition 1.2. Artin’s braid group on n n n strands is given by the presentation
B n : = ⟨ σ 1 , … , σ n − 1 ∣ σ i σ j = σ j σ i for ∣ i − j ∣ ≥ 2 , σ i σ j σ i = σ j σ i σ j for ∣ i − j ∣ = 1 ⟩ B_n := \left\langle\sigma_1,\ldots,\sigma_{n-1} \mathrel{\left| \begin{aligned} \sigma_i\sigma_j &= \sigma_j\sigma_i && \text{for } |i-j| \ge2,\\ \sigma_i\sigma_j\sigma_i &= \sigma_j\sigma_i\sigma_j && \text{for } |i-j| = 1 \end{aligned}\right.}\right\rangle B n := ⟨ σ 1 , … , σ n − 1 σ i σ j σ i σ j σ i = σ j σ i = σ j σ i σ j for ∣ i − j ∣ ≥ 2 , for ∣ i − j ∣ = 1 ⟩ The infinite braid group B ∞ B_\infty B ∞ can be defined as the direct limit B ∞ : = ⋃ n ∈ N B n B_\infty:= \bigcup_{n\in\mathbb{N}} B_n B ∞ := ⋃ n ∈ N B n or equivalently by the presentation
B ∞ : = ⟨ σ 1 , σ 2 , σ 3 … σ i σ j = σ j σ i for ∣ i − j ∣ ≥ 2 , σ i σ j σ i = σ j σ i σ j for ∣ i − j ∣ = 1 ⟩ B_{\infty} := \left\langle\begin{array}{c|c} \sigma_1,\sigma_2,\sigma_3\ldots& \begin{aligned} \sigma_i\sigma_j&=\sigma_j\sigma_i && \text{for } |i-j|\ge2,\\ \sigma_i\sigma_j\sigma_i&=\sigma_j\sigma_i\sigma_j && \text{for } |i-j|=1 \end{aligned} \end{array} \right\rangle B ∞ := ⟨ σ 1 , σ 2 , σ 3 … σ i σ j σ i σ j σ i = σ j σ i = σ j σ i σ j for ∣ i − j ∣ ≥ 2 , for ∣ i − j ∣ = 1 ⟩
The generator σ i \sigma_i σ i represents the strand in position i i i (1 ≤ i < n 1\le i<n 1 ≤ i < n ) crossing over the strand to its right.
Figure 7 (PDF p. 4).
σ i − 1 \sigma_i^{-1} σ i − 1 represents the strand in position i i i crossing under the strand to its right.
Figure 8.
For example, the braid at the opening of this chapter is coded σ 1 − 1 σ 3 σ 2 − 1 σ 1 σ 2 − 1 σ 1 σ 3 σ 2 \sigma_1^{-1}\sigma_3\sigma_2^{-1}\sigma_1\sigma_2^{-1}\sigma_1\sigma_3\sigma_2 σ 1 − 1 σ 3 σ 2 − 1 σ 1 σ 2 − 1 σ 1 σ 3 σ 2 .
The physical representation shows how inverses untangle: here is σ i − 1 σ i \sigma_i^{-1}\sigma_i σ i − 1 σ i :
Figure 9.
is equivalent to
Figure 10.
The defining relations of the braid group can be visualized as follows:
Crossings far apart can be slid up and down (if ∣ i − j ∣ ≥ 2 |i-j|\ge2 ∣ i − j ∣ ≥ 2 , σ i σ j \sigma_i\sigma_j σ i σ j is equivalent to σ j σ i \sigma_j\sigma_i σ j σ i ):
Figure 11.
is equivalent to
Figure 12.
An adjacent strand can be pulled through a crossing (σ i σ i + 1 σ i \sigma_i\sigma_{i+1}\sigma_i σ i σ i + 1 σ i is equivalent to σ i + 1 σ i σ i + 1 \sigma_{i+1}\sigma_i\sigma_{i+1} σ i + 1 σ i σ i + 1 ):
Figure 13.
is equivalent to
Figure 14.
Of course, to rigorously show that these relations are sufficient to capture equivalence in the physical objects, one must give a topological definition and the proof that the algebraic and topological definitions coincide. The interested reader can find a modern exposition in Patrick Dehornoy’s textbook “The Calculus of Braids”, chapters one and two [16 ] .
The Lean Theorem Prover
Lean is a functional programming language and interactive theorem prover based on dependent type theory. Leonardo de Moura launched Lean in 2013; the language is now on version 4 [8 ] . Mathematicians worldwide use Lean to formally verify proofs across mathematics, from undergraduate basics to the cutting edge of research. In Lean, one can implement algorithms and execute them using the #eval command along with stating and proving theorems about their properties, all in the same file. While algorithms of course must be computable in order to evaluate, Lean is not limited to computable functions or constructive proofs. One can choose to use Lean with constructive or classical logic. When proving correctness of an algorithm, for example, the algorithm must be computable but the proofs of correctness and termination need not be.
A large collaborative project to formalize mathematics in one central repository, named Mathlib, is ongoing, and currently counts 772 contributors [34 ] .1 As far as we can tell, there has been no formalization of Artin’s braid group in Mathlib or elsewhere in Lean, nor in any other theorem prover. Coxeter groups, another type of presented group which is similar in structure to the braid groups, have recently been formalized in Lean.2 There has been work in formalized category theory which could be related to braid groups [33 , 31 , 6 ] , including basic definitions in Lean3 , but the major required theorem4 is not yet formalized, and the word problem in such categorical structures is as hard as that of the unknot problem [19 ] , compared to polynomial-time complexity for braid groups [13 ] . Thus, a connection to category theory does not simplify the project, and lies beyond the scope of this paper. Knots and a few invariants thereof were formalized in Isabelle/HOL by Prathamesh in 2015 [32 ] . However, the mathematics used to study braids (presented groups, localizations, orderings) differs from that used for knots (polynomial invariants). There are also a number of computational packages for working with braids, for example in MATLAB [35 ] , SAGE5 , and GAP [29 ] . Lastly, two theorems about braid groups (unrelated to this project) recently appeared on Prove2Me,6 an AI-based website where users employ their agents to solve mathematical “missions” proposed by humans. Upon a brief perusal, we were unable to find the Lean code on the Prove2Me site, and so are unsure of what definition of the braid groups was used.7
As to the formalization of a word problem decision procedure, existing similar work is limited. A recent paper on decidability in presented monoids does offer a (slow) Rocq algorithm (homog_dec) which can be used for any presented monoid whose relations preserve length [7 ] . This could be applied to determine equivalence in braid monoids but cannot be extended to braid groups.
Word Problem Algorithm
The word problem in a group is to determine whether two representatives represent the same equivalence class. In general, the word problem of a presented group is unsolvable [5 , 30 ] . For the braid group in particular, this problem is solvable in polynomial time. A large number of algorithms exist, in part prompted by the early-2000s hope that braid group problems could be used for post-quantum security protocols [27 , 10 ] . Early algorithms with exponential complexity included Artin combing [1 ] and Garside’s method of universal denominators [21 ] , although both methods have subsequently received updates which run in polynomial time [22 , 36 ] . A more modern solution by Birman, Ko, and Lee introduced an alternative presentation of the braid group, yielding a normal form with computational advantages [4 ] . Other methods such as Dynnikov coordinates [20 , 13 ] and the Lawrence-Krammer representation [26 , 3 ] give exceptionally simple algorithms which work quite efficiently, but the proofs of correctness involve advanced topology. Dehornoy’s most recent algorithm is handle reduction, which is experimentally quite fast (but there is no proof of polynomial-time complexity) [13 ] .
For this project, we have implemented Dehornoy’s earlier method: subword reversing (as introduced in a journal article [12 ] and elucidated in his textbook [16 ] ). While this may not be the fastest method, it runs in quadratic time, relies on a manageable amount of theory, and could be generalized to larger classes of groups [15 ] . Moreover, this solution builds infrastructure that could be reused in a future implementation of other algorithms, such as handle reduction.
The primary contribution lies in the treatment of this algorithm’s termination. Dehornoy wrote about this algorithm over a period of approximately twenty-five years. Most of Dehornoy’s work presents a compelling sketch of why subword reversing terminates via associating rectangular grid diagrams to individual instances of reversing, but does not give a proof for this method. Bridging this gap required the development of a new proof of termination, done in three stages. It does appear that in one of Dehornoy’s earliest papers he gives a different proof which may be fully rigorous as written. This proof is quite delicate (we will discuss this further in Chapter § 6 ). It seems that Dehornoy preferred the visual intuition and simplicity of the grid-based method, so we are pleased to have been able to fill in this method.
The heart of the algorithm is a reversing procedure on braid words. To underscore that we are working with words and not braid group elements, we use σ ˉ i \bar{\sigma}_i σ ˉ i in place of σ i − 1 \sigma_i^{-1} σ i − 1 . The reversing procedure consists of repeatedly rewriting negative-positive pairs σ ˉ i σ j \bar{\sigma}_i\sigma_j σ ˉ i σ j as follows:
If ∣ i − j ∣ = 0 |i-j|=0 ∣ i − j ∣ = 0 , σ ˉ i σ i \bar{\sigma}_i\sigma_i σ ˉ i σ i is deleted (more precisely, replaced by the empty word ε \varepsilon ε ).
If ∣ i − j ∣ > 1 |i-j|>1 ∣ i − j ∣ > 1 , σ ˉ i σ j \bar{\sigma}_i\sigma_j σ ˉ i σ j is replaced by σ j σ ˉ i \sigma_j\bar{\sigma}_i σ j σ ˉ i .
If ∣ i − j ∣ = 1 |i-j|=1 ∣ i − j ∣ = 1 , σ ˉ i σ j \bar{\sigma}_i\sigma_j σ ˉ i σ j is replaced by σ j σ i σ ˉ j σ ˉ i \sigma_j\sigma_i\bar{\sigma}_j\bar{\sigma}_i σ j σ i σ ˉ j σ ˉ i .
Note that these rewritings preserve equivalence under the braid relations. The proofs are straightforward algebraic manipulations; here is an instance of the third case, with numerical indices for readability:
σ ˉ 2 σ 3 ≡ σ ˉ 2 σ 3 σ 2 σ ˉ 2 (as ε ≡ σ 2 σ ˉ 2 ) ≡ σ ˉ 2 σ 3 σ 2 σ 3 σ ˉ 3 σ ˉ 2 (as ε ≡ σ 3 σ ˉ 3 ) ≡ σ ˉ 2 σ 2 σ ˉ 3 σ 2 σ 3 σ ˉ 2 (as σ 3 σ 2 σ 3 ≡ σ 2 σ 3 σ 2 ) ≡ σ 3 σ 2 σ ˉ 3 σ ˉ 2 (as σ ˉ 2 σ 2 ≡ ε ) \begin{aligned}
\bar{\sigma}_2\sigma_3 &\equiv\bar{\sigma}_2\sigma_3\sigma_2\bar{\sigma}_2 && \text{(as }\varepsilon\equiv\sigma_2\bar{\sigma}_2\text{)}\\
&\equiv\bar{\sigma}_2\sigma_3\sigma_2\sigma_3\bar{\sigma}_3\bar{\sigma}_2 && \text{(as }\varepsilon\equiv\sigma_3\bar{\sigma}_3\text{)}\\
&\equiv\bar{\sigma}_2\sigma_2\bar{\sigma}_3\sigma_2\sigma_3\bar{\sigma}_2 && \text{(as }\sigma_3\sigma_2\sigma_3\equiv\sigma_2\sigma_3\sigma_2\text{)}\\
&\equiv\sigma_3\sigma_2\bar{\sigma}_3\bar{\sigma}_2 && \text{(as }\bar{\sigma}_2\sigma_2\equiv\varepsilon\text{)}
\end{aligned} σ ˉ 2 σ 3 ≡ σ ˉ 2 σ 3 σ 2 σ ˉ 2 ≡ σ ˉ 2 σ 3 σ 2 σ 3 σ ˉ 3 σ ˉ 2 ≡ σ ˉ 2 σ 2 σ ˉ 3 σ 2 σ 3 σ ˉ 2 ≡ σ 3 σ 2 σ ˉ 3 σ ˉ 2 (as ε ≡ σ 2 σ ˉ 2 ) (as ε ≡ σ 3 σ ˉ 3 ) (as σ 3 σ 2 σ 3 ≡ σ 2 σ 3 σ 2 ) (as σ ˉ 2 σ 2 ≡ ε )
Now, let us show reversing in action. We begin with σ ‾ 1 σ 0 σ ‾ 2 σ 1 \overline{\sigma}_1\sigma_0\overline{\sigma}_2\sigma_1 σ 1 σ 0 σ 2 σ 1 ; here is the sequence of rewritings:
σ ‾ 1 σ 0 σ ‾ 2 σ 1 σ 0 σ 1 σ ‾ 0 σ ‾ 1 σ ‾ 2 σ 1 σ 0 σ 1 σ ‾ 0 σ ‾ 1 σ 1 σ 2 σ ‾ 1 σ ‾ 2 σ 0 σ 1 σ ‾ 0 σ 2 σ 1 σ ‾ 2 σ 0 σ 1 σ 2 σ ‾ 0 σ ‾ 1 σ ‾ 2 \begin{aligned}
\overline{\sigma}_1\sigma_0\overline{\sigma}_2\sigma_1 \\
\sigma_0\sigma_1\overline{\sigma}_0\overline{\sigma}_1\overline{\sigma}_2\sigma_1 \\
\sigma_0\sigma_1\overline{\sigma}_0\overline{\sigma}_1\sigma_1\sigma_2\overline{\sigma}_1\overline{\sigma}_2 \\
\sigma_0\sigma_1\overline{\sigma}_0\sigma_2\sigma_1\overline{\sigma}_2 \\
\sigma_0\sigma_1\sigma_2\overline{\sigma}_0\overline{\sigma}_1\overline{\sigma}_2
\end{aligned} σ 1 σ 0 σ 2 σ 1 σ 0 σ 1 σ 0 σ 1 σ 2 σ 1 σ 0 σ 1 σ 0 σ 1 σ 1 σ 2 σ 1 σ 2 σ 0 σ 1 σ 0 σ 2 σ 1 σ 2 σ 0 σ 1 σ 2 σ 0 σ 1 σ 2
So, reversing σ ‾ 1 σ 0 σ ‾ 2 σ 1 \overline{\sigma}_1\sigma_0\overline{\sigma}_2\sigma_1 σ 1 σ 0 σ 2 σ 1 gives σ 0 σ 1 σ 2 σ ‾ 0 σ ‾ 1 σ ‾ 2 \sigma_0\sigma_1\sigma_2\overline{\sigma}_0\overline{\sigma}_1\overline{\sigma}_2 σ 0 σ 1 σ 2 σ 0 σ 1 σ 2 . Note that the final word is in positive-negative form, with no negative-positive pairs appearing.
To determine if two braid group words are equivalent, we may simply check if a b − 1 ab^{-1} a b − 1 is equivalent to the empty word. The full subword reversing algorithm will reverse its input, exchange the positive and negative parts, and reverse again, returning true if that final reversing produces the empty string, and false otherwise.
Outline
Throughout the text, clickable Lean icons in the righthand margin link to the relevant lines in the GitHub formalization. The repository, frozen at the time of this paper’s writing, can be found at https://github.com/hannahfechtner/braids_better/tree/098309403cda787eaf1fa954e07ff0ca3b2927ee . Information about the Lean and Mathlib versions needed to build the code are available in the README file.
Chapters 2–5 discuss formalization of known results, following Patrick Dehornoy’s textbook The Calculus of Braids [16 ] . Chapters 6–8 expand on Dehornoy’s work and contain new material necessary to implement his subword reversing algorithm in a theorem prover.
Chapter 2 develops the algebraic framework needed for the reversing algorithm, including the braid group, braid monoids, and Semi-Thue systems. Before we implement the algorithm itself, we spend the next five chapters preparing theorems which will be used to show its termination and correctness.
Chapters 3–5 prove the localization result that connects equivalence in the braid monoid with equivalence in the braid group, a connection that will be essential to the proof of correctness. Chapter 3 develops the necessary theory of Ore localization. Chapters 4 and 5 then show that the braid monoid satisfies the hypotheses required for this localization: Chapter 4 formalizes Dehornoy’s proof of the existence of common multiples, while Chapter 5 proves cancellativity. The proof of cancellativity introduces grid diagrams, which encode braid monoid equivalences and will play a central role throughout the remainder of the project.
Chapters 6 and 7 develop the structures and metrics needed to prove termination of the reversing algorithm. Chapter 6 extends the interpretation of grid diagrams by introducing partial grids and grid-style rewriting, and establishes the correspondence between these new structures and reversing rewrites. Chapter 7 defines metrics on these structures. The material in these two chapters will yield a well-founded measure that decreases as reversing proceeds, providing the basis for the termination proof. The constructions and results developed in these two chapters appear, to the best of my knowledge, to be novel.
Chapter 8 at last brings all these strands together in the implementation of the subword reversing algorithm, first for braid monoid words and then for braid group words. The results of the preceding chapters are combined to prove correctness and termination. The procedure is also extended to the finite braid group. Finally, Chapter 9 concludes with directions for future work.
Defining Braids
This chapter develops the algebraic structures that will be used throughout the remainder of the paper. We begin by defining Artin–Tits groups and specializing this construction to Artin’s infinite braid group. We then turn to two structures necessary for subword reversing. We begin with presented monoids, and we define the infinite braid monoid and establish its basic properties. We next discuss Semi-Thue systems, which we will use to model string rewriting. Together, these definitions and results provide the algebraic foundation for the subword reversing algorithm. Lastly, we return to all the structures discussed, this time in the finite setting. We introduce the finite braid groups and monoids and develop mappings between the infinite and finite braid group/monoids.
Artin-Tits Groups
Braid groups are a special case of Artin-Tits groups.
Definition 2.1. Given a semigroup G G G and a , b ∈ G a,b \in G a , b ∈ G , Artin-Tits relations are those of the form a b a … = b a b … aba \ldots= bab \ldots aba … = bab … , where each side of the equality has the same length.
Definition 2.2. Artin-Tits groups are presented groups ⟨ S ∣ R ⟩ \langle S|R\rangle ⟨ S ∣ R ⟩ in which all relations R R R are Artin-Tits, with at most one relation for each pair of generators. We may succinctly package the information for the relations into a function m : ( S × S ) → N m : (S \times S) \to\mathbb{N} m : ( S × S ) → N , whose graph can be arranged into a symmetric matrix. Then all relations are of the form
a b a ⋯ ⏟ length m ( a , b ) = b a b ⋯ ⏟ length m ( a , b ) \underbrace{aba\cdots}_{\text{length }m(a,b)} = \underbrace{bab\cdots}_{\text{length }m(a,b)} length m ( a , b ) aba ⋯ = length m ( a , b ) bab ⋯ for generators a , b ∈ S a,b \in S a , b ∈ S , viewed as elements of the free group over S S S . If no Artin-Tits relation exists between generators a a a and b b b , we will set m ( a , b ) : = 0 m(a,b) := 0 m ( a , b ) := 0 .8
Artin-Tits groups are very similar to Coxeter groups, which have the additional property that for every generator a a a , a 2 = 1 a^2 = 1 a 2 = 1 . We are thus able to lightly edit much of the work done by Newell Jensen, Mitchell Lee, and Óscar Álvarez, who formalized the definition and many properties of Coxeter groups.9
In Lean, following Jensen, Lee, and Álvarez, we give the set of generators as the type α \alpha α , and the matrix m m m by the ArtinTitsMatrix structure. The off_diagonal property ensures that different generators are distinct.
structure ArtinTitsMatrix (α : Type*) where
M : Matrix α α ℕ
isSymm : M.IsSymm := by decide
off_diagonal i i’ : i ≠ i’ → M i i’ ≠ 1 := by decide
A simple recursive definition produces an alternating string of group elements.10
def Group.alternate [Monoid G] (a b : G) (n : ℕ) : G := match n with
| 0 => 1
| n’ + 1 => a * alternate b a n’
We generate the Artin-Tits relation for any two generators with ArtinTits.relation; instead of giving an equality, we give a free group element equivalent to the identity:
( a b a ⋯ ⏟ length m ( a , b ) ) ⋅ ( b a b ⋯ ⏟ length m ( a , b ) ) − 1 \left( \underbrace{aba\cdots}_{\text{length }m(a,b)} \right) \cdot\left( \underbrace{bab\cdots}_{\text{length }m(a,b)} \right)^{-1} length m ( a , b ) aba ⋯ ⋅ length m ( a , b ) bab ⋯ − 1
The occurrences of FreeGroup.of in the below definition lift an element of a set to the corresponding free group element.
def ArtinTits.relation (M : ArtinTitsMatrix α) (a b : α) : FreeGroup (α) :=
Group.alternate (FreeGroup.of a) (FreeGroup.of b) (M a b) * (Group.alternate
(FreeGroup.of b) (FreeGroup.of a) (M a b))⁻¹
We gather all the relations into a single set:
def ArtinTits.relation_set : Set (FreeGroup α) :=
Set.range (Function.uncurry (relation M))
Finally, using the already-existing PresentedGroup structure from Mathlib, we define ArtinTitsGroup which will build the corresponding Artin-Tits group given a matrix m m m .
def ArtinTitsGroup (M : ArtinTitsMatrix α) := PresentedGroup (relation_set M)
At this point, we must decide whether or not to duplicate the PresentedGroup API, specializing it to Artin-Tits groups. If the construction were not canonical, we would duplicate the API so that their implementation would be opaque to users. Here, the definition as a presented group is canonical, and one can expect the user to know that an Artin-Tits group is a presented group. Often in this case no custom API is given, especially when the code is intended to go into Mathlib, for this leads to unnecessary extra code to maintain. There is a bit of leeway for non-Mathlib code, and also when the specialization leads to simpler hypotheses for certain theorems. The latter is true for the universal property for Artin-Tits groups. We recall the universal property for presented groups in general :
Theorem 2.3. (Universal Property for Presented Groups) Given a set of generators S S S and a set of relations R R R on S ∗ S^* S ∗ , the universal property for the presented group ⟨ S ∣ R ⟩ \langle S \mid R\rangle ⟨ S ∣ R ⟩ states that for any group G G G and function f : S → G f : S \to G f : S → G respecting the relations R R R , there exists a unique group homomorphism g : ⟨ S ∣ R ⟩ → G g : \langle S \mid R\rangle\to G g : ⟨ S ∣ R ⟩ → G such that g ( ⟦ s ⟧ R ) = f ( s ) g(\llbracket s\rrbracket_R) = f(s) g ( [ [ s ] ] R ) = f ( s ) for every s ∈ S s \in S s ∈ S .
Here, we decide to implement a custom universal property for the Artin-Tits groups, as we can simplify the hypothesis that the function to be lifted respects the relations.
Theorem 2.4. (Universal Property for Artin-Tits Groups) Given a set of generators S S S , a set of Artin-Tits relations R R R , and a function m m m which generates R R R , the universal property for the Artin-Tits group ⟨ S ∣ R ⟩ \langle S \mid R\rangle ⟨ S ∣ R ⟩ states that for any group G G G and function f : S → G f : S \to G f : S → G such that for all a , b ∈ S a,b \in S a , b ∈ S ,
f ( a ) f ( b ) f ( a ) ⋯ ⏟ length m ( a , b ) = f ( b ) f ( a ) f ( b ) ⋯ ⏟ length m ( a , b ) \underbrace{f(a)\,f(b)\,f(a)\cdots}_{\text{length }m(a,b)}
=
\underbrace{f(b)\,f(a)\,f(b)\cdots}_{\text{length }m(a,b)} length m ( a , b ) f ( a ) f ( b ) f ( a ) ⋯ = length m ( a , b ) f ( b ) f ( a ) f ( b ) ⋯ there exists a unique group homomorphism g : ⟨ S ∣ R ⟩ → G g : \langle S \mid R\rangle\to G g : ⟨ S ∣ R ⟩ → G such that g ( ⟦ s ⟧ R ) = f ( s ) g(\llbracket s\rrbracket_R) = f(s) g ( [ [ s ] ] R ) = f ( s ) for every s ∈ S s \in S s ∈ S .
In Lean, we can phrase this property in terms of the matrix m m m and Group.alternate, without needing to reference ArtinTits.relation and ArtinTits.relation_set; we simply require that the function f f f satisfies
def ArtinTits.IsLiftable (M : ArtinTitsMatrix α) [Group G] (f : α → G) : Prop :=
∀ i j, Group.alternate (f i) (f j) (M i j) = Group.alternate (f j) (f i) (M i j)
Then we can prove that IsLiftable functions satisfy the liftability requirement for the presented group universal property. We do so by unpacking the definition of ArtinTits.relation_set and ArtinTits.relation; that way, they may remain opaque to the user. Then our custom universal property needs only an instance of IsLiftable:
def ArtinTits.toGroup {G : Type*} [Group G] {f : α → G} (M : ArtinTitsMatrix α)
(hf : IsLiftable M f) : ArtinTitsGroup M →* G
By contrast, we do not duplicate the rest of the PresentedGroup API (such as extensionality and induction principles) as doing so would not simplify theorems for the user.
The Braid Group
We now implement the specific case of the “infinite” braid group, hereafter simply referred to as the braid group. The set of generators is S = { σ i ∣ i ∈ N } S = \{\sigma_i \mid i \in\mathbb{N}\} S = { σ i ∣ i ∈ N } (we will say i i i is the index of the generator σ i \sigma_i σ i ). This set is represented by the natural numbers in Lean. This does require 0-indexing the generators, in contrast to Artin’s original definition. If this is bothersome, it is simple at the end of the project to write a wrapper shifting all indices up by one. Recall the braid relation:
Definition 2.5. The braid relation R B R_B R B is defined as the smallest relation satisfying the following two clauses. Let i , j ∈ N i, j \in\mathbb{N} i , j ∈ N . Then
If ∣ i − j ∣ = 1 \lvert i - j\rvert= 1 ∣ i − j ∣ = 1 , then R B ( σ i σ j σ i , σ j σ i σ j ) R_B(\sigma_i\sigma_j\sigma_i, \sigma_j\sigma_i\sigma_j) R B ( σ i σ j σ i , σ j σ i σ j ) (the braid relation, Artin-Tits of length 3)
If ∣ i − j ∣ ≥ 2 \lvert i - j\rvert\ge2 ∣ i − j ∣ ≥ 2 , then R B ( σ i σ j , σ j σ i ) R_B(\sigma_i\sigma_j, \sigma_j\sigma_i) R B ( σ i σ j , σ j σ i ) (the commutative relation, Artin-Tits of length 2)
That is, if i = j i = j i = j , the relation has length 0 (it is unneeded); if ∣ i − j ∣ = 1 \lvert i - j\rvert= 1 ∣ i − j ∣ = 1 the relation has length 3; otherwise, the relation has length 2. In Lean, we write the corresponding Artin-Tits matrix as follows, and obtain the braid group using the ArtinTits API:
def BraidMatrixInf : ArtinTitsMatrix ℕ where
M := Matrix.of fun i j : ℕ ↦
if i = j then 0 else (if i.dist j = 1 then 3 else 2)
isSymm := by
grind [Matrix.IsSymm, Matrix.transpose, Matrix.of_apply,
EmbeddingLike.apply_eq_iff_eq, Nat.dist]
off_diagonal := by aesop
def BraidGroupInf := ArtinTitsGroup BraidMatrixInf
In our mathematical writeup, we have let σ i \sigma_i σ i represent an element of the set of generators S S S , as well as an element of the free group over S S S when defining R R R . To give this as an element of the braid group, we would write ⟦ σ i ⟧ R B \llbracket\sigma_i \rrbracket_{R_B} [ [ σ i ] ] R B . In Lean, we begin with a natural number (i : ℕ) as a generator. We write FreeGroup.of i for the free group element. Finally, (PresentedGroup.of i : BraidGroupInf) will give us the braid group element. We abbreviate (PresentedGroup.of i : BraidGroupInf) by σ \sigma σ as so:
def σ (k : ℕ) : BraidGroupInf := PresentedGroup.of k
While convenient in Lean, σ i \sigma_i σ i is unfortunately nearly-overlapping notation with σ i \sigma_i σ i , though they represent quite different mathematical objects. To belabor the point, the former ( σ i ) (\sigma\ i) ( σ i ) is an element of the braid group, while the latter ( σ i ) (\sigma_i) ( σ i ) is an element of the generating set.
For the braid group, we give a specialized API. Again, the construction of the braid group as a presented group is not meant to be hidden. The custom API will make the rest of the project move more smoothly — no need to constantly unfold the definition of BraidGroupInf. For example, for the universal property, we may omit mention of BraidMatrixInf and simplify the required hypothesis to
def BraidGroupInf.IsLiftable {G : Type*} [Group G] (f : N → G) : Prop :=
(∀ i j : N, i.dist j = 1 → f i * f j * f i = f j * f i * f j) ∧
(∀ i j : N, 2 ≤ i.dist j → f i * f j = f j * f i)
Beyond specializations of the universal property, induction principles, et cetera, we moreover prove useful lemmas such as ⟦ σ i + 1 σ i σ i + 1 ⟧ = ⟦ σ i σ i + 1 σ i ⟧ \llbracket\sigma_{i+1}\sigma_i\sigma_{i+1}\rrbracket= \llbracket\sigma_i\sigma_{i+1}\sigma_i\rrbracket [ [ σ i + 1 σ i σ i + 1 ] ] = [ [ σ i σ i + 1 σ i ] ] . In Lean, this is written as follows:
theorem BraidGroupInf.braid {i : N} :
σ i * σ (i+1) * σ i = σ (i+1) * σ i * σ (i+1)
Such lemmas are mathematically immediate, but in Lean require careful traversal of the structures at play (quotient groups, congruences, setoids, etc.).
Presented Monoids
We next consider a structure akin to presented groups, but lacking inverses: presented monoids. These may be defined as a free monoid quotiented by the congruence generated by a given relation. That is the implementation chosen here, as we are able to build upon the Congruence structure which already is in Mathlib as well as the rich API surrounding quotients.
Definition 2.6 (Presented Monoid). We let ⟨ S ∣ R ⟩ + \langle S \mid R\rangle^{+} ⟨ S ∣ R ⟩ + denote the presented monoid on a set S S S and relation R R R . We implement this by generating the free monoid on S S S , then quotienting by the congruence generated on R R R (the reflexive, symmetric, transitive, multiplicative closure of R R R ). Given x ∈ S ∗ x \in S^{*} x ∈ S ∗ , we write the equivalence class of x x x as ⟦ x ⟧ R + \llbracket x\rrbracket_{R}^{+} [ [ x ] ] R + . We drop the subscript R R R when it can be inferred from context. Given x , y ∈ S ∗ x,y \in S^{*} x , y ∈ S ∗ , we say x ≡ R y x \mathrel{\equiv_{R}} y x ≡ R y if they are equivalent under the congruence generated by R R R , once again dropping the subscript when possible.
In Lean, we first must give a formal definition of S S S -strings. We can select from lists, free monoids, strings, etc. However, Congruence must be applied to a type endowed with a Mul structure. FreeMonoid is the only type in Mathlib that has been given a Mul structure. So, we represent the S S S -strings by FreeMonoid instead of List.
Then, given a set of relations rels over a type α \alpha α , PresentedMonoid constructs the monoid with generators x : α and relations rels as a quotient of a congruence relation over rels. Here conGen generates a congruence.
def PresentedMonoid (rels : FreeMonoid α → FreeMonoid α → Prop) := (conGen
rels).Quotient
We provide basic properties of the presented monoid, such as extensionality, the universal property, and lifts of a function f f f from S ∗ S^{*} S ∗ to ⟨ S ∣ R ⟩ + \langle S \mid R\rangle^{+} ⟨ S ∣ R ⟩ + using various formulations of the required conditions on f f f (respecting the congruence on R R R ).
Presented monoids are also called abstract rewriting systems, string rewriting systems, and Thue systems. They model the idea of rewriting parts of a string according to a given symmetric relation. (Such derivations will be discussed more fully in the following section, so the following definition is not yet linked to Lean code).
Definition 2.7. [ R -derivation ] [R\text{-derivation}] [ R -derivation ] Given a set S S S and a binary relation R R R on S ∗ S^{*} S ∗ , an R R R -derivation is a finite list of S S S -strings R 0 , R 1 , … , R n R_0, R_1, \ldots, R_n R 0 , R 1 , … , R n such that for every k k k , 0 ≤ k < n 0 \leq k < n 0 ≤ k < n , there exist ( x , y ) ∈ R (x,y) \in R ( x , y ) ∈ R such that R k = a x b R_k = axb R k = a x b and R k + 1 = a y b R_{k+1} = ayb R k + 1 = a y b .
Theorem 2.8. For any symmetric relation R R R , there exists an R R R -derivation linking R 0 R_0 R 0 to R n R_n R n if and only if they are equivalent in the corresponding presented monoid: [ [ R 0 ] ] R = [ [ R n ] ] R [\![R_0]\!]_R = [\![R_n]\!]_R [ [ R 0 ] ] R = [ [ R n ] ] R .
A presented monoid is thus a symmetric rewriting system under another name. We give a robust API for a user looking to prove two words are equivalent in a presented monoid, with over a dozen lemmas. For example, we show:
Lemma 2.9. For x , y , z , w ∈ S ∗ x,y,z,w \in S^* x , y , z , w ∈ S ∗ , if ( x , y ) ∈ R (x,y) \in R ( x , y ) ∈ R and z ≡ R + w z \equiv_R^+ w z ≡ R + w , then x z ≡ R + y w xz \equiv_R^+ yw x z ≡ R + y w .
Beyond inspiration for future use cases, theorem 2.8 gives us an alternate induction principle for presented monoids:
Theorem 2.10. Consider a , b ∈ S ∗ a,b \in S^* a , b ∈ S ∗ such that a ≡ R + b a \equiv_R^+ b a ≡ R + b . Let P P P be a property on pairs of elements of S ∗ S^* S ∗ . P ( a , b ) P(a,b) P ( a , b ) holds if the following conditions are met:
(reflexivity ) P ( a , a ) P(a,a) P ( a , a ) holds for all a ∈ S ∗ a \in S^* a ∈ S ∗ .
(one-step reduction ) If ( x , y ) ∈ R (x,y) \in R ( x , y ) ∈ R , then for any c , d ∈ S ∗ c,d \in S^* c , d ∈ S ∗ , P ( c x d , c y d ) P(cxd,cyd) P ( c x d , cy d ) .
(symmetric one-step reduction ) If ( x , y ) ∈ R (x,y) \in R ( x , y ) ∈ R , then for any c , d ∈ S ∗ c,d \in S^* c , d ∈ S ∗ , P ( c y d , c x d ) P(cyd,cxd) P ( cy d , c x d ) .
(transitivity ) For all a , b , c ∈ S ∗ a,b,c \in S^* a , b , c ∈ S ∗ , if P ( a , b ) P(a,b) P ( a , b ) and P ( b , c ) P(b,c) P ( b , c ) , then P ( a , c ) P(a,c) P ( a , c ) .
Semi-Thue Systems
We return to the definition of R R R -derivations in Definition 2.7, now discussing their implementation in Lean. We could give a definition almost exactly mirroring Definition 2.7, for example requiring there exist some natural number n n n and a list of n + 1 n+1 n + 1 A A A -strings, with the property that each consecutive pair of A A A -strings in the list is an instance of a one-step reduction. However, it is much cleaner to give an inductive definition. We begin by defining the → R \underset{R}{\to} R → notation for the one-step reduction operator:
Definition 2.11. Consider a set A A A and a binary relation R R R on A A A -strings. For all A A A -strings c c c and d d d , if R ( a , b ) R(a,b) R ( a , b ) holds, then we have c a d → R c b d cad \underset{R}{\to} cbd c a d R → c b d .
Next, we take its reflexive, transitive closure.
Definition 2.12. Consider a set A A A and a binary relation R R R on A A A -strings. Then → ∗ R \underset{R}{\xrightarrow{*}} R ∗ is the smallest relation satisfying:
reflexivity : For all a ∈ A ∗ a \in A^* a ∈ A ∗ , a → ∗ R a a \underset{R}{\xrightarrow{*}} a a R ∗ a
closure : For all a , b ∈ A ∗ a,b \in A^* a , b ∈ A ∗ , a → R b a \underset{R}{\to} b a R → b implies a → ∗ R b a \underset{R}{\xrightarrow{*}} b a R ∗ b
transitivity : For all a , b , c ∈ A ∗ a,b,c \in A^* a , b , c ∈ A ∗ , if a → ∗ R b a \underset{R}{\xrightarrow{*}} b a R ∗ b and b → ∗ R c b \underset{R}{\xrightarrow{*}} c b R ∗ c , then a → ∗ R c a \underset{R}{\xrightarrow{*}} c a R ∗ c
This relation is used in the traditional definition of a Semi-Thue system.
Definition 2.13. A Semi-Thue system consists of a tuple ( A , R ) (A,R) ( A , R ) (where A A A is a set and R R R a binary relation over A A A -strings) along with the relation → ∗ R \underset{R}{\xrightarrow{*}} R ∗ .
In Lean, we call this SemiThue. For this project, it is convenient to provide a second definition of Semi-Thue systems. First, we define a new relation → R \underset{R}{\to} R → :
Definition 2.14. Given a set A A A and a binary relation R R R over A A A -strings, let → R \xrightarrow{R} R be the smallest relation satisfying the below two properties:
reflexivity : For all a ∈ A ∗ a \in A^* a ∈ A ∗ , a → R a a \xrightarrow{R} a a R a
one-step transitivity : For all a , b 1 , x , b 2 , y ∈ A ∗ a,b_1,x,b_2,y \in A^* a , b 1 , x , b 2 , y ∈ A ∗ , if a → R b 1 x b 2 a \xrightarrow{R} b_1xb_2 a R b 1 x b 2 and x R y xRy x R y , then a → R b 1 y b 2 a \xrightarrow{R} b_1yb_2 a R b 1 y b 2
Note that the second condition is equivalent to the following, which makes the pen-and-paper notation for recording derivations cleaner:
alternative one-step transitivity : For all a , b 1 , x , b 2 , y ∈ A ∗ a,b_1,x,b_2,y \in A^* a , b 1 , x , b 2 , y ∈ A ∗ , if a → R b 1 x b 2 a \xrightarrow{R} b_1xb_2 a R b 1 x b 2 and b 1 x b 2 → R b 1 y b 2 b_1xb_2 \xrightarrow{R} b_1yb_2 b 1 x b 2 R b 1 y b 2 , then a → R b 1 y b 2 a \xrightarrow{R} b_1yb_2 a R b 1 y b 2
Whichever formulation of one-step transitivity we make, we note the initial word is always preserved throughout an → R \xrightarrow{R} R –derivation. This is the main difference between our two definitions. Their behavior otherwise is nearly identical :
Theorem 2.15. For all a , b ∈ A ∗ a,b \in A^* a , b ∈ A ∗ , a → R b a \xrightarrow{R} b a R b iff a → R ∗ b a \xrightarrow{R^*} b a R ∗ b .
Theorem 2.15 allows us to replace → R ∗ \xrightarrow{R^*} R ∗ with → R \xrightarrow{R} R in the definition of Semi-Thue systems, to obtain a variant which we call SemiThueDerivation in Lean.
The definition for both → R ∗ \xrightarrow{R^*} R ∗ and → R \xrightarrow{R} R is straightforward in Lean (for the latter, using the original one-step transitivity condition). As to the choice of type for A A A -strings, we make a different decision than that for presented monoids. Here, we use lists, called List in Lean. The focus for Semi-Thue systems is on rewriting, which has a more computational flair. The API surrounding lists, with computationally-minded functions such as getLast, is far easier to use. The downside is that any work discussing both presented monoids and Semi-Thue systems requires repeated conversions between lists and free monoids. The occasional hassle of dealing with FreeMonoid.toList and List.toFreeMonoid is outweighed by the convenience of using List for Semi-Thue systems.
The “Braid” Monoid
With both presented monoids and Semi-Thue derivations in place, we can now specialize these general constructions to the braid generators and relations. At this point, we have referenced a proof that the braid group aligns with the topological definition of braids. Although it is tempting to think of a monoid in which the braid relations hold as a “braid monoid” (perhaps braids with only overcrossings), until we can connect such a monoid to the braid group mathematically, we have no geometric interpretation of the monoid. It is, for the moment, an arbitrarily defined mathematical structure with no connection to the braid group.
Definition 2.16. The “infinite” braid monoid B + B^+ B + , from now on simply referred to as the braid monoid, is given by the following presentation:
B + : = ⟨ σ 0 , σ 1 , σ 2 , … | σ i σ j = σ j σ i for ∣ i − j ∣ ≥ 2 , σ i σ j σ i = σ j σ i σ j for ∣ i − j ∣ = 1 ⟩ + B^+ := \left\langle\sigma_0,\sigma_1,\sigma_2,\ldots\ \middle| \ \begin{aligned} \sigma_i\sigma_j &= \sigma_j\sigma_i && \text{for } |i-j| \ge2, \\ \sigma_i\sigma_j\sigma_i &= \sigma_j\sigma_i\sigma_j && \text{for } |i-j| = 1 \end{aligned} \right\rangle^+ B + := ⟨ σ 0 , σ 1 , σ 2 , … σ i σ j σ i σ j σ i = σ j σ i = σ j σ i σ j for ∣ i − j ∣ ≥ 2 , for ∣ i − j ∣ = 1 ⟩ +
Definition 2.17. The set of braid monoid words is
B W + : = ( ⋃ i ∈ N σ i ) ∗ BW^+ := \left(\bigcup_{i \in\mathbb{N}} \sigma_i\right)^* B W + := ( i ∈ N ⋃ σ i ) ∗
We denote the relation used in the definition of the braid monoid as R B + R_{B^+} R B + .
The absolute-value condition in the relations leads to a doubling of cases in many proofs. Our Lean implementation of the braid monoids is direct; we do not generalize to some sort of “Artin-Tits monoid”, and thus there is no requirement for the relation to be symmetric. To simplify future proofs, we define a different relation for our formalization.
Definition 2.18. The simplified relation R B + s R^{s}_{B^{+}} R B + s is defined as follows:
R B + s : = { σ i σ j = σ j σ i for j − i ≥ 2 , σ i σ i + 1 σ i = σ i + 1 σ i σ i + 1 for j − i = 1 R^{s}_{B^{+}} := \begin{cases}
\sigma_i\sigma_j = \sigma_j\sigma_i & \text{for } j-i \ge2,\\
\sigma_i\sigma_{i+1}\sigma_i = \sigma_{i+1}\sigma_i\sigma_{i+1} & \text{for } j-i = 1
\end{cases} R B + s := { σ i σ j = σ j σ i σ i σ i + 1 σ i = σ i + 1 σ i σ i + 1 for j − i ≥ 2 , for j − i = 1
Fact 2.19. ⟨ σ 0 , σ 1 , σ 2 , … ∣ R B + s ⟩ = B + \langle\sigma_0,\sigma_1,\sigma_2,\ldots\mid R^{s}_{B^{+}}\rangle= B^{+} ⟨ σ 0 , σ 1 , σ 2 , … ∣ R B + s ⟩ = B + . We have the analogous property for R B n + s R^{s}_{B_n^{+}} R B n + s and B n + B_n^{+} B n + .
Proof. (Sketch) Presented monoids are generated by taking the congruence over the given relation (hence the symmetric closure), and R B + R_{B^{+}} R B + is the symmetric closure of R B + s R^{s}_{B^{+}} R B + s .
For our Lean definition of the relations for B + B^{+} B + , note that in the second case j = i + 1 j=i+1 j = i + 1 . We thus define the relation for the braid monoid as follows:
inductive braid_monoid_rels_inf : FreeMonoid N → FreeMonoid N → Prop
| adjacent (i : N): braid_monoid_rels_inf (of i * of (i+1) * of i) (of (i+1) *
of i * of (i+1))
| separated (i j : N) (h : i + 2 ≤ j) : braid_monoid_rels_inf (of i * of j)
(of j * of i)
This can be plugged in to our previously-defined PresentedMonoid definition, neatly giving us the braid monoid.
We next define a few properties of braid monoid elements.
Definition 2.20. The length of a braid monoid element b b b is written ∣ b ∣ |b| ∣ b ∣ . We define ∣ [ a ] ∣ |\![a]\!| ∣ [ a ] ∣ as the length of a a a (number of letters; the empty word ε \varepsilon ε has length 0). This is well-defined, as a quick inspection of the relations shows length is preserved under the braid monoid equivalence.
Definition 2.21. The set of generators of a braid monoid element is given by the function gen \operatorname{gen} gen . gen ( [ [ a ] ] ) \operatorname{gen}([\![a]\!]) gen ([ [ a ] ]) is defined as the set of generators appearing in a a a . This is similarly well-defined.
Definition 2.22. The index of a braid monoid word b b b is the index of the largest generator occurring in b b b . We denote this idx \operatorname{idx} idx , defining idx ( b ) : = max { i ∣ σ i ∈ gen ( b ) } \operatorname{idx}(b) := \max\{i \mid\sigma_i \in\operatorname{gen}(b)\} idx ( b ) := max { i ∣ σ i ∈ gen ( b )} .
Lemma 2.23. The reversing function on free monoid words, r r r , reverses the order of the letters in a free monoid word. a ≡ + b a \equiv^{+} b a ≡ + b if and only if r ( a ) ≡ + r ( b ) r(a) \equiv^{+} r(b) r ( a ) ≡ + r ( b ) . This is proved in each direction by structural induction on the equivalence. It is a useful tool to derive left common multiples and right cancellativity from right common multiples and left cancellativity respectively (or vice versa).
We will thus need to define length, set of symbols in, and reversing for free monoid elements. Let us return for a moment to the choice made earlier about the type for S S S -strings. We were forced to select free monoids instead of lists. We now see one downside to this choice : List is much richer than FreeMonoid. List already has functions length, toFinset, reverse, etc. Although it is simple to implement these for FreeMonoid, we must tread carefully. While free monoids are in fact defined as lists in Lean, they are meant to perform different roles. Free monoids generally bend more to mathematical theorems in abstract algebra, whereas lists are more used for computation. Even when the two share similarly-minded functionality, it is from a different viewpoint and with different implementation details. For example, if the idea is to apply a function to every element of our string and then combine them, we have FreeMonoid.lift but List.foldr. It is a balancing act to keep the two structures distinct, but also usable. Each has lemmas the other lacks.
We have decided to add definitions and lemmas to FreeMonoid if they will be able to be defined on the eventual presented monoid, the braid monoid. Such definitions seem reasonably “algebraic” since they can be defined for even more complex algebraic structures. Thus, we add in FreeMonoid.length, FreeMonoid.reverse, and FreeMonoid.symbols (the set of generators appearing in an element), because these play nicely with the braid monoid structure.
We take a different approach for List definitions that do not remain invariant in the braid structure, such as getLast (this returns the last element in a list). Equivalent braids need not have the same last generator — σ 1 σ 3 \sigma_1\sigma_3 σ 1 σ 3 and σ 3 σ 1 \sigma_3\sigma_1 σ 3 σ 1 certainly do not! In this case, we have decided to use FreeMonoid.toList when needed. This is a bit cumbersome, but thankfully quite rare for this project.
We amass simple results of equivalence classes for words:
Lemma 2.24. If σ i ≡ + a \sigma_i \equiv_+ a σ i ≡ + a , then a = σ i a = \sigma_i a = σ i . Thus, ⟦ σ i ⟧ = { σ i } \llbracket\sigma_i \rrbracket= \{\sigma_i\} [ [ σ i ] ] = { σ i }
Lemma 2.25. Let ( w , x ) ∈ R B + (w,x) \in R_{B+} ( w , x ) ∈ R B + . If w ≡ + a w \equiv_+ a w ≡ + a , then a = w a = w a = w or a = x a = x a = x . Similar reasoning for x x x shows us ⟦ w ⟧ = { w , x } = ⟦ x ⟧ \llbracket w \rrbracket= \{w,x\} = \llbracket x \rrbracket [ [ w ] ] = { w , x } = [ [ x ] ]
Proof. For the case of the commutative relation, ( σ i σ j , σ j σ i ) ∈ R B + (\sigma_i\sigma_j,\sigma_j\sigma_i) \in R_{B+} ( σ i σ j , σ j σ i ) ∈ R B + with ∣ i − j ∣ ≥ 2 \lvert i-j\rvert\ge2 ∣ i − j ∣ ≥ 2 , since we know that both length and set of generators is preserved under equivalence, our conclusion is immediate. For the case of the braid relation, ( σ i σ j σ i , σ j σ i σ j ) ∈ R B + (\sigma_i\sigma_j\sigma_i,\sigma_j\sigma_i\sigma_j) \in R_{B+} ( σ i σ j σ i , σ j σ i σ j ) ∈ R B + with ∣ i − j ∣ = 1 \lvert i-j\rvert= 1 ∣ i − j ∣ = 1 , the information about length and set of generators is not enough as those allow for, say, a = σ j σ i σ i a = \sigma_j\sigma_i\sigma_i a = σ j σ i σ i . Instead, we induct on the equivalence w ≡ + a w \equiv_+ a w ≡ + a following Theorem 2.10 .
For long elements of B W + BW^+ B W + , it is frequently difficult to prove equivalence by the rewriting conditions for presented monoids (i.e. Lemma 2.9), as parentheses need to be moved around so that Lean’s rewrite tactic, rw, can exactly pattern-match the terms. Once we move to a specific presented monoid, we have concrete relations to work with. We can associate all parentheses to the left, and then use one of the following lemmas:
Lemma 2.26. For all x ∈ B W + x \in BW^+ x ∈ B W + , if ∣ i − j ∣ > 1 \lvert i-j\rvert> 1 ∣ i − j ∣ > 1 , then
( x ⋅ ⟦ σ i ⟧ + ) ⋅ ⟦ σ j ⟧ + = ( x ⋅ ⟦ σ j ⟧ + ) ⋅ ⟦ σ i ⟧ + \left(x \cdot\llbracket\sigma_i \rrbracket^+\right) \cdot\llbracket\sigma_j \rrbracket^+ = \left(x \cdot\llbracket\sigma_j \rrbracket^+\right) \cdot\llbracket\sigma_i \rrbracket^+ ( x ⋅ [ [ σ i ] ] + ) ⋅ [ [ σ j ] ] + = ( x ⋅ [ [ σ j ] ] + ) ⋅ [ [ σ i ] ] +
Lemma 2.27. For all x ∈ B W + x \in BW^+ x ∈ B W + , if ∣ i − j ∣ = 1 \lvert i-j\rvert= 1 ∣ i − j ∣ = 1 , then
( ( x ⋅ ⟦ σ i ⟧ + ) ⋅ ⟦ σ j ⟧ + ) ⋅ ⟦ σ i ⟧ + = ( ( x ⋅ ⟦ σ j ⟧ + ) ⋅ ⟦ σ i ⟧ + ) ⋅ ⟦ σ j ⟧ + \left(\left(x \cdot\llbracket\sigma_i \rrbracket^+\right) \cdot\llbracket\sigma_j \rrbracket^+\right) \cdot\llbracket\sigma_i \rrbracket^+ = \left(\left(x \cdot\llbracket\sigma_j \rrbracket^+\right) \cdot\llbracket\sigma_i \rrbracket^+\right) \cdot\llbracket\sigma_j \rrbracket^+ ( ( x ⋅ [ [ σ i ] ] + ) ⋅ [ [ σ j ] ] + ) ⋅ [ [ σ i ] ] + = ( ( x ⋅ [ [ σ j ] ] + ) ⋅ [ [ σ i ] ] + ) ⋅ [ [ σ j ] ] +
For example, say we are trying to transform the element ⟦ σ 2 σ 7 σ 3 σ 4 σ 5 σ 4 σ 0 σ 1 ⟧ \llbracket\sigma_2\sigma_7\sigma_3\sigma_4\sigma_5\sigma_4\sigma_0\sigma_1 \rrbracket [ [ σ 2 σ 7 σ 3 σ 4 σ 5 σ 4 σ 0 σ 1 ] ] into ⟦ σ 2 σ 7 σ 5 σ 3 σ 4 σ 5 σ 0 σ 1 ⟧ \llbracket\sigma_2\sigma_7\sigma_5\sigma_3\sigma_4\sigma_5\sigma_0\sigma_1 \rrbracket [ [ σ 2 σ 7 σ 5 σ 3 σ 4 σ 5 σ 0 σ 1 ] ] . First, we separate all of the generators: ⟦ σ 2 ⟧ ⋅ ⟦ σ 7 ⟧ ⋅ ⟦ σ 3 ⟧ ⋅ ⟦ σ 4 ⟧ ⋅ ⟦ σ 5 ⟧ ⋅ ⟦ σ 4 ⟧ ⋅ ⟦ σ 0 ⟧ ⋅ ⟦ σ 1 ⟧ \llbracket\sigma_2 \rrbracket\cdot\llbracket\sigma_7 \rrbracket\cdot\llbracket\sigma_3 \rrbracket\cdot\llbracket\sigma_4 \rrbracket\cdot\llbracket\sigma_5 \rrbracket\cdot\llbracket\sigma_4 \rrbracket\cdot\llbracket\sigma_0 \rrbracket\cdot\llbracket\sigma_1 \rrbracket [ [ σ 2 ] ] ⋅ [ [ σ 7 ] ] ⋅ [ [ σ 3 ] ] ⋅ [ [ σ 4 ] ] ⋅ [ [ σ 5 ] ] ⋅ [ [ σ 4 ] ] ⋅ [ [ σ 0 ] ] ⋅ [ [ σ 1 ] ] . Next, we associate all the parentheses to the left:
( ( ( ( ( ( ⟦ σ 2 ⟧ ⋅ ⟦ σ 7 ⟧ ) ⋅ ⟦ σ 3 ⟧ ) ⋅ ⟦ σ 4 ⟧ ) ⋅ ⟦ σ 5 ⟧ ) ⋅ ⟦ σ 4 ⟧ ) ⋅ ⟦ σ 0 ⟧ ) ⋅ ⟦ σ 1 ⟧ ((((((\llbracket\sigma_2 \rrbracket\cdot\llbracket\sigma_7 \rrbracket) \cdot\llbracket\sigma_3 \rrbracket) \cdot\llbracket\sigma_4 \rrbracket) \cdot\llbracket\sigma_5 \rrbracket) \cdot\llbracket\sigma_4 \rrbracket) \cdot\llbracket\sigma_0 \rrbracket) \cdot\llbracket\sigma_1 \rrbracket (((((( [ [ σ 2 ] ] ⋅ [ [ σ 7 ] ] ) ⋅ [ [ σ 3 ] ] ) ⋅ [ [ σ 4 ] ] ) ⋅ [ [ σ 5 ] ] ) ⋅ [ [ σ 4 ] ] ) ⋅ [ [ σ 0 ] ] ) ⋅ [ [ σ 1 ] ]
Then, Lean’s rw tactic used with lemma 2.27 will assign ( ( ⟦ σ 2 ⟧ ⋅ ⟦ σ 7 ⟧ ) ⋅ ⟦ σ 3 ⟧ ) ((\llbracket\sigma_2 \rrbracket\cdot\llbracket\sigma_7 \rrbracket) \cdot\llbracket\sigma_3 \rrbracket) (( [ [ σ 2 ] ] ⋅ [ [ σ 7 ] ] ) ⋅ [ [ σ 3 ] ] ) as x x x , and rewrite ( ( ( ( ⟦ σ 2 ⟧ ⋅ ⟦ σ 7 ⟧ ) ⋅ ⟦ σ 3 ⟧ ) ⋅ ⟦ σ 4 ⟧ ) ⋅ ⟦ σ 5 ⟧ ) ⋅ ⟦ σ 4 ⟧ ((((\llbracket\sigma_2 \rrbracket\cdot\llbracket\sigma_7 \rrbracket) \cdot\llbracket\sigma_3 \rrbracket) \cdot\llbracket\sigma_4 \rrbracket) \cdot\llbracket\sigma_5 \rrbracket) \cdot\llbracket\sigma_4 \rrbracket (((( [ [ σ 2 ] ] ⋅ [ [ σ 7 ] ] ) ⋅ [ [ σ 3 ] ] ) ⋅ [ [ σ 4 ] ] ) ⋅ [ [ σ 5 ] ] ) ⋅ [ [ σ 4 ] ] to ( ( ( ( ⟦ σ 2 ⟧ ⋅ ⟦ σ 7 ⟧ ) ⋅ ⟦ σ 3 ⟧ ) ⋅ ⟦ σ 5 ⟧ ) ⋅ ⟦ σ 4 ⟧ ) ⋅ ⟦ σ 5 ⟧ ((((\llbracket\sigma_2 \rrbracket\cdot\llbracket\sigma_7 \rrbracket) \cdot\llbracket\sigma_3 \rrbracket) \cdot\llbracket\sigma_5 \rrbracket) \cdot\llbracket\sigma_4 \rrbracket) \cdot\llbracket\sigma_5 \rrbracket (((( [ [ σ 2 ] ] ⋅ [ [ σ 7 ] ] ) ⋅ [ [ σ 3 ] ] ) ⋅ [ [ σ 5 ] ] ) ⋅ [ [ σ 4 ] ] ) ⋅ [ [ σ 5 ] ] , giving us
( ( ( ( ( ( ⟦ σ 2 ⟧ ⋅ ⟦ σ 7 ⟧ ) ⋅ ⟦ σ 3 ⟧ ) ⋅ ⟦ σ 5 ⟧ ) ⋅ ⟦ σ 4 ⟧ ) ⋅ ⟦ σ 5 ⟧ ) ⋅ ⟦ σ 0 ⟧ ) ⋅ ⟦ σ 1 ⟧ ((((((\llbracket\sigma_2 \rrbracket\cdot\llbracket\sigma_7 \rrbracket) \cdot\llbracket\sigma_3 \rrbracket) \cdot\llbracket\sigma_5 \rrbracket) \cdot\llbracket\sigma_4 \rrbracket) \cdot\llbracket\sigma_5 \rrbracket) \cdot\llbracket\sigma_0 \rrbracket) \cdot\llbracket\sigma_1 \rrbracket (((((( [ [ σ 2 ] ] ⋅ [ [ σ 7 ] ] ) ⋅ [ [ σ 3 ] ] ) ⋅ [ [ σ 5 ] ] ) ⋅ [ [ σ 4 ] ] ) ⋅ [ [ σ 5 ] ] ) ⋅ [ [ σ 0 ] ] ) ⋅ [ [ σ 1 ] ]
We then use rw with lemma 2.26, explicitly setting x x x as ( ⟦ σ 2 ⟧ ⋅ ⟦ σ 7 ⟧ ) (\llbracket\sigma_2 \rrbracket\cdot\llbracket\sigma_7 \rrbracket) ( [ [ σ 2 ] ] ⋅ [ [ σ 7 ] ] ) to obtain
( ( ( ( ( ( ⟦ σ 2 ⟧ ⋅ ⟦ σ 7 ⟧ ) ⋅ ⟦ σ 5 ⟧ ) ⋅ ⟦ σ 3 ⟧ ) ⋅ ⟦ σ 4 ⟧ ) ⋅ ⟦ σ 5 ⟧ ) ⋅ ⟦ σ 0 ⟧ ) ⋅ ⟦ σ 1 ⟧ ((((((\llbracket\sigma_2 \rrbracket\cdot\llbracket\sigma_7 \rrbracket) \cdot\llbracket\sigma_5 \rrbracket) \cdot\llbracket\sigma_3 \rrbracket) \cdot\llbracket\sigma_4 \rrbracket) \cdot\llbracket\sigma_5 \rrbracket) \cdot\llbracket\sigma_0 \rrbracket) \cdot\llbracket\sigma_1 \rrbracket (((((( [ [ σ 2 ] ] ⋅ [ [ σ 7 ] ] ) ⋅ [ [ σ 5 ] ] ) ⋅ [ [ σ 3 ] ] ) ⋅ [ [ σ 4 ] ] ) ⋅ [ [ σ 5 ] ] ) ⋅ [ [ σ 0 ] ] ) ⋅ [ [ σ 1 ] ]
which can be simplified to ⟦ σ 2 σ 7 σ 5 σ 3 σ 4 σ 5 σ 0 σ 1 ⟧ \llbracket\sigma_2\sigma_7\sigma_5\sigma_3\sigma_4\sigma_5\sigma_0\sigma_1 \rrbracket [ [ σ 2 σ 7 σ 5 σ 3 σ 4 σ 5 σ 0 σ 1 ] ] , as desired. The once-off hassle of separating generators and associating parentheses to the left makes multi-step calculations significantly simpler, without requiring tedious, targeted applications of associativity of multiplication.
Finite Braid Groups and Finite Braid Monoids
Above, we have discussed only infinite braid groups and infinite braid monoids and the equivalences on them, ≡ \equiv ≡ and ≡ + \equiv^{+} ≡ + . We may also consider the finite braid groups/monoids. Note that a braid on n n n strands has n − 1 n-1 n − 1 generators. Those generators are numbered σ 0 , σ 1 , … σ n − 2 \sigma_0,\sigma_1,\ldots\sigma_{n-2} σ 0 , σ 1 , … σ n − 2 .
Definition 2.28. The finite braid group B n B_n B n , representing braids on n n n strands, is given by
B n : = ⟨ σ 0 , … , σ n − 2 | σ i σ j = σ j σ i for ∣ i − j ∣ ≥ 2 , σ i σ j σ i = σ j σ i σ j for ∣ i − j ∣ = 1 ⟩ B_n := \left\langle\sigma_0,\ldots,\sigma_{n-2}\ \middle|\ \begin{aligned} \sigma_i\sigma_j&=\sigma_j\sigma_i &&\text{for } |i-j|\ge2,\\ \sigma_i\sigma_j\sigma_i&=\sigma_j\sigma_i\sigma_j &&\text{for } |i-j|=1 \end{aligned}\right\rangle B n := ⟨ σ 0 , … , σ n − 2 σ i σ j σ i σ j σ i = σ j σ i = σ j σ i σ j for ∣ i − j ∣ ≥ 2 , for ∣ i − j ∣ = 1 ⟩
We denote the defining relation (on the righthand side) as R B n R_{B_n} R B n and the equivalence on elements of B n B_n B n by ≡ n \equiv_n ≡ n .
Note that B 0 B_0 B 0 and B 1 B_1 B 1 are both the trivial group. The finite braid monoids are given using the same generators and relations as for the finite braid groups:
Definition 2.29.
B n + : = ⟨ σ 0 , … , σ n − 2 | σ i σ j = σ j σ i for ∣ i − j ∣ ≥ 2 , σ i σ j σ i = σ j σ i σ j for ∣ i − j ∣ = 1 ⟩ + B_n^{+} := \left\langle\sigma_0,\ldots,\sigma_{n-2}\ \middle|\ \begin{aligned} \sigma_i\sigma_j&=\sigma_j\sigma_i &&\text{for } |i-j|\ge2,\\ \sigma_i\sigma_j\sigma_i&=\sigma_j\sigma_i\sigma_j &&\text{for } |i-j|=1 \end{aligned}\right\rangle^{+} B n + := ⟨ σ 0 , … , σ n − 2 σ i σ j σ i σ j σ i = σ j σ i = σ j σ i σ j for ∣ i − j ∣ ≥ 2 , for ∣ i − j ∣ = 1 ⟩ +
Here, the relation is denoted R B n + R_{B_n^{+}} R B n + and the equivalence, ≡ n + \equiv_n^{+} ≡ n + .
Definition 2.30. We define the set of generators in B n B_n B n (and B n + B_n^{+} B n + ) as S n = { σ i ∣ 0 ≤ i ≤ n − 2 } S_n=\{\sigma_i\mid0\le i\le n-2\} S n = { σ i ∣ 0 ≤ i ≤ n − 2 } . Then the set of finite-braid group words is B W n : = ( S n ∪ S n ‾ ) ∗ BW_n:=(S_n\cup\overline{S_n})^{*} B W n := ( S n ∪ S n ) ∗ and the set of finite-braid monoid words is B W n + : = S n ∗ BW_n^{+}:=S_n^{*} B W n + := S n ∗ .
Let us now move to the Lean implementation. For infinite braid groups and monoids, the generators are kept track of via their index, of type N \mathbb{N} N . For B n B_n B n and B n + B_n^{+} B n + , the indices of the generators are natural numbers, but bounded above by n − 1 n-1 n − 1 (in Lean, this is the predecessor of n n n , n.pred). We thus use the Fin type. It is a bundled type: an object of type Fin n.pred contains a natural number k k k and a proof that k < n − 1 k<n-1 k < n − 1 . Aside from the change in type of the indices, the implementations of the finite braid groups and braid monoids is almost exactly akin to that of their infinite counterparts. Thus, there are clear similarities between the finite and infinite braid groups (and respective monoids). When we prove properties about one, it would be nice to have some kind of “converter” to port them to the other group/monoid.
This is especially true as working with the finite braid groups/monoids is difficult in Lean. First, we are always juggling a hypothesis of the form k < n − 1 k<n-1 k < n − 1 . Moreover, natural number subtraction is truncated, which makes many arithmetic proofs long. In the case of the braid relations, where one often must prove something of the form i + 2 ≤ j i+2\le j i + 2 ≤ j , this complicates things enormously. Thus, we work within the finite braid monoid as sparingly as possible. Luckily, the relation on finite braids is a restriction on that for infinite braids.
Theorem 2.31. For braid words a , b a,b a , b , if a ≡ n b a\equiv_n b a ≡ n b , then a ≡ m b a\equiv_m b a ≡ m b for all m > n m>n m > n , and also a ≡ b a\equiv b a ≡ b . If a , b a,b a , b are braid monoid words, and if a ≡ n + b a\equiv_n^{+}b a ≡ n + b , then a ≡ m + b a\equiv_m^{+}b a ≡ m + b for all m > n m>n m > n , and also a ≡ + b a\equiv^{+}b a ≡ + b .
There is a small hiccup here: when we say a ≡ n b a\equiv_n b a ≡ n b our formalization requires a , b ∈ B n a,b\in B_n a , b ∈ B n , but when we say a ≡ k b a\equiv_k b a ≡ k b the formalization requires a , b ∈ B k a,b\in B_k a , b ∈ B k . It is quick to see that we have B W 0 ⊂ B W 1 ⊂ B W 2 … ⊂ B W BW_0\subset BW_1\subset BW_2\ldots\subset BW B W 0 ⊂ B W 1 ⊂ B W 2 … ⊂ B W , and so this poses little trouble to the paper-and-pencil mathematician. In Lean, we must cast from Fin n.pred to Fin m.pred or N \mathbb{N} N .
When can we transfer an equivalence from the infinite braid group or monoid to the corresponding finite structure? Let us begin with the monoid case.
Theorem 2.32. Consider a , b ∈ B W + a,b \in BW^{+} a , b ∈ B W + such that a ≡ + b a \equiv^{+} b a ≡ + b . Let idx ( a ) = i a \operatorname{idx}(a)=i_a idx ( a ) = i a (that is, the largest generator index occurring in the word a a a is i a i_a i a ) and idx ( b ) = i b \operatorname{idx}(b)=i_b idx ( b ) = i b . Then for any n ≥ max ( i a , i b ) n \ge\max(i_a,i_b) n ≥ max ( i a , i b ) , we have a ≡ n + b a \equiv^{+}_{n} b a ≡ n + b .
The proof proceeds by induction on the derivation a ≡ + b a \equiv^{+} b a ≡ + b . In our formalization, we must cast the infinite braid monoid element “down” to a finite braid monoid element. We call this procedure
def FreeMonoid.mapNatToFin (n : ℕ) (a : FreeMonoid ℕ) (bound : ∀ x ∈ a, x < n) :
FreeMonoid (Fin n)
The above theorems will eventually be used to apply our solver to the finite case and show that it is correct for finite braid group inputs. We leave the finite braid groups/monoids aside until the final chapter – the algorithm is built for the infinite braid group, and then proved to work for the finite group as well. We are not yet able to give a theorem analogous to Theorem 2.32 for the braid groups. In fact, as the very last step of our project, we will use the correctness specification of our solver to prove this.
In sum, we have defined the infinite and finite braid groups, as well as a number of structures needed to implement and reason about subword reversing (presented monoids and Semi-Thue systems).
Localization
We next elucidate the connection between the braid group and the “braid” monoid by constructing an embedding of B + B^{+} B + into B B B . In this chapter, we discuss Ore localization, the procedure by which this is done. We specialize it to our particular use case, first to localizing by the entire monoid, then to localizing by an entire presented monoid. We merely state the required conditions on the (presented) monoid, and leave the proofs to the following two chapters. (Note that there is no discussion of the finite braid groups/monoids).
Ore Localization
Given a monoid M M M and a submonoid M 0 M_{0} M 0 of M M M , a localization procedure produces an associated group of fractions, essentially “adding inverses” for every element of M 0 M_{0} M 0 . The usual procedure requires a commutative monoid. However, braid concatenation is not commutative.
For example, one may see that σ 1 σ 2 \sigma_{1}\sigma_{2} σ 1 σ 2 does not equal σ 2 σ 1 \sigma_{2}\sigma_{1} σ 2 σ 1 through properties of braid relations (no relations match σ 1 σ 2 \sigma_{1}\sigma_{2} σ 1 σ 2 ). Or visually, neither of these two braids may be deformed into the other:
Figure 15 (PDF p. 17).
Instead, we use the Ore localization, which requires different monoid properties. We denote the (left)11 Ore localization of M M M by M 0 M_{0} M 0 as [ M 0 − 1 ] M [M_{0}^{-1}]M [ M 0 − 1 ] M .
The following two conditions suffice for left Ore localization; we will refer to them as Ore conditions throughout this project:
Definition 3.1. We say that a monoid M M M and a submonoid M 0 M_0 M 0 of M M M satisfy the Ore conditions if the following two criteria hold:
Left Common Multiples: For any a ∈ M a \in M a ∈ M , b ∈ M 0 b \in M_0 b ∈ M 0 , there exist c ∈ M 0 c \in M_0 c ∈ M 0 and d ∈ M d \in M d ∈ M such that c a = d b ca=db c a = d b .
Right Cancellativity: For a , b ∈ M a,b \in M a , b ∈ M and c ∈ M 0 c \in M_0 c ∈ M 0 , if a c = b c ac=bc a c = b c , then a = b a=b a = b .
The second condition can be slightly weakened.12 Ore localization with a weakened cancellativity condition has already been implemented in Lean by Jakob von Raumer, with assistance from Kevin Klinge and Andrew Yang.13 It is found under ring theory; the file first gives the case of a monoid. We will specialize this code to the case of localizing by the entire monoid, and then to presented monoids. We briefly summarize the mathematics from the formalization of von Raumer.
We begin with a monoid M M M and a submonoid M 0 ⊆ M M_0 \subseteq M M 0 ⊆ M satisfying the Ore conditions. We consider all pairs of the form ( x , y ) (x,y) ( x , y ) with x ∈ M x \in M x ∈ M and y ∈ M 0 y \in M_0 y ∈ M 0 . We give the following equivalence relation on pairs:
Definition 3.2 (∼ \sim ∼ ). We say ( x 1 , y 1 ) ∼ ( x 2 , y 2 ) (x_1,y_1) \sim(x_2,y_2) ( x 1 , y 1 ) ∼ ( x 2 , y 2 ) iff there exist a ∈ M a \in M a ∈ M , b ∈ M 0 b \in M_0 b ∈ M 0 such that a x 1 = b x 2 ax_1=bx_2 a x 1 = b x 2 and a y 1 = b y 2 ay_1=by_2 a y 1 = b y 2 .
Theorem 3.3. ∼ \sim ∼ is an equivalence relations on pairs ( x , y ) (x,y) ( x , y ) .
The proofs of the theorem follows directly from the definition of ∼ \sim ∼ . Next, we consider equivalence classes of pairs under ∼ \sim ∼ . These equivalence classes will be the elements of the localization. We use the abbreviation x y \frac{x}{y} y x the equivalence class of ( x , y ) (x,y) ( x , y ) under ∼ \sim ∼ .
Definition 3.4. Given a monoid M M M and a submonoid M 0 M_0 M 0 of M M M satisfying the Ore conditions, we define the monoid [ M 0 − 1 ] M [M_0^{-1}]M [ M 0 − 1 ] M as the set { x y ∣ x ∈ M , y ∈ M 0 } \left\{\frac{x}{y} \mid x \in M, y \in M_0\right\} { y x ∣ x ∈ M , y ∈ M 0 } , with 1 M 1 M 0 \frac{1_M}{1_{M_0}} 1 M 0 1 M as the identity (note that 1 M 1_M 1 M is in fact equal to 1 M 0 1_{M_0} 1 M 0 ) and a binary operation ∙ \bullet ∙ defined as follows: x y ∙ z w = a z b y \frac{x}{y} \bullet\frac{z}{w} = \frac{az}{by} y x ∙ w z = b y a z where a ∈ M a \in M a ∈ M and b ∈ M 0 b \in M_0 b ∈ M 0 are such that a w = b x aw=bx a w = b x .
The proof that the definition is independent of the choice of common multiples a a a and b b b is straightforward, as is that for associativity of the operator. We next consider a mapping from M M M into [ M 0 − 1 ] M [M_0^{-1}]M [ M 0 − 1 ] M .
Theorem 3.5. The function h h h from M M M into [ M 0 − 1 ] M [M_0^{-1}]M [ M 0 − 1 ] M , defined by h ( x ) : = x 1 h(x):=\frac{x}{1} h ( x ) := 1 x , is a homomorphism.
Proof. We have h ( x 1 x 2 ) = x 1 x 2 1 h(x_1x_2)=\frac{x_1x_2}{1} h ( x 1 x 2 ) = 1 x 1 x 2 . To calculate h ( x 1 ) ∙ h ( x 2 ) = x 1 1 ∙ x 2 1 h(x_1)\bullet h(x_2)=\frac{x_1}{1}\bullet\frac{x_2}{1} h ( x 1 ) ∙ h ( x 2 ) = 1 x 1 ∙ 1 x 2 , following definition 3.4 we look for a left common multiple of x 1 x_1 x 1 and 1 1 1 . As 1 ⋅ x 1 = x 1 ⋅ 1 1\cdot x_1=x_1\cdot1 1 ⋅ x 1 = x 1 ⋅ 1 , we may let a = x 1 a=x_1 a = x 1 and b = 1 b=1 b = 1 . Hence x 1 1 ∙ x 2 1 = x 1 ⋅ x 2 1 \frac{x_1}{1}\bullet\frac{x_2}{1}=\frac{x_1\cdot x_2}{1} 1 x 1 ∙ 1 x 2 = 1 x 1 ⋅ x 2 . Thus, h ( x 1 x 2 ) = h ( x 1 ) ∙ h ( x 2 ) h(x_1x_2)=h(x_1)\bullet h(x_2) h ( x 1 x 2 ) = h ( x 1 ) ∙ h ( x 2 ) .
We now add one more condition. Together with our original Ore conditions, these form the cancellative Ore conditions:
Left Cancellativity: For a , b ∈ M a,b \in M a , b ∈ M and c ∈ M 0 c \in M_0 c ∈ M 0 , if c a = c b ca=cb c a = c b , then a = b a=b a = b .
In the context of the cancellative Ore conditions, h h h is an embedding of M M M into [ M 0 − 1 ] M [M_0^{-1}]M [ M 0 − 1 ] M :
Theorem 3.6. Given a monoid M M M with a submonoid M 0 M_0 M 0 satisfying the cancellative Ore conditions, the function h ( x ) : = x 1 h(x) := \frac{x}{1} h ( x ) := 1 x is injective.
Proof. Assume h ( x 1 ) = h ( x 2 ) h(x_1) = h(x_2) h ( x 1 ) = h ( x 2 ) ; that is, x 1 1 = x 2 1 \frac{x_1}{1} = \frac{x_2}{1} 1 x 1 = 1 x 2 . Then ( x 1 , 1 ) ∼ ( x 2 , 1 ) (x_1, 1) \sim(x_2, 1) ( x 1 , 1 ) ∼ ( x 2 , 1 ) . There exist a ∈ M a \in M a ∈ M , b ∈ M 0 b \in M_0 b ∈ M 0 such that a x 1 = b x 2 ax_1 = bx_2 a x 1 = b x 2 and a ⋅ 1 = b ⋅ 1 a \cdot1 = b \cdot1 a ⋅ 1 = b ⋅ 1 . Hence a = b a = b a = b and so b x 1 = b x 2 bx_1 = bx_2 b x 1 = b x 2 . By left-cancellativity, x 1 = x 2 x_1 = x_2 x 1 = x 2 as desired.
We now lay the full cancellative Ore conditions aside for the moment. For this project, we first specialize to the case of localizing by the entire monoid, viewed as a submonoid of itself. Mathlib already contains the typeclass OreSet, which represents a pair of a monoid and a submonoid satisfying the (weakened) Ore conditions. Thus, we want to show that if a monoid has left common multiples and right cancellativity, then it paired with the full submonoid of itself is an instance of OreSet. To take in the hypotheses that the monoid M satisfies the left common multiple and right cancellativity criteria, we use mixins. These are typeclasses that extend a structure to add in an extra property. For example, we define
class IsCommonLeftMultipleMul (M : Type*) [Mul M] where
common_left_multiple : ∀ a b : M, ∃ c d : M, c * a = d * b
The above code is nonconstructive, as the existential quantifier merely asserts the existence of the common multiples. It does not provide them as data. This is in line with general Mathlib conventions. However, the existing Ore localization code is set up to be used constructively, because OreSet has fields for the common-multiple data. We take advantage of this design, and give both constructive and non-constructive versions for braids. The constructive version will be useful for a concurrent project, developing a widget to visualize braids in the Lean InfoView. The widget will use the data from constructive proofs to display common multiples, equivalences, canonical forms, etc. Here is the analogous constructive version of IsCommonLeftMultipleMul:
class HasCommonLeftMultipleData (M : Type*) [Mul M] where
cl1 : M → M → M
cl2 : M → M → M
cl_spec : ∀ a b : M, cl2 a b * a = cl1 a b * b
We continue our discussion in the non-data-carrying setting only. The nonconstructive version is used in the implementation of the braid word problem solver, for Ore localization is used only in the proof of correctness of the algorithm, not in its definition. As such, it need not be constructive. We thus use the following mixin hypotheses added to a monoid M M M :
variable {M : Type*} [Monoid M] [IsRightCancelMul M] [IsCommonLeftMultipleMul M]
With the above assumed, we are able to show that the full submonoid, ( ⊤ : Submonoid M ) (\top: \operatorname{Submonoid} M) ( ⊤ : Submonoid M ) , is an instance of OreSet:
noncomputable instance : OreLocalization.OreSet (⊤ : Submonoid M) where ...
The proof uses Classical.choose to noncomputably provide the witnesses that the constructive OreSet requires, and Classical.choose_spec to assert that those witnesses have the desired property of being common multiples.
We now may define the Ore localization of M M M by itself, as Lean can infer that the required Ore conditions are met from the above two lines of code:
abbrev "OreLocalizationSelf" => OreLocalization (⊤ : Submonoid M) M
Theorem 3.7. For any monoid M M M satisfying the Ore conditions, [ M − 1 ] M [M^{-1}]M [ M − 1 ] M has a group structure.
Proof. We already have shown that [ M − 1 ] M [M^{-1}]M [ M − 1 ] M has a monoid structure. All that remains is to define inverses. For any x y ∈ [ M − 1 ] M \frac{x}{y} \in[M^{-1}]M y x ∈ [ M − 1 ] M , we define ( x y ) − 1 : = y x \left(\frac{x}{y}\right)^{-1} := \frac{y}{x} ( y x ) − 1 := x y . We omit the straightforward proof that y x \frac{y}{x} x y satisfies the properties of an inverse.
Next, we consider presented monoids. We aim to plug in a presented monoid satisfying the Ore conditions to the existing Ore localization API. It is now clear why mixins are required. If we instead took in the hypotheses by defining an extension of the Monoid class satisfying the Ore hypotheses called OreMonoid, much like CancelMonoid, we would run into an issue. Both the PresentedMonoid and OreMonoid instances would carry with them a .toMonoid function. If we try to give Lean a type M with instances [PresentedMonoid M] [OreMonoid M], Lean can infer the Monoid instance on M in two different ways. This is referred to as a “bad diamond”.
Monoid
PresentedMonoid OreMonoid
M M M
Thus, we choose to use mixins to take in the hypotheses.
Theorem 3.8. Let M = ⟨ S ∣ R ⟩ + M = \langle S \mid R\rangle^{+} M = ⟨ S ∣ R ⟩ + satisfy Ore conditions. Then [ M − 1 ] M [M^{-1}]M [ M − 1 ] M is isomorphic to the presented group on those same generators and relations, ⟨ S ∣ R ⟩ \langle S \mid R\rangle ⟨ S ∣ R ⟩ .
The proof will proceed by a careful inspection of the following universal properties of the Ore localization and of presented groups; we begin by defining those universal properties. For simplicity, we let PML ( S , R ) \operatorname{PML}(S,R) PML ( S , R ) denote ( ⟨ S ∣ R ⟩ + ) − 1 ⟨ S ∣ R ⟩ + (\langle S \mid R\rangle^{+})^{-1}\langle S \mid R\rangle^{+} (⟨ S ∣ R ⟩ + ) − 1 ⟨ S ∣ R ⟩ + .
Definition 3.9 (Lift). Given a map f f f from a set S S S to a monoid M M M , we may lift f f f to a function from the free group on S S S to M M M , which we will denote f ‾ \overline{f} f . We denote the lift of f f f to a function from the free monoid on S S S as f ‾ + \overline{f}^{+} f + .
Theorem 3.10. [Universal property of the Ore localization of a presented monoid] Consider a presented monoid M = ⟨ S ∣ R ⟩ + M = \langle S \mid R\rangle^{+} M = ⟨ S ∣ R ⟩ + satisfying the Ore conditions. For any group G G G and any map f : S → G f : S \to G f : S → G respecting the relations R R R (for ( r 1 , r 2 ) ∈ R (r_{1},r_{2}) \in R ( r 1 , r 2 ) ∈ R , we have f ‾ + ( r 1 ) = f ‾ + ( r 2 ) \overline{f}^{+}(r_{1}) = \overline{f}^{+}(r_{2}) f + ( r 1 ) = f + ( r 2 ) ), there exists a unique homomorphism
f ∗ : [ M − 1 ] M → G f^{*} : [M^{-1}]M \to G f ∗ : [ M − 1 ] M → G such that, for every s ∈ S s \in S s ∈ S ,
f ∗ ( [ s ] R + 1 ) = f ( s ) . f^{*}\left(\frac{[s]_{R}^{+}}{1}\right) = f(s). f ∗ ( 1 [ s ] R + ) = f ( s ) .
Proof. This is merely a specialization of the universal property for Ore localizations, which is again a specialization of that for quotients.
Remark. Since the identity map on PML ( S , R ) \operatorname{PML}(S,R) PML ( S , R ) is a group homomorphism, the uniqueness clause of the universal property implies that any group homomorphism g : PML ( S , R ) → PML ( S , R ) g : \operatorname{PML}(S,R) \to\operatorname{PML}(S,R) g : PML ( S , R ) → PML ( S , R ) satisfying g ( [ s ] R + 1 ) = [ s ] R + 1 g\left(\frac{[s]_{R}^{+}}{1}\right) = \frac{[s]_{R}^{+}}{1} g ( 1 [ s ] R + ) = 1 [ s ] R + for all s ∈ S s \in S s ∈ S must be the identity map.
Our next task will be to define two homomorphisms between the presented group ⟨ S ∣ R ⟩ \langle S \mid R\rangle ⟨ S ∣ R ⟩ and the Ore localization of the associated presented monoid ⟨ S ∣ R ⟩ + \langle S \mid R\rangle^{+} ⟨ S ∣ R ⟩ + .
Definition 3.11. We define a homomorphism h 1 h_1 h 1 from ⟨ S ∣ R ⟩ \langle S \mid R\rangle ⟨ S ∣ R ⟩ to PML ( S , R ) \operatorname{PML}(S,R) PML ( S , R ) using the universal property for presented groups to lift the function f ( s ) = ⟦ s ⟧ R + ⟨ S , R ⟩ + : S → PML ( S , R ) f(s)=\frac{\llbracket s\rrbracket_R^+}{\langle S,R\rangle^+}:S\to\operatorname{PML}(S,R) f ( s ) = ⟨ S , R ⟩ + [ [ s ] ] R + : S → PML ( S , R ) . The function f f f is the composition of h h h from Theorem 3.5 (recall h ( s ) = s 1 h(s)=\frac{s}{1} h ( s ) = 1 s ) with ⟦ ⋅ ⟧ R + \llbracket\cdot\rrbracket_R^+ [ [ ⋅ ] ] R + (in Lean, this is PresentedMonoid.of when applied to a single generator).
We define a homomorphism h 2 h_2 h 2 from PML ( S , R ) \operatorname{PML}(S,R) PML ( S , R ) to ⟨ S ∣ R ⟩ \langle S\mid R\rangle ⟨ S ∣ R ⟩ by using the universal property for Ore localizations of presented monoids to lift the function m ↦ ⟦ m ⟧ R m\mapsto\llbracket m\rrbracket_R m ↦ [ [ m ] ] R .
Remark. Note that for any s ∈ S ∗ s\in S^* s ∈ S ∗ , h 2 ( ⟦ s ⟧ R + 1 ) = ⟦ s ⟧ R h_2\left(\frac{\llbracket s\rrbracket_R^+}{1}\right)=\llbracket s\rrbracket_R h 2 ( 1 [ [ s ] ] R + ) = [ [ s ] ] R . The proof proceeds by induction on s s s ; the case where s s s is a single generator is a consequence of theorem 3.10.
Figure 1 (PDF p. 21).
Finally, we put the pieces together to complete the proof of Theorem 3.8 . Composing h 1 h_1 h 1 with h 2 h_2 h 2 gives a homomorphism from ⟨ S ∣ R ⟩ \langle S\mid R\rangle ⟨ S ∣ R ⟩ to ⟨ S ∣ R ⟩ \langle S\mid R\rangle ⟨ S ∣ R ⟩ – but by uniqueness portion of the universal property on presented group (Theorem 2.3 ), that must be the identity! Similarly, composing h 2 h_2 h 2 with h 1 h_1 h 1 gives the identity by Theorem 3.10 . Thus, h 1 h_1 h 1 is a bijection (and h 2 h_2 h 2 is as well). Hence we have an isomorphism between PML ( S , R ) \operatorname{PML}(S,R) PML ( S , R ) and ⟨ S ∣ R ⟩ \langle S\mid R\rangle ⟨ S ∣ R ⟩ . Thus, the localization of a presented monoid is isomorphic to the presented group on those same generators/relations, as desired. □
As to the Lean implementation of the above proof, we must note that the API for presented monoids takes a relation as a function of two FreeMonoid arguments, while the API for presented groups requires the relations to be given as a set of FreeGroup elements. To translate from the former to the latter, we use the function
def free_group_set_of_function (rels : FreeMonoid α → FreeMonoid α → Prop) :
Set (FreeGroup α)
We further provide a number of lemmas about the interaction of free_group_set_of_function with lifts and the relations. For example, consider a function f f f from S S S to a group G 1 G_1 G 1 . f f f applied to any element of free_group_set_of_function rels equals one if and only if f + ( r 1 ) = f + ( r 2 ) f^+(r_1)=f^+(r_2) f + ( r 1 ) = f + ( r 2 ) for all ( r 1 , r 2 ) (r_1,r_2) ( r 1 , r 2 ) for which rels holds:
theorem free_group_set_of_function_lift_eq_one_iff {G₁ : Type} [Group G₁]
{rels : FreeMonoid α → FreeMonoid α → Prop} (f : α → G₁) :
(∀ r ∈ free_group_set_of_function rels, (FreeGroup.lift f) r = 1) ↔
(∀ r₁ r₂, rels r₁ r₂ → FreeMonoid.lift f r₁ = FreeMonoid.lift f r₂)
Such lemmas help us prove the required hypotheses for the universal properties in the definition of h 1 h_1 h 1 and h 2 h_2 h 2 . The verification that h 1 h_1 h 1 and h 2 h_2 h 2 are inverses of one another is straightforward, showing that PML ( S , R ) \operatorname{PML}(S,R) PML ( S , R ) and ⟨ S ∣ R ⟩ \langle S\mid R\rangle ⟨ S ∣ R ⟩ are isomorphic.
Returning to the mathematical development, we aim to show that for a cancellative presented monoid, equivalence in the associated presented group of positive words implies equivalence in the presented monoid of those same words. For the rest of this section, we discuss only presented monoids which satisfy the cancellative Ore conditions. (We say that the monoid M M M satisfies the (cancellative) Ore conditions if M M M considered with the full submonoid of itself satisfies the (cancellative) Ore conditions.)
Definition 3.12. We define the function ι : ⟨ S ∣ R ⟩ + → ⟨ S ∣ R ⟩ \iota: \langle S \mid R\rangle^{+} \to\langle S \mid R\rangle ι : ⟨ S ∣ R ⟩ + → ⟨ S ∣ R ⟩ by ι : = h 2 ∘ h \iota:= h_{2} \circ h ι := h 2 ∘ h , where h h h is the function from Theorem 3.5 .
Theorem 3.13. For a monoid ⟨ S ∣ R ⟩ + \langle S \mid R\rangle^{+} ⟨ S ∣ R ⟩ + satisfying the cancellative Ore conditions, ι \iota ι is an embedding of ⟨ S ∣ R ⟩ + \langle S \mid R\rangle^{+} ⟨ S ∣ R ⟩ + into ⟨ S ∣ R ⟩ \langle S \mid R\rangle ⟨ S ∣ R ⟩ .
Proof. By Theorem 3.6 , h h h is an injective homomorphism. h 2 h_{2} h 2 is as well – it is a homomorphism by its definition, and we exhibited above that h 1 h_{1} h 1 is its two-sided inverse. Composition preserves both injectivity and the property of being a homomorphism, so ι \iota ι is an embedding of ⟨ S ∣ R ⟩ + \langle S \mid R\rangle^{+} ⟨ S ∣ R ⟩ + into ⟨ S ∣ R ⟩ \langle S \mid R\rangle ⟨ S ∣ R ⟩ .
Finally, we may show that equivalence in the group implies equivalence in the monoid for positive words:
Theorem 3.14. Let ⟨ S ∣ R ⟩ \langle S \mid R\rangle ⟨ S ∣ R ⟩ be a left-cancellative monoid satisfying the Ore conditions. If a ≡ R b a \equiv_{R} b a ≡ R b for positive words a , b ∈ S ∗ a,b \in S^{*} a , b ∈ S ∗ (those containing no inverses)14 , then a ≡ R + b a \equiv_{R}^{+} b a ≡ R + b .
Proof. We know that ⟦ a ⟧ = ⟦ b ⟧ \llbracket a\rrbracket= \llbracket b\rrbracket [ [ a ] ] = [ [ b ] ] . By Remark 3.11 about h 2 h_{2} h 2 , we know that ⟦ a ⟧ = h 2 ( ⟦ a ⟧ + 1 ) \llbracket a\rrbracket= h_{2}\left(\frac{\llbracket a\rrbracket^{+}}{1}\right) [ [ a ] ] = h 2 ( 1 [ [ a ] ] + ) , and ⟦ b ⟧ = h 2 ( ⟦ b ⟧ + 1 ) \llbracket b\rrbracket= h_{2}\left(\frac{\llbracket b\rrbracket^{+}}{1}\right) [ [ b ] ] = h 2 ( 1 [ [ b ] ] + ) . Thus ⟦ a ⟧ + 1 = ⟦ b ⟧ + 1 \frac{\llbracket a\rrbracket^{+}}{1} = \frac{\llbracket b\rrbracket^{+}}{1} 1 [ [ a ] ] + = 1 [ [ b ] ] + . By definition of h h h , we have h ( ⟦ a ⟧ + ) = h ( ⟦ b ⟧ + ) h(\llbracket a\rrbracket^{+}) = h(\llbracket b\rrbracket^{+}) h ( [ [ a ] ] + ) = h ( [ [ b ] ] + ) , and so by h h h ’s injectivity, ⟦ a ⟧ + = ⟦ b ⟧ + \llbracket a\rrbracket^{+} = \llbracket b\rrbracket^{+} [ [ a ] ] + = [ [ b ] ] + . Thus a ≡ R + b a \equiv_{R}^{+} b a ≡ R + b as desired.
The next two chapters will be dedicated to showing the braid monoid satisfies the cancellative Ore conditions. Once we have done so, we will be able to embed the braid monoid (no scare quotes now!) into the braid group. Then Theorem 3.14 can be used to state that if two positive braid words are equivalent, they are also equivalent in the braid monoid.
Theorem 3.15. For positive a , b ∈ B W a,b \in BW a , b ∈ B W such that a ≡ R B b a \equiv_{R_B} b a ≡ R B b , we have a ≡ R B + + b a \equiv_{R_{B^{+}}}^{+} b a ≡ R B + + b .
That is, there exists a proof of their equivalence in which undercrossings never appear.15
Definition 3.16. We implement the (infinite) braid monoid relation R M R_M R M by the following:
inductive braid_monoid_rels_inf_one_refl_symm : FreeMonoid ℕ → FreeMonoid ℕ → Prop
| adjacent (i j : ℕ) (h : i.dist j = 1) :
braid_monoid_rels_inf_one_refl_symm (of i * of j * of i) (of j * of i * of j)
| separated (i j : ℕ) (h : i.dist j ≥ 2) :
braid_monoid_rels_inf_one_refl_symm (of i * of j) (of j * of i)
| basic : braid_monoid_rels_inf_one_refl_symm 1 1Note that the basic case could be replaced by any instance of reflexivity.
Lemma 3.17. We have our desired condition that
free_group_set_of_function (braid_monoid_rels_inf_one_refl_symm) = braidRelationInf.
The following (and final) theorem is not necessary for our project, but is a nice consequence of the above discussion:
Theorem 3.19. Let ⟨ S ∣ R ⟩ \langle S \mid R\rangle ⟨ S ∣ R ⟩ be a left-cancellative monoid satisfying the Ore conditions. Let c c c be an element of ⟨ S ∣ R ⟩ \langle S \mid R\rangle ⟨ S ∣ R ⟩ . Then for some a , b ∈ ⟨ S ∣ R ⟩ + a,b \in\langle S \mid R\rangle^{+} a , b ∈ ⟨ S ∣ R ⟩ + , c = ( ι ( b ) ) − 1 ι ( a ) c=(\iota(b))^{-1}\iota(a) c = ( ι ( b ) ) − 1 ι ( a ) .
Proof. By surjectivity of h 2 h_2 h 2 , we know that there is some x ∈ PML ( S , R ) x \in\operatorname{PML}(S,R) x ∈ PML ( S , R ) such that h 2 ( x ) = c h_2(x)=c h 2 ( x ) = c . By definition of PML, x = r s x=\frac{r}{s} x = s r for r , s ∈ ⟨ S ∣ R ⟩ + r,s \in\langle S \mid R\rangle^{+} r , s ∈ ⟨ S ∣ R ⟩ + . We claim that c = ( ι ( s ) ) − 1 ι ( r ) c=(\iota(s))^{-1}\iota(r) c = ( ι ( s ) ) − 1 ι ( r ) .
c = h 2 ( r s ) = h 2 ( 1 ⋅ r 1 ⋅ s ) = h 2 ( 1 s ⋅ r 1 ) letting a = 1 and b = 1 in definition 3.4 of ∙ = h 2 ( ( s 1 ) − 1 ⋅ r 1 ) definition of inverse in 3.7 = ( h 2 ( s 1 ) ) − 1 ⋅ h 2 ( r 1 ) h 2 is a homomorphism = ( h 2 ( h ( s ) ) ) − 1 ⋅ h 2 ( h ( r ) ) definition of h = ( ι ( s ) ) − 1 ι ( r ) definition of ι \begin{aligned}
c &= h_2\left(\frac{r}{s}\right) \\
&= h_2\left(\frac{1\cdot r}{1\cdot s}\right) \\
&= h_2\left(\frac{1}{s}\cdot\frac{r}{1}\right) && \text{letting }a=1\text{ and }b=1\text{ in definition }3.4\text{ of }\bullet\\
&= h_2\left(\left(\frac{s}{1}\right)^{-1}\cdot\frac{r}{1}\right) && \text{definition of inverse in }3.7 \\
&= \left(h_2\left(\frac{s}{1}\right)\right)^{-1}\cdot h_2\left(\frac{r}{1}\right) && h_2\text{ is a homomorphism} \\
&= \left(h_2(h(s))\right)^{-1}\cdot h_2(h(r)) && \text{definition of }h \\
&= (\iota(s))^{-1}\iota(r) && \text{definition of }\iota
\end{aligned} c = h 2 ( s r ) = h 2 ( 1 ⋅ s 1 ⋅ r ) = h 2 ( s 1 ⋅ 1 r ) = h 2 ( ( 1 s ) − 1 ⋅ 1 r ) = ( h 2 ( 1 s ) ) − 1 ⋅ h 2 ( 1 r ) = ( h 2 ( h ( s )) ) − 1 ⋅ h 2 ( h ( r )) = ( ι ( s ) ) − 1 ι ( r ) letting a = 1 and b = 1 in definition 3.4 of ∙ definition of inverse in 3.7 h 2 is a homomorphism definition of h definition of ι
Thus, specialized to braids, we see that any braid is equivalent to one in positive-negative form (that is, all overcrossings appearing before any undercrossings).
Common Multiples
In this chapter, we show the first of the two required conditions of Ore localization: common multiples. The proof for the common-multiples property follows Dehornoy exactly.16 Here we give a brief sketch – if no proof is alluded to, it is by an inductive argument.
Definition 4.1. The σ i , j \sigma_{i,j} σ i , j braid monoid word represents the i th i^{\text{th}} i th strand moving to position j j j . Given i , j ∈ N i,j \in\mathbb{N} i , j ∈ N , we define
σ i , j = { ε if i = j , σ i ⋅ σ i + 1 , j if i < j , σ i − 1 ⋅ σ i − 1 , j if i > j . \sigma_{i,j} =
\begin{cases}
\varepsilon& \text{if }i=j,\\
\sigma_i\cdot\sigma_{i+1,j} & \text{if }i<j,\\
\sigma_{i-1}\cdot\sigma_{i-1,j} & \text{if }i>j.
\end{cases} σ i , j = ⎩ ⎨ ⎧ ε σ i ⋅ σ i + 1 , j σ i − 1 ⋅ σ i − 1 , j if i = j , if i < j , if i > j .
For example, σ 6 , 2 = σ 5 σ 4 σ 3 σ 2 \sigma_{6,2}=\sigma_5\sigma_4\sigma_3\sigma_2 σ 6 , 2 = σ 5 σ 4 σ 3 σ 2 . As a physical braid,17 we see the strand in position 6 (remember, we are 0-indexing) moving to position 2:
Lemma 3.18. The presented monoids with generating relations R M R_M R M and R B + S R^S_{B+} R B + S are isomorphic.
Thus, we may return to Theorem 3.14 and safely apply it in this case.
Figure 16 (PDF p. 24).
Definition 4.2. The Δ n \Delta_n Δ n braid monoid word represents a half twist of the first n + 1 n+1 n + 1 strands in the braid. We define
Δ 0 = ε \Delta_0=\varepsilon Δ 0 = ε Δ n + 1 = σ 0 , n + 1 Δ n \Delta_{n+1}=\sigma_{0,n+1}\Delta_n Δ n + 1 = σ 0 , n + 1 Δ n For example, Δ 4 = σ 0 σ 1 σ 2 σ 3 σ 0 σ 1 σ 2 σ 0 σ 1 σ 0 \Delta_4=\sigma_0\sigma_1\sigma_2\sigma_3\sigma_0\sigma_1\sigma_2\sigma_0\sigma_1\sigma_0 Δ 4 = σ 0 σ 1 σ 2 σ 3 σ 0 σ 1 σ 2 σ 0 σ 1 σ 0 .
Figure 17 (PDF p. 24).
We next note that any generator can be completed into a delta braid of sufficiently large index:
Theorem 4.3. For n , i ∈ N n,i\in\mathbb{N} n , i ∈ N such that 0 < i < n 0<i<n 0 < i < n , there exists a value in B W + BW^+ B W + , which we will denote ∂ n ( i ) \partial_n(i) ∂ n ( i ) , such that σ i ∂ n ( i ) ≡ + Δ n \sigma_i\partial_n(i)\equiv_+\Delta_n σ i ∂ n ( i ) ≡ + Δ n .
Thus, for any k ∈ N k \in\mathbb{N} k ∈ N with k > i k > i k > i and k > j k > j k > j , Δ k \Delta_k Δ k a common multiple for σ i \sigma_i σ i and σ j \sigma_j σ j .
Definition 4.4. The flip function f n f_n f n is defined on generators of B W + BW^{+} B W + by f n ( σ i ) = σ n − 1 − i f_n(\sigma_i)=\sigma_{n-1-i} f n ( σ i ) = σ n − 1 − i (where i < n i<n i < n ). We may lift f n f_n f n to a word in B W + BW^{+} B W + (bounded by n n n ) by applying f n f_n f n to each of the word’s generators. By abuse of notation, we denote this also by f n f_n f n .
The flip function helps us move generators, and hence entire words in B W + BW^{+} B W + , past a half-twist.
Lemma 4.5. For any a ∈ B W + a \in BW^{+} a ∈ B W + strictly bounded above by n n n , a Δ n ≡ + Δ n f n ( a ) a\Delta_n \equiv^{+} \Delta_n f_n(a) a Δ n ≡ + Δ n f n ( a ) .
We will use the flip function in the witness to the following theorem:
Theorem 4.6. Let a ∈ B W + a \in BW^{+} a ∈ B W + have length at most ℓ \ell ℓ . Let the set of indices of the generators in a a a be strictly bounded above by n n n . Then there exists a word p ℓ , n ( a ) p_{\ell,n}(a) p ℓ , n ( a ) such that a p ℓ , n ( a ) ≡ + ( Δ n ) ℓ a p_{\ell,n}(a) \equiv^{+} (\Delta_n)^\ell a p ℓ , n ( a ) ≡ + ( Δ n ) ℓ .
Proof. (Sketch) Let a = σ a 1 σ a 2 … σ a ℓ − 1 σ a ℓ a=\sigma_{a_1}\sigma_{a_2}\ldots\sigma_{a_{\ell-1}}\sigma_{a_\ell} a = σ a 1 σ a 2 … σ a ℓ − 1 σ a ℓ . Define
p ℓ , n ( a ) = p ℓ , n ( σ a 1 σ a 2 … σ a ℓ − 1 σ a ℓ ) = ∂ n ( a ℓ ) f n ( ∂ n ( a ℓ − 1 ) ) ∂ n ( a ℓ − 2 ) f n ( ∂ n ( a ℓ − 3 ) ) … p_{\ell,n}(a)=p_{\ell,n}(\sigma_{a_1}\sigma_{a_2}\ldots\sigma_{a_{\ell-1}}\sigma_{a_\ell})=\partial_n(a_\ell)f_n(\partial_n(a_{\ell-1}))\partial_n(a_{\ell-2})f_n(\partial_n(a_{\ell-3}))\ldots p ℓ , n ( a ) = p ℓ , n ( σ a 1 σ a 2 … σ a ℓ − 1 σ a ℓ ) = ∂ n ( a ℓ ) f n ( ∂ n ( a ℓ − 1 )) ∂ n ( a ℓ − 2 ) f n ( ∂ n ( a ℓ − 3 )) …
18
For example, when ℓ = 3 \ell=3 ℓ = 3 ,
p 3 , n ( a ) = p 3 , n ( σ a 1 σ a 2 σ a 3 ) = ∂ n ( a 3 ) f n ( ∂ n ( a 2 ) ) ∂ n ( a 1 ) p_{3,n}(a)=p_{3,n}(\sigma_{a_1}\sigma_{a_2}\sigma_{a_3})=\partial_n(a_3)f_n(\partial_n(a_2))\partial_n(a_1) p 3 , n ( a ) = p 3 , n ( σ a 1 σ a 2 σ a 3 ) = ∂ n ( a 3 ) f n ( ∂ n ( a 2 )) ∂ n ( a 1 )
To show correctness of this particular witness, we calculate
a p 3 , n ( a ) = σ a 1 σ a 2 σ a 3 ∂ n ( a 3 ) f n ( ∂ n ( a 2 ) ) ∂ n ( a 1 ) ≡ + σ a 1 σ a 2 Δ n f n ( ∂ n ( a 2 ) ) ∂ n ( a 1 ) by Lemma 4.3 ≡ + σ a 1 σ a 2 ∂ n ( a 2 ) Δ n ∂ n ( a 1 ) by Lemma 4.5 ≡ + σ a 1 Δ n Δ n ∂ n ( a 1 ) by Lemma 4.3 = σ a 1 Δ n Δ n f n ( f n ( ∂ n ( a 1 ) ) ) f n is an involution ≡ + σ a 1 Δ i f n ( ∂ i ( a 1 ) ) Δ n by Lemma 4.5 ≡ + σ a 1 ∂ n ( a 1 ) Δ n Δ n by Lemma 4.5 ≡ + Δ n Δ n Δ n by Lemma 4.3 = ( Δ n ) 3 \begin{aligned}
a p_{3,n}(a) &= \sigma_{a_1}\sigma_{a_2}\sigma_{a_3}\partial_n(a_3)f_n(\partial_n(a_2))\partial_n(a_1) \\
&\equiv^{+} \sigma_{a_1}\sigma_{a_2}\Delta_n f_n(\partial_n(a_2))\partial_n(a_1) && \text{by Lemma 4.3} \\
&\equiv^{+} \sigma_{a_1}\sigma_{a_2}\partial_n(a_2)\Delta_n\partial_n(a_1) && \text{by Lemma 4.5} \\
&\equiv^{+} \sigma_{a_1}\Delta_n\Delta_n\partial_n(a_1) && \text{by Lemma 4.3} \\
&= \sigma_{a_1}\Delta_n\Delta_n f_n(f_n(\partial_n(a_1))) && f_n\text{ is an involution} \\
&\equiv^{+} \sigma_{a_1}\Delta_i f_n(\partial_i(a_1))\Delta_n && \text{by Lemma 4.5} \\
&\equiv^{+} \sigma_{a_1}\partial_n(a_1)\Delta_n\Delta_n && \text{by Lemma 4.5} \\
&\equiv^{+} \Delta_n\Delta_n\Delta_n && \text{by Lemma 4.3} \\
&= (\Delta_n)^3
\end{aligned} a p 3 , n ( a ) = σ a 1 σ a 2 σ a 3 ∂ n ( a 3 ) f n ( ∂ n ( a 2 )) ∂ n ( a 1 ) ≡ + σ a 1 σ a 2 Δ n f n ( ∂ n ( a 2 )) ∂ n ( a 1 ) ≡ + σ a 1 σ a 2 ∂ n ( a 2 ) Δ n ∂ n ( a 1 ) ≡ + σ a 1 Δ n Δ n ∂ n ( a 1 ) = σ a 1 Δ n Δ n f n ( f n ( ∂ n ( a 1 ))) ≡ + σ a 1 Δ i f n ( ∂ i ( a 1 )) Δ n ≡ + σ a 1 ∂ n ( a 1 ) Δ n Δ n ≡ + Δ n Δ n Δ n = ( Δ n ) 3 by Lemma 4.3 by Lemma 4.5 by Lemma 4.3 f n is an involution by Lemma 4.5 by Lemma 4.5 by Lemma 4.3
The full proof of correctness proceeds by induction on ℓ \ell ℓ .
Theorem 4.7. (Right Common Multiples) For all a a a and b b b in B W + BW^{+} B W + , there exist c c c and d d d in B W + BW^{+} B W + such that a c ≡ + b d ac \equiv^{+} bd a c ≡ + b d .
Proof. Set ℓ \ell ℓ as the maximum of the lengths of a a a and b b b . Fix some n ∈ N n \in\mathbb{N} n ∈ N strictly greater than the index of the largest generator occurring in either a a a or b b b . Then by Theorem 4.6 we have
a p ℓ , n ( a ) ≡ + ( Δ n ) ℓ ≡ + b p ℓ , n ( b ) a p_{\ell,n}(a) \equiv^{+} (\Delta_n)^\ell\equiv^{+} b p_{\ell,n}(b) a p ℓ , n ( a ) ≡ + ( Δ n ) ℓ ≡ + b p ℓ , n ( b )
so p ℓ , n ( a ) p_{\ell,n}(a) p ℓ , n ( a ) and p ℓ , n ( b ) p_{\ell,n}(b) p ℓ , n ( b ) are the desired witnesses.
While not needed for Ore localization, showing left common multiples is simple, thanks to the reversing function r r r introduced in Lemma 2.23 .
Theorem 4.8. (Left Common Multiples) For all a a a and b b b in B W + BW^{+} B W + , there exist c c c and d d d in B W + BW^{+} B W + such that c a ≡ + d b ca \mathrel{\equiv^{+}} db c a ≡ + d b .
Proof. Apply Theorem 4.7 to r ( a ) r(a) r ( a ) and r ( b ) r(b) r ( b ) to obtain c ′ c' c ′ and d ′ d' d ′ with r ( a ) ⋅ c ′ ≡ + r ( b ) ⋅ d ′ r(a)\cdot c' \mathrel{\equiv^{+}} r(b)\cdot d' r ( a ) ⋅ c ′ ≡ + r ( b ) ⋅ d ′ . Then use r ( c ′ ) r(c') r ( c ′ ) and r ( d ′ ) r(d') r ( d ′ ) as our witnesses. We aim to show that r ( c ′ ) ⋅ a ≡ + r ( d ′ ) ⋅ b r(c')\cdot a \mathrel{\equiv^{+}} r(d')\cdot b r ( c ′ ) ⋅ a ≡ + r ( d ′ ) ⋅ b . By Lemma 2.23 , it suffices to show that r ( r ( c ′ ) ⋅ a ) ≡ + r ( r ( d ′ ) ⋅ b ) r(r(c')\cdot a) \mathrel{\equiv^{+}} r(r(d')\cdot b) r ( r ( c ′ ) ⋅ a ) ≡ + r ( r ( d ′ ) ⋅ b ) . But by definition of r r r , this simplifies to r ( a ) c ′ ≡ + r ( b ) d ′ r(a)c' \mathrel{\equiv^{+}} r(b)d' r ( a ) c ′ ≡ + r ( b ) d ′ , which we have.
We have thus shown the first of two Ore conditions for the braid monoid. Cancellativity is a bit trickier; it is proved using an alternative, diagrammatic representation of equivalence in the braid monoid, called a grid. This structure will be discussed in the following chapter.
Grids
We next prove the remaining condition for Ore localization – cancellativity of the braid monoid. To do so, following Dehornoy, we model braid monoid equivalence using rectangular grid diagrams19 . Later, these grids will be given further interpretation and reused in the proofs of both correctness and termination of the subword reversing algorithm.
Definition and Basic Properties
Here is an example of a grid, with source ( σ 2 σ 1 , σ 0 σ 1 ) (\sigma_2\sigma_1,\sigma_0\sigma_1) ( σ 2 σ 1 , σ 0 σ 1 ) (seen down the left side and across the top side) and target ( σ 0 σ 1 σ 2 , σ 2 σ 1 σ 0 ) (\sigma_0\sigma_1\sigma_2,\sigma_2\sigma_1\sigma_0) ( σ 0 σ 1 σ 2 , σ 2 σ 1 σ 0 ) (seen across the bottom side and down the right side). We will see that the labels on all paths from top-left to bottom-right are equivalent in the braid monoid.
Figure 1 (PDF p. 26).
Intuitively, a grid is defined inductively as either a cell, or two grids abutted horizontally or vertically so that the relevant edges match. We give the data for a grid as a 4-tuple of braid monoid words, listing out the left, top, bottom, and right sides. We will later see that this uniquely determines the inner edges of the grid. We begin with the definition of cells:
Definition 5.1. The set of cells C C C is the smallest subset of ( B W + ) 4 (BW^{+})^{4} ( B W + ) 4 such that:
⟨ ε , ε , ε , ε ⟩ ∈ C \langle\varepsilon,\varepsilon,\varepsilon,\varepsilon\rangle\in C ⟨ ε , ε , ε , ε ⟩ ∈ C . Visually, ε \varepsilon ε -labelled edges surround an empty cell.
Figure 2 (PDF p. 26).
⟨ ε , σ i , σ i , ε ⟩ ∈ C \langle\varepsilon,\sigma_i,\sigma_i,\varepsilon\rangle\in C ⟨ ε , σ i , σ i , ε ⟩ ∈ C for any i ∈ N i \in\mathbb{N} i ∈ N . Visually,
ε → σ i ε ↓ ↓ ε → σ i ε \begin{array}{c}
\varepsilon\quad\xrightarrow{\ \sigma_i\ }\quad\varepsilon\\
\downarrow\hspace{5.1em}\downarrow\\
\varepsilon\quad\xrightarrow{\ \sigma_i\ }\quad\varepsilon
\end{array} ε σ i ε ↓ ↓ ε σ i ε
⟨ σ i , ε , ε , σ i ⟩ ∈ C \langle\sigma_i,\varepsilon,\varepsilon,\sigma_i\rangle\in C ⟨ σ i , ε , ε , σ i ⟩ ∈ C for any i ∈ N i \in\mathbb{N} i ∈ N . Visually,
σ i → ε σ i ↓ ↓ σ i → ε σ i \begin{array}{c}
\sigma_i \quad\xrightarrow{\ \varepsilon\ }\quad\sigma_i\\
\downarrow\hspace{5.1em}\downarrow\\
\sigma_i \quad\xrightarrow{\ \varepsilon\ }\quad\sigma_i
\end{array} σ i ε σ i ↓ ↓ σ i ε σ i
⟨ σ i , σ i , ε , ε ⟩ ∈ C \langle\sigma_i,\sigma_i,\varepsilon,\varepsilon\rangle\in C ⟨ σ i , σ i , ε , ε ⟩ ∈ C for any i ∈ N i \in\mathbb{N} i ∈ N . Visually,
σ i → σ i ε ↓ ↓ σ i → ε ε \begin{array}{c}
\sigma_i \quad\xrightarrow{\ \sigma_i\ }\quad\varepsilon\\
\downarrow\hspace{5.1em}\downarrow\\
\sigma_i \quad\xrightarrow{\ \varepsilon\ }\quad\varepsilon
\end{array} σ i σ i ε ↓ ↓ σ i ε ε
For i , j ∈ N i,j \in\mathbb{N} i , j ∈ N with ∣ i − j ∣ = 1 |i-j|=1 ∣ i − j ∣ = 1 , ⟨ σ j , σ i , σ i σ j , σ j σ i ⟩ ∈ C \langle\sigma_j,\sigma_i,\sigma_i\sigma_j,\sigma_j\sigma_i\rangle\in C ⟨ σ j , σ i , σ i σ j , σ j σ i ⟩ ∈ C . Visually,
σ j → σ i σ i ↓ σ j ↓ σ j σ j → σ i σ i σ j → σ j σ i \begin{array}{c}
\phantom{\sigma_j}\quad\xrightarrow{\ \sigma_i\ }\quad\phantom{\sigma_i}\\
\downarrow{\scriptstyle\sigma_j}\hspace{5.1em}\downarrow{\scriptstyle\sigma_j}\\
\phantom{\sigma_j}\quad\xrightarrow{\ \sigma_i\ }\quad\phantom{\sigma_i}\\[-0.2em]
\phantom{\sigma_j}\quad\xrightarrow{\ \sigma_j\ }\quad\phantom{\sigma_i}
\end{array} σ j σ i σ i ↓ σ j ↓ σ j σ j σ i σ i σ j σ j σ i
For i , j ∈ N i,j \in\mathbb{N} i , j ∈ N with ∣ i − j ∣ > 1 |i-j|>1 ∣ i − j ∣ > 1 , ⟨ σ j , σ i , σ i , σ j ⟩ ∈ C \langle\sigma_j,\sigma_i,\sigma_i,\sigma_j\rangle\in C ⟨ σ j , σ i , σ i , σ j ⟩ ∈ C . Visually,
σ j → σ i σ i ↓ σ i ↓ σ i σ j → σ i σ i \begin{array}{c}
\phantom{\sigma_j}\quad\xrightarrow{\ \sigma_i\ }\quad\phantom{\sigma_i}\\
\downarrow{\scriptstyle\sigma_i}\hspace{5.1em}\downarrow{\scriptstyle\sigma_i}\\
\phantom{\sigma_j}\quad\xrightarrow{\ \sigma_i\ }\quad\phantom{\sigma_i}
\end{array} σ j σ i σ i ↓ σ i ↓ σ i σ j σ i σ i
Often we simplify our diagrams combining adjacent arrows and labels. This does not change the cell or structure; it is merely notation. Thus, for the second-to-last case of the above definition, we could draw:
σ j → σ i σ j σ i ↓ σ j ↓ σ j σ i σ i σ j → σ i σ j σ i \begin{array}{c}
\phantom{\sigma_j}\quad\xrightarrow{\ \sigma_i\ }\quad\phantom{\sigma_j\sigma_i}\\
\downarrow{\scriptstyle\sigma_j}\hspace{5.1em}\downarrow{\scriptstyle\sigma_j\sigma_i}\\
\phantom{\sigma_i\sigma_j}\quad\xrightarrow{\ \sigma_i\sigma_j\ }\quad\phantom{\sigma_i}
\end{array} σ j σ i σ j σ i ↓ σ j ↓ σ j σ i σ i σ j σ i σ j σ i
Definition 5.2. The set of grids G G G is defined inductively as follows
Horizontal abutting: If ⟨ a , b , c , d ⟩ , ⟨ d , e , f , g ⟩ ∈ G \langle a,b,c,d\rangle,\langle d,e,f,g\rangle\in G ⟨ a , b , c , d ⟩ , ⟨ d , e , f , g ⟩ ∈ G , then ⟨ a , b e , c f , g ⟩ ∈ G \langle a,be,cf,g\rangle\in G ⟨ a , b e , c f , g ⟩ ∈ G .
Visually, if
b → b ↓ a ↓ d → c and e → e ↓ d ↓ g → f \begin{array}{c}
\phantom{b}\quad\xrightarrow{\ b\ }\quad\phantom{}\\
\downarrow{\scriptstyle a}\hspace{3em}\downarrow{\scriptstyle d}\\
\phantom{}\quad\xrightarrow{\ c\ }\quad\phantom{}
\end{array}
\qquad\text{and}\qquad
\begin{array}{c}
\phantom{e}\quad\xrightarrow{\ e\ }\quad\phantom{}\\
\downarrow{\scriptstyle d}\hspace{3em}\downarrow{\scriptstyle g}\\
\phantom{}\quad\xrightarrow{\ f\ }\quad\phantom{}
\end{array} b b ↓ a ↓ d c and e e ↓ d ↓ g f are grids, then so too is
b → b → e ↓ a ↓ d ↓ g → c → f \begin{array}{c}
\phantom{b}\quad\xrightarrow{\ b\ }\quad\phantom{}\quad\xrightarrow{\ e\ }\quad\phantom{}\\
\downarrow{\scriptstyle a}\hspace{3em}\downarrow{\scriptstyle d}\hspace{3em}\downarrow{\scriptstyle g}\\
\phantom{}\quad\xrightarrow{\ c\ }\quad\phantom{}\quad\xrightarrow{\ f\ }\quad\phantom{}
\end{array} b b e ↓ a ↓ d ↓ g c f Vertical abutting: If ⟨ a , b , c , d ⟩ , ⟨ e , c , f , g ⟩ ∈ G \langle a,b,c,d\rangle,\langle e,c,f,g\rangle\in G ⟨ a , b , c , d ⟩ , ⟨ e , c , f , g ⟩ ∈ G , then ⟨ a e , b , f , d g ⟩ ∈ G \langle ae,b,f,dg\rangle\in G ⟨ a e , b , f , d g ⟩ ∈ G .
Visually, if
b → b ↓ a ↓ d → c and c → c ↓ e ↓ g → f \begin{array}{c}
\phantom{b}\quad\xrightarrow{\ b\ }\quad\phantom{}\\
\downarrow{\scriptstyle a}\hspace{3em}\downarrow{\scriptstyle d}\\
\phantom{}\quad\xrightarrow{\ c\ }\quad\phantom{}
\end{array}
\qquad\text{and}\qquad
\begin{array}{c}
\phantom{c}\quad\xrightarrow{\ c\ }\quad\phantom{}\\
\downarrow{\scriptstyle e}\hspace{3em}\downarrow{\scriptstyle g}\\
\phantom{}\quad\xrightarrow{\ f\ }\quad\phantom{}
\end{array} b b ↓ a ↓ d c and c c ↓ e ↓ g f are grids, then so too is
b → b ↓ a ↓ d → c ↓ e ↓ g → f \begin{array}{c}
\phantom{b}\quad\xrightarrow{\ b\ }\quad\phantom{}\\
\downarrow{\scriptstyle a}\hspace{3em}\downarrow{\scriptstyle d}\\
\phantom{}\quad\xrightarrow{\ c\ }\quad\phantom{}\\
\downarrow{\scriptstyle e}\hspace{3em}\downarrow{\scriptstyle g}\\
\phantom{}\quad\xrightarrow{\ f\ }\quad\phantom{}
\end{array} b b ↓ a ↓ d c ↓ e ↓ g f
We may also draw a grid omitting its inner arrows, simply showing the four sides and the words labelling them. Later we will prove a uniqueness property for grids (Theorem 5.9 ), so this representation does not omit unrecoverable information. The last-drawn grid would thus be
⟶ b ↓ a e ↓ d g ⟶ f \begin{array}{c}
\underset{b}{\longrightarrow}\\[-2pt]
\downarrow^{ae}\qquad\qquad\downarrow^{dg}\\[-2pt]
\underset{f}{\longrightarrow}
\end{array} b ⟶ ↓ a e ↓ d g f ⟶
Definition 5.3. Given a grid ⟨ a , b , c , d ⟩ ∈ G \langle a,b,c,d\rangle\in G ⟨ a , b , c , d ⟩ ∈ G , its source (later also called spine) is ( a , b ) (a,b) ( a , b ) and its target is ( c , d ) (c,d) ( c , d )
For example, the above grid has source ( a e , b ) (ae,b) ( a e , b ) and target ( f , d g ) (f,dg) ( f , d g ) .
Theorem 5.4. If ⟨ a , b , c , d ⟩ ∈ G \langle a,b,c,d\rangle\in G ⟨ a , b , c , d ⟩ ∈ G , a c ≡ + b d ac \equiv^{+} bd a c ≡ + b d .
Proof. By structural induction on the grid.
Definition 5.5. Given a grid ⟨ a , b , c , d ⟩ ∈ G \langle a,b,c,d\rangle\in G ⟨ a , b , c , d ⟩ ∈ G , the length of its diagonal is the length of a c ac a c .
Remark. The length of a grid’s diagonal is also equal to ∣ b d ∣ |bd| ∣ b d ∣ , as a c ≡ + b d ac \equiv^{+} bd a c ≡ + b d by Theorem 5.4 and equivalent words have the same length by Definition 2.20.
We next amass simple properties of grids that will be helpful in proving more complex theorems. All proofs are via structural induction on the given grid.
Lemma 5.6. If ⟨ a , b , c , d ⟩ ∈ G \langle a,b,c,d\rangle\in G ⟨ a , b , c , d ⟩ ∈ G , then ⟨ b , a , d , c ⟩ ∈ G \langle b,a,d,c\rangle\in G ⟨ b , a , d , c ⟩ ∈ G .
Visually, given
⟶ b ↓ a ↓ d ⟶ c \begin{array}{c}
\underset{b}{\longrightarrow}\\[-2pt]
\downarrow^{a}\qquad\qquad\downarrow^{d}\\[-2pt]
\underset{c}{\longrightarrow}
\end{array} b ⟶ ↓ a ↓ d c ⟶
we also have
⟶ a ↓ b ↓ c ⟶ d \begin{array}{c}
\underset{a}{\longrightarrow}\\[-2pt]
\downarrow^{b}\qquad\qquad\downarrow^{c}\\[-2pt]
\underset{d}{\longrightarrow}
\end{array} a ⟶ ↓ b ↓ c d ⟶
Lemma 5.7. (Splitting) Given ⟨ a 1 a 2 , b , c , d ⟩ ∈ G \langle a_1a_2,b,c,d\rangle\in G ⟨ a 1 a 2 , b , c , d ⟩ ∈ G , there exist grids ⟨ a 1 , b , m , d 1 ⟩ \langle a_1,b,m,d_1\rangle ⟨ a 1 , b , m , d 1 ⟩ and ⟨ a 2 , m , c , d 2 ⟩ \langle a_2,m,c,d_2\rangle ⟨ a 2 , m , c , d 2 ⟩ with d = d 1 d 2 d=d_1d_2 d = d 1 d 2 .
That is,
⟶ b ↓ a 1 ↓ a 2 ↓ d ⟶ c \begin{array}{c}
\underset{b}{\longrightarrow}\\[-2pt]
\downarrow^{a_1}\\[-2pt]
\downarrow^{a_2}\qquad\qquad\downarrow^{d}\\[-2pt]
\underset{c}{\longrightarrow}
\end{array} b ⟶ ↓ a 1 ↓ a 2 ↓ d c ⟶
can be split horizontally into two subgrids as so:
⟶ b ↓ a 1 ⟶ m ↓ d 1 ↓ a 2 ↓ d 2 ⟶ c \begin{array}{ccc}
&\underset{b}{\longrightarrow}&\\[-2pt]
\downarrow^{a_1}&\underset{m}{\longrightarrow}&\downarrow^{d_1}\\[-2pt]
\downarrow^{a_2}&&\downarrow^{d_2}\\[-2pt]
&\underset{c}{\longrightarrow}&
\end{array} ↓ a 1 ↓ a 2 b ⟶ m ⟶ c ⟶ ↓ d 1 ↓ d 2
Similarly, given ⟨ a , b 1 b 2 , c , d ⟩ ∈ G \langle a,b_1b_2,c,d\rangle\in G ⟨ a , b 1 b 2 , c , d ⟩ ∈ G , there exist grids ⟨ a , b 1 , c 1 , m ⟩ \langle a,b_1,c_1,m\rangle ⟨ a , b 1 , c 1 , m ⟩ and ⟨ m , b 2 , c 2 , d ⟩ \langle m,b_2,c_2,d\rangle ⟨ m , b 2 , c 2 , d ⟩ with c = c 1 c 2 c=c_1c_2 c = c 1 c 2 .
That is,
⟶ b 1 ⟶ b 2 ↓ a ↓ d ⟶ c \begin{array}{ccc}
\underset{b_1}{\longrightarrow}&\underset{b_2}{\longrightarrow}\\[-2pt]
\downarrow^{a}&&\downarrow^{d}\\[-2pt]
\underset{c}{\longrightarrow}
\end{array} b 1 ⟶ ↓ a c ⟶ b 2 ⟶ ↓ d
can be split vertically into two subgrids so:
⟶ b 1 ⟶ b 2 ↓ a ↓ m ↓ d ⟶ c 1 ⟶ c 2 \begin{array}{ccc}
\underset{b_1}{\longrightarrow}&\underset{b_2}{\longrightarrow}\\[-2pt]
\downarrow^{a}&\downarrow^{m}&\downarrow^{d}\\[-2pt]
\underset{c_1}{\longrightarrow}&\underset{c_2}{\longrightarrow}
\end{array} b 1 ⟶ ↓ a c 1 ⟶ b 2 ⟶ ↓ m c 2 ⟶ ↓ d
Note that Lemma 5.6 allows vertical splitting to be derived from horizontal splitting.
Lemma 5.8 (Determinative Spines). For braid monoid words a , b , c , d a,b,c,d a , b , c , d and natural numbers i , j i,j i , j ,
If ⟨ ε , b , c , d ⟩ ∈ G \langle\varepsilon,b,c,d\rangle\in G ⟨ ε , b , c , d ⟩ ∈ G , then c = b c=b c = b and d = ε d=\varepsilon d = ε .
If ⟨ a , ε , c , d ⟩ ∈ G \langle a,\varepsilon,c,d\rangle\in G ⟨ a , ε , c , d ⟩ ∈ G , then c = ε c=\varepsilon c = ε and d = a d=a d = a .
If ⟨ a , a , c , d ⟩ ∈ G \langle a,a,c,d\rangle\in G ⟨ a , a , c , d ⟩ ∈ G , then c = ε c=\varepsilon c = ε and d = ε d=\varepsilon d = ε .
If ⟨ σ i , σ j , c , d ⟩ ∈ G \langle\sigma_i,\sigma_j,c,d\rangle\in G ⟨ σ i , σ j , c , d ⟩ ∈ G with ∣ i − j ∣ = 1 |i-j|=1 ∣ i − j ∣ = 1 , then c = σ j σ i c=\sigma_j\sigma_i c = σ j σ i and d = σ i σ j d=\sigma_i\sigma_j d = σ i σ j .
If ⟨ σ i , σ j , c , d ⟩ ∈ G \langle\sigma_i,\sigma_j,c,d\rangle\in G ⟨ σ i , σ j , c , d ⟩ ∈ G with ∣ i − j ∣ > 1 |i-j|>1 ∣ i − j ∣ > 1 , then c = σ j c=\sigma_j c = σ j and d = σ i d=\sigma_i d = σ i .
Theorem 5.9. (Uniqueness of sinks) Any two grids with the same source must have the same sink.
Proof. (Sketch) Consider two grids g 1 = ⟨ a , b , c , d ⟩ g_1=\langle a,b,c,d\rangle g 1 = ⟨ a , b , c , d ⟩ and g 2 = ⟨ a , b , c ′ , d ′ ⟩ g_2=\langle a,b,c',d'\rangle g 2 = ⟨ a , b , c ′ , d ′ ⟩ . We show c = c ′ c=c' c = c ′ and d = d ′ d=d' d = d ′ by induction on the g 1 g_1 g 1 . The base cases are shown by determinative spines, and the inductive cases split g 2 g_2 g 2 and apply the inductive hypothesis to the resulting pieces.
Stability
We define a property of grids called stability which will be essential to build grids from monoid equivalence, and thus to use grid properties to show cancellativity in the braid monoid.
Definition 5.10 (Stability). A grid ⟨ a , b , c , d ⟩ \langle a,b,c,d\rangle ⟨ a , b , c , d ⟩ is called stable if for all a ′ , b ′ ∈ B W + a',b' \in BW^{+} a ′ , b ′ ∈ B W + such that a ≡ + a ′ a \equiv^{+} a' a ≡ + a ′ and b ≡ + b ′ b \equiv^{+} b' b ≡ + b ′ , there exist c ′ , d ′ ∈ B W + c',d' \in BW^{+} c ′ , d ′ ∈ B W + such that we have a grid ⟨ a ′ , b ′ , c ′ , d ′ ⟩ \langle a',b',c',d'\rangle ⟨ a ′ , b ′ , c ′ , d ′ ⟩ with c ≡ + c ′ c \equiv^{+} c' c ≡ + c ′ and d ≡ + d ′ d \equiv^{+} d' d ≡ + d ′ .
The Lean proof that all grids are stable is done by a triple induction, first on the length of the grid’s diagonal. We then induct structurally on the equivalence between a a a and a ′ a' a ′ and then that of b b b and b ′ b' b ′ . Dehornoy, instead of these two structural inductions, defines a length metric on derivations witnessing equivalence and inducts on the sum of the lengths of the respective derivations associated with a ≡ a ′ a \equiv a' a ≡ a ′ and b ≡ b ′ b \equiv b' b ≡ b ′ . At this stage of our Lean proof, we have kept a very simple definition of a derivation that is Prop-valued in Lean (it carries only the fact that a derivation exists, not the data of the derivation itself) and thus cannot recurse on the derivation’s construction to calculate its length. Instead, we induct structurally, one derivation at a time. This does not increase the total number of cases significantly. We separate out a large portion of the proof into the following lemma:
Lemma 5.11. Let ( w , x ) ∈ R B + (w,x) \in R_{B}^{+} ( w , x ) ∈ R B + and k ∈ N k \in\mathbb{N} k ∈ N . All grids having source ( σ k , w ) (\sigma_k,w) ( σ k , w ) or ( σ k , x ) (\sigma_k,x) ( σ k , x ) are stable.
Proof. (sketch) We discuss the proof for ( σ k , w ) (\sigma_k,w) ( σ k , w ) ; the proof for ( σ k , x ) (\sigma_k,x) ( σ k , x ) proceeds nearly identically. Consider an arbitrary grid g = ⟨ σ k , w , c , d ⟩ g = \langle\sigma_k,w,c,d\rangle g = ⟨ σ k , w , c , d ⟩ . We proceed by casework on w w w , and then on the distances between k k k and each of the indices appearing in w w w . For example, let w w w be a commutative relation of the form σ i σ j \sigma_i\sigma_j σ i σ j with ∣ i − j ∣ ≥ 2 |i-j| \ge2 ∣ i − j ∣ ≥ 2 , with k k k such that ∣ i − k ∣ = 1 |i-k| = 1 ∣ i − k ∣ = 1 and ∣ j − k ∣ = 1 |j-k| = 1 ∣ j − k ∣ = 1 . For clarity in the following diagram, we instantiate this with i = 2 i = 2 i = 2 , j = 4 j = 4 j = 4 , k = 3 k = 3 k = 3 . We know there exists a grid g ′ = ⟨ σ 3 , σ 2 σ 3 , σ 2 σ 3 σ 4 σ 3 σ 2 , σ 3 σ 4 σ 2 σ 3 ⟩ g' = \langle\sigma_3,\sigma_2\sigma_3,\sigma_2\sigma_3\sigma_4\sigma_3\sigma_2,\sigma_3\sigma_4\sigma_2\sigma_3\rangle g ′ = ⟨ σ 3 , σ 2 σ 3 , σ 2 σ 3 σ 4 σ 3 σ 2 , σ 3 σ 4 σ 2 σ 3 ⟩ , as evidenced by the diagram below which constructs it from single cells:
Figure 18.
Thus, by uniqueness of sinks (Theorem 5.9 ) applied to g g g and g ′ g' g ′ , we must have c = σ 2 σ 3 σ 4 σ 3 σ 2 c = \sigma_2\sigma_3\sigma_4\sigma_3\sigma_2 c = σ 2 σ 3 σ 4 σ 3 σ 2 and d = σ 3 σ 4 σ 2 σ 3 d = \sigma_3\sigma_4\sigma_2\sigma_3 d = σ 3 σ 4 σ 2 σ 3 . We consider a ′ a' a ′ and b ′ b' b ′ such that σ 3 ≡ + a ′ \sigma_3 \equiv^{+} a' σ 3 ≡ + a ′ and σ 2 σ 4 ≡ + b ′ \sigma_2\sigma_4 \equiv^{+} b' σ 2 σ 4 ≡ + b ′ . By Lemma 2.24 , a ′ = σ 3 a' = \sigma_3 a ′ = σ 3 . By Lemma 2.25 , either b ′ = σ 2 σ 4 b' = \sigma_2\sigma_4 b ′ = σ 2 σ 4 or b ′ = σ 4 σ 2 b' = \sigma_4\sigma_2 b ′ = σ 4 σ 2 . In the first case, we take c ′ = c c' = c c ′ = c and d ′ = d d' = d d ′ = d . We use the original grid ⟨ σ 3 , σ 2 σ 4 , c , d ⟩ \langle\sigma_3,\sigma_2\sigma_4,c,d\rangle ⟨ σ 3 , σ 2 σ 4 , c , d ⟩ and quickly finish the proof as the required equivalences are true by reflexivity. In the second case, we take c ′ = σ 4 σ 3 σ 2 σ 3 σ 4 c' = \sigma_4\sigma_3\sigma_2\sigma_3\sigma_4 c ′ = σ 4 σ 3 σ 2 σ 3 σ 4 and d ′ = σ 3 σ 2 σ 4 σ 3 d' = \sigma_3\sigma_2\sigma_4\sigma_3 d ′ = σ 3 σ 2 σ 4 σ 3 and the following grid:
::: A quick calculation verifies
c = σ 2 σ 3 σ 4 σ 3 σ 2 ≡ + σ 2 σ 4 σ 3 σ 4 σ 2 ≡ + σ 4 σ 2 σ 3 σ 4 σ 2 ≡ + σ 4 σ 2 σ 3 σ 2 σ 4 ≡ + σ 4 σ 3 σ 2 σ 3 σ 4 = c ′ \begin{aligned}
c &= \sigma_2\sigma_3\sigma_4\sigma_3\sigma_2\\
&\equiv^{+} \sigma_2\sigma_4\sigma_3\sigma_4\sigma_2\\
&\equiv^{+} \sigma_4\sigma_2\sigma_3\sigma_4\sigma_2\\
&\equiv^{+} \sigma_4\sigma_2\sigma_3\sigma_2\sigma_4\\
&\equiv^{+} \sigma_4\sigma_3\sigma_2\sigma_3\sigma_4\\
&=c'
\end{aligned} c = σ 2 σ 3 σ 4 σ 3 σ 2 ≡ + σ 2 σ 4 σ 3 σ 4 σ 2 ≡ + σ 4 σ 2 σ 3 σ 4 σ 2 ≡ + σ 4 σ 2 σ 3 σ 2 σ 4 ≡ + σ 4 σ 3 σ 2 σ 3 σ 4 = c ′
A similar calculation verifies d ≡ + d ′ d\equiv^{+}d' d ≡ + d ′ and completes the proof.
Theorem 5.12. All grids are stable.
For the proof of stability, we present one illustrative case, drawn from the inductive case of the first induction (on diagonal length). Our inductive hypothesis says that for some l l l , we know that all grids with length strictly less than l l l are stable. We consider an arbitrary grid ⟨ a , b , c , d ⟩ \langle a,b,c,d\rangle ⟨ a , b , c , d ⟩ with diagonal length l l l .
We select the case where a ≡ + a a\equiv^{+}a a ≡ + a is true by reflexivity (so a = a ′ a=a' a = a ′ ), and where we are in the one-step reduction case of the induction on b ≡ + b ′ b\equiv^{+}b' b ≡ + b ′ . Thus, we assume that b = b 1 w b 2 b=b_1wb_2 b = b 1 w b 2 and b ′ = b 1 x b 2 b'=b_1xb_2 b ′ = b 1 x b 2 , where ( w , x ) ∈ R B + (w,x)\in R_{B+} ( w , x ) ∈ R B + . Splitting the grid vertically, we obtain
where c = c 1 e c 2 c=c_1ec_2 c = c 1 e c 2 . We then consider the case where d 1 d_1 d 1 has length at least one. We write d 1 = σ k d 2 d_1=\sigma_kd_2 d 1 = σ k d 2 , and obtain the following grid and label the subgrids as follows (using capital letters for readability):
Note that f = f 1 f 2 f=f_1f_2 f = f 1 f 2 . The length of G 3 G_3 G 3 is ∣ d 2 e ∣ |d_2e| ∣ d 2 e ∣ . Calculating, we see that we may apply the induction hypothesis to G 3 G_3 G 3 :
∣ d 2 e ∣ < ∣ σ k d 2 e ∣ ≤ ∣ b 1 σ k d 2 e c 2 ∣ = ∣ a c 1 e c 2 ∣ = ∣ a c ∣ = l |d_2e|<|\sigma_kd_2e|\leq|b_1\sigma_kd_2ec_2|=|ac_1ec_2|=|ac|=l ∣ d 2 e ∣ < ∣ σ k d 2 e ∣ ≤ ∣ b 1 σ k d 2 e c 2 ∣ = ∣ a c 1 e c 2 ∣ = ∣ a c ∣ = l
G 3 G_3 G 3 is hence stable, and a similar argument shows that G 4 G_4 G 4 is as well.20 By Lemma 5.11 , we know that G 2 G_2 G 2 is also stable.
Unfortunately, lemmas showing preservation of stability under appending are as difficult to prove as Theorem 5.12 itself, as they require inductions on equivalences. Instead, we proceed manually, calculating the required grids and equivalences for this specific case.
First, by stability of G 2 G_2 G 2 , we have G 2 ′ G_2' G 2 ′ with source ( σ k , x ) (\sigma_k,x) ( σ k , x ) and target g ′ , f 1 ′ g',f_1' g ′ , f 1 ′ where g ≡ + g ′ g \equiv_+ g' g ≡ + g ′ and f 1 ≡ + f 1 ′ f_1 \equiv_+ f_1' f 1 ≡ + f 1 ′ . By stability of G 3 G_3 G 3 , we have G 3 ′ G_3' G 3 ′ with source ( d 2 , g ′ ) (d_2,g') ( d 2 , g ′ ) and target ( e ′ , f 2 ′ ) (e',f_2') ( e ′ , f 2 ′ ) where e ≡ + e ′ e \equiv_+ e' e ≡ + e ′ and f 2 ≡ + f 2 ′ f_2 \equiv_+ f_2' f 2 ≡ + f 2 ′ . We then consider G 4 G_4 G 4 . Note that f 1 f 2 ≡ + f 1 ′ f 2 ′ f_1f_2 \equiv_+ f_1'f_2' f 1 f 2 ≡ + f 1 ′ f 2 ′ . By stability of G 4 G_4 G 4 , we have a grid G 4 ′ G_4' G 4 ′ with source ( f 1 ′ f 2 ′ , b 2 ) (f_1'f_2',b_2) ( f 1 ′ f 2 ′ , b 2 ) and target ( c 2 ′ , d ′ ) (c_2',d') ( c 2 ′ , d ′ ) with c 2 ′ ≡ + c 2 c_2' \equiv_+ c_2 c 2 ′ ≡ + c 2 and d ′ ≡ + d d' \equiv_+ d d ′ ≡ + d . We build the following grid:
→ b 1 → x → b 2 σ k ↓ G 2 ′ ↓ f 1 ′ G 1 ↓ G 4 ′ → c 1 → e ′ → c 2 ′ G 3 ′ ↓ d 2 \begin{array}{ccccc}
& \xrightarrow{\ b_1\ } & \xrightarrow{\ x\ } & \xrightarrow{\ b_2\ } & \\
\sigma_k & \downarrow& G_2' & \downarrow& f_1' \\
G_1 & & \downarrow& & G_4' \\
& \xrightarrow{\ c_1\ } & \xrightarrow{\ e'\ } & \xrightarrow{\ c_2'\ } & \\
& & G_3' & & \\
& & \downarrow& & \\
& & d_2 & & \\
\end{array} σ k G 1 b 1 ↓ c 1 x G 2 ′ ↓ e ′ G 3 ′ ↓ d 2 b 2 ↓ c 2 ′ f 1 ′ G 4 ′
We have just seen from the stability of G 4 G_4 G 4 that d ≡ + d ′ d \equiv_+ d' d ≡ + d ′ . We must show that c 1 ′ e ′ c 2 ′ ≡ + c c_1'e'c_2' \equiv_+ c c 1 ′ e ′ c 2 ′ ≡ + c . This is immediate from the facts given in the previous paragraph.
As we have seen in the above example, the proof can branch at the induction on the length and the inductions on the equivalences a ≡ + a ′ a \equiv_+ a' a ≡ + a ′ and b ≡ + b ′ b \equiv_+ b' b ≡ + b ′ , and the lemma can branch at all the combinatorial options for the distance a single generator’s index can lie in relation to the indices of elements of the braid monoid relations. Luckily, we do not have worst-case branching behavior, which would lead to a bit more than 100 cases. Our lemma has fourteen cases, and the main proof has twelve, for a total of 26. This is approximately the same as Dehornoy’s original proof.
Theorem 5.13. There exists a grid with source ( a , b ) (a,b) ( a , b ) and target ( ε , ε ) (\varepsilon,\varepsilon) ( ε , ε ) if and only if a ≡ + b a \equiv_+ b a ≡ + b .
Proof. The forward direction is immediate by Theorem 5.4 . For the backwards direction, assume that a ≡ + b a \equiv_+ b a ≡ + b . It is quick to show by induction on a a a that there is a grid ⟨ a , a , ε , ε ⟩ \langle a,a,\varepsilon,\varepsilon\rangle ⟨ a , a , ε , ε ⟩ . By Theorem 5.12 , ⟨ a , a , ε , ε ⟩ \langle a,a,\varepsilon,\varepsilon\rangle ⟨ a , a , ε , ε ⟩ is stable, so we know that there is a grid ⟨ a , b , c ′ , d ′ ⟩ \langle a,b,c',d'\rangle ⟨ a , b , c ′ , d ′ ⟩ where c ′ ≡ + ε c' \equiv_+ \varepsilon c ′ ≡ + ε and d ′ ≡ + ε d' \equiv_+ \varepsilon d ′ ≡ + ε . Hence c ′ = ε c'=\varepsilon c ′ = ε and d ′ = ε d'=\varepsilon d ′ = ε (length is preserved under braid monoid equivalence), so we have a grid ⟨ a , b , ε , ε ⟩ \langle a,b,\varepsilon,\varepsilon\rangle ⟨ a , b , ε , ε ⟩ as desired.
We are now ready to prove cancellativity.
Cancellativity
Theorem 5.14. The braid monoid is left-cancellative; that is, if c a ≡ + c b ca \equiv_+ cb c a ≡ + c b , then a ≡ + b a \equiv_+ b a ≡ + b .
Proof. Assume c a = c b ca=cb c a = c b . Then by Theorem 5.13 , there is a grid ⟨ c a , c b , ε , ε ⟩ \langle ca,cb,\varepsilon,\varepsilon\rangle ⟨ c a , c b , ε , ε ⟩ . By repeated applications of splitting and determinative spines, the grid can be written as such:
→ c → b c ↓ ε ↓ ε → ε → b a ↓ a ↓ ε → ε → ε \begin{array}{ccccc}
& \xrightarrow{\ c\ } & \xrightarrow{\ b\ } & & \\
c & \downarrow& \varepsilon& \downarrow& \varepsilon\\
& \xrightarrow{\ \varepsilon\ } & \xrightarrow{\ b\ } & & \\
a & \downarrow& a & \downarrow& \varepsilon\\
& \xrightarrow{\ \varepsilon\ } & \xrightarrow{\ \varepsilon\ } &
\end{array} c a c ↓ ε ↓ ε b ε b a ε ↓ ↓ ε ε
The lower right subgrid gives us ⟨ a , b , ε , ε ⟩ ∈ G \langle a,b,\varepsilon,\varepsilon\rangle\in G ⟨ a , b , ε , ε ⟩ ∈ G . Again by Theorem 5.13 , we know a ≡ + b a \equiv^{+} b a ≡ + b .
Theorem 5.15. The braid monoid is right-cancellative; that is, if a c ≡ + b c ac \equiv^{+} bc a c ≡ + b c , then a ≡ + b a \equiv^{+} b a ≡ + b . This is proved from left-cancellativity using a trick with the reversing function similar to that of Theorem 4.8 .
Thus, we have shown the necessary criteria to prove Theorem 3.15 , and may conclude that for positive a , b ∈ B W a,b \in BW a , b ∈ B W such that a ≡ R B b a \equiv_{R_B} b a ≡ R B b , we have a ≡ R B + b a \equiv_{R_{B^{+}}} b a ≡ R B + b .
Grid Existence
Beyond cancellativity, stability (via Theorem 5.13 ) is also used to show the existence of grids.
Theorem 5.16. For any a , b ∈ B W + a,b \in BW^{+} a , b ∈ B W + there are c , d ∈ B W + c,d \in BW^{+} c , d ∈ B W + such that there exists a grid with source ( a , b ) (a,b) ( a , b ) and target ( c , d ) (c,d) ( c , d ) .
Proof. Consider some a , b ∈ B W + a,b \in BW^{+} a , b ∈ B W + . We know there exist c 1 , d 1 c_{1},d_{1} c 1 , d 1 such that a c 1 ≡ + b d 1 ac_{1} \equiv^{+} bd_{1} a c 1 ≡ + b d 1 by Theorem 4.7 . Then by Theorem 5.13 there is a grid ⟨ a c 1 , b d 1 , ε , ε ⟩ \langle ac_{1},bd_{1},\varepsilon,\varepsilon\rangle ⟨ a c 1 , b d 1 , ε , ε ⟩ . Then by repeatedly splitting that grid, there must exist c , d , e , f ∈ B W + c,d,e,f \in BW^{+} c , d , e , f ∈ B W + and the following grid:
b d 1 a ↓ ↓ c ⟶ f ⟶ c 1 ↓ ↓ ε ε \begin{array}{ccc}
& b & d_{1} \\
a & \downarrow& \downarrow\\
c & \longrightarrow& f \longrightarrow\\
c_{1} & \downarrow& \downarrow\\
& \varepsilon& \varepsilon
\end{array} a c c 1 b ↓ ⟶ ↓ ε d 1 ↓ f ⟶ ↓ ε
The top-left grid gives us ⟨ a , b , c , d ⟩ ∈ G \langle a,b,c,d\rangle\in G ⟨ a , b , c , d ⟩ ∈ G as desired.
Grids and Rewriting
We have used grids fruitfully in the proof of the cancellativity in the braid monoid, as part of the localization procedure connecting the braid monoid to the braid group. This portion of the project is now complete.
We find continued use for grids in the next stage of the project, in which we discuss the reversing procedure, as informally discussed in the introduction. Recall the reversing relation:
Definition 6.1. The reversing relation R r e v R_{\mathrm{rev}} R rev is the smallest relation such that
For all i ∈ N i \in\mathbb{N} i ∈ N , ( σ i ‾ σ i , ε ) ∈ R r e v (\overline{\sigma_i}\sigma_i,\varepsilon) \in R_{\mathrm{rev}} ( σ i σ i , ε ) ∈ R rev
For all i , j ∈ N i,j \in\mathbb{N} i , j ∈ N such that ∣ i − j ∣ = 1 \lvert i-j\rvert=1 ∣ i − j ∣ = 1 , ( σ i ‾ σ j , σ j σ i σ j ‾ σ i ‾ ) ∈ R r e v (\overline{\sigma_i}\sigma_j,\sigma_j\sigma_i\overline{\sigma_j}\overline{\sigma_i}) \in R_{\mathrm{rev}} ( σ i σ j , σ j σ i σ j σ i ) ∈ R rev
For all i , j ∈ N i,j \in\mathbb{N} i , j ∈ N such that ∣ i − j ∣ > 1 \lvert i-j\rvert>1 ∣ i − j ∣ > 1 , ( σ i ‾ σ j , σ j σ i ‾ ) ∈ R r e v (\overline{\sigma_i}\sigma_j,\sigma_j\overline{\sigma_i}) \in R_{\mathrm{rev}} ( σ i σ j , σ j σ i ) ∈ R rev
Note that the reversing relation preserves equivalence under the braid relations – a quick induction shows the following:
Theorem 6.2. For any x , y ∈ B W x,y \in BW x , y ∈ B W , if x → ∗ R r e v y x \mathrel{\xrightarrow{*}_{R_{\mathrm{rev}}}} y x ∗ R rev y , then x ≡ y x \equiv y x ≡ y in the braid group.
We aim to connect reversing to grids in the following manner:
Theorem 6.3. There exists a grid ⟨ a , b , c , d ⟩ \langle a,b,c,d\rangle ⟨ a , b , c , d ⟩ if and only if a ‾ b → ∗ R r e v c d ‾ \overline{a}b \mathrel{\xrightarrow{*}_{R_{\mathrm{rev}}}} c\overline{d} a b ∗ R rev c d .
We will thus be able to use properties of grids (such as existence and uniqueness) to prove properties of our reversing algorithm (such as, respectively, termination and correctness). In fact it turns out that the above theorem is not quite as precise as we will need for termination. We will need to define size metrics on Semi-Thue derivations and on grids to eventually provide a natural-number (and hence well-founded) measure that strictly decreases as we progress through our algorithm. We first present our proof of the theorem in its original form, and then augment it with the size metric in the following chapter. The astute reader will note that the linked code for this section occasionally contains material regarding size (in Lean, a suffix of the form .length for derivations and grids), and certain code structure (such as Type in place of Prop). This may be safely ignored for now, and will be discussed in detail in the following chapter.
Returning to Theorem 6.3 as we have presented it here, the forward direction is nearly immediate by induction on grids:
Theorem 6.4. If there exists a grid ⟨ a , b , c , d ⟩ \langle a,b,c,d\rangle ⟨ a , b , c , d ⟩ , then a b ‾ → R r e v ∗ c d ‾ \overline{ab} \xrightarrow[R_{\mathrm{rev}}]{*} \overline{cd} ab ∗ R rev c d .
The reverse poses a much thornier problem. Patrick Dehornoy returned to the issue time and again. In one of his earliest papers, he took a different approach to showing termination for the subword reversing algorithm.
In his article “Deux propriétés des groupes de tresses ” from 1992 [12 ] , Dehornoy created an extended alphabet which grouped together letters from the original alphabet into single letters in the new alphabet. For example, he added to our S ∗ S^* S ∗ the letters A = σ 1 σ 2 A=\sigma_1\sigma_2 A = σ 1 σ 2 and B = σ 2 σ 1 B=\sigma_2\sigma_1 B = σ 2 σ 1 . This was designed so that any application of reversing did not change the length of the word in the new alphabet. Thus, we see that σ 1 σ 2 → R r e v ∗ σ 2 σ 1 σ 2 σ 1 = B A \sigma_1\sigma_2 \xrightarrow[R_{\mathrm{rev}}]{*} \sigma_2\sigma_1\sigma_2\sigma_1=BA σ 1 σ 2 ∗ R rev σ 2 σ 1 σ 2 σ 1 = B A , and so the length in the new alphabet remains 2. He carefully defines the new alphabet and shows that it is closed under applying reversing rewrites to negative-positive pairs. Thus, we have termination for reversing over the new alphabet. He then shows that this implies termination for reversing over the original alphabet.
I have not attempted to implement this proof, and so I cannot speak to its rigor. It appears to be a solid, reliable proof. Nevertheless, there is still interest in the grid-based proof, due to its clarity of exposition and connection with other mathematical structures such as van Kampen diagrams. Clearly, Dehornoy preferred the grid representation, as nearly all of his following papers on the matter (approximately 10) discuss grids instead of the extended alphabet. He had a certain freedom in experimenting with different, intuitive options for grids, knowing that he had shown termination by a different method earlier.
In his 2019 textbook, he gives the following sketch [variable names changed to match ours]:
... when a b ‾ → R r e v ∗ c d ‾ \overline{ab} \xrightarrow[R_{\mathrm{rev}}]{*} \overline{cd} ab ∗ R rev c d , consider a finite sequence of reversing steps leading from a b ‾ \overline{ab} ab to c d ‾ \overline{cd} c d .
Let Γ 0 \Gamma_0 Γ 0 be the diagram obtained by writing vertically and from top to bottom the letters of a a a and horizontally from left to right those of b b b starting from a common summit. Then following the sequence of elementary reversings starting with a b ‾ \overline{ab} ab corresponds to constructing step by step from Γ 0 \Gamma_0 Γ 0 a grid Γ \Gamma Γ with source ( a , b ) (a,b) ( a , b ) and target ( c , d ) (c,d) ( c , d ) . CITE
The sketch is compelling – one can easily envision the grid being built step-by-step. Earlier papers of Dehornoy’s which discuss reversing grids give additional ideas. In a 2011 paper [15 ] , he begins with the case of general van Kampen diagrams 21 :
Lemma 1.1 (folklore). If ( S , R ) (S,R) ( S , R ) is a semigroup presentation, then two words w w w and w ′ w' w ′ of S ∗ S^* S ∗ are R R R -equivalent if and only if there exists an ( S , R ) (S,R) ( S , R ) -van Kampen diagram for ( w , w ′ ) (w,w') ( w , w ′ ) .
Proof (sketch). If ( w 0 , … , w p ) (w_0,\ldots,w_p) ( w 0 , … , w p ) is an R R R -derivation from w w w to w ′ w' w ′ , then drawing paths labeled with the successive words w i w_i w i one below the other and identifying the unchanged letters yields a van Kampen diagram for ( w , w ′ ) (w,w') ( w , w ′ ) . Conversely, if K K K is a van Kampen diagram for ( w , w ′ ) (w,w') ( w , w ′ ) , one obtains an R R R -derivation from w w w to w ′ w' w ′ by enumerating the labels in a sequence of paths from the source of K K K to its target that differ by one face at a time.
Again, this feels intuitively justifiable, but does not suffice for a rigorous proof. In that same article (written before the textbook came out), he also gives a description of how one might extend this method to rectangular grids, using dotted lines to identify edges that would have touched in a regular van Kampen diagram (essentially, ε \varepsilon ε -labelled edges in a grid, but missing their orientation).22 The below figure is from page 7 of Dehornoy’s 2011 “The Subword Reversing Method”:
Figure 4 (PDF p. 34). Reversing diagram associated with the last diagram in Figure 3 (PDF p. 50) ; the only difference is that we insist that all edges are horizontal oriented to the right or vertical oriented to bottom. Again we are stuck as there is no relation c … = d … c\ldots=d\ldots c … = d … in the presentation.
Figure 3 (PDF p. 50).
In 2006, Dehornoy returned to the idea of the extended alphabet, and showed grids where each cell edge corresponded to a letter of the extended alphabet [18 ] . The below figure is from page 10 of Dehornoy and Wiest’s “On Word Reversing in Braid Groups”:
Figure 5 (PDF p. 34). The reversing diagram (left) and the reversing grid (right) associated with the sequence σ 1 − 1 σ 2 σ 1 − 1 σ 3 ↷ σ 2 σ 1 σ 2 − 1 σ 1 − 1 σ 3 ↷ σ 2 σ 1 σ 2 − 1 σ 3 σ 1 − 1 ↷ σ 2 σ 1 σ 2 − 1 σ 3 σ 1 − 1 \sigma_1^{-1}\sigma_2\sigma_1^{-1}\sigma_3 \mathrel{\curvearrowright} \sigma_2\sigma_1\sigma_2^{-1}\sigma_1^{-1}\sigma_3 \mathrel{\curvearrowright} \sigma_2\sigma_1\sigma_2^{-1}\sigma_3\sigma_1^{-1} \mathrel{\curvearrowright} \sigma_2\sigma_1\sigma_2^{-1}\sigma_3\sigma_1^{-1} σ 1 − 1 σ 2 σ 1 − 1 σ 3 ↷ σ 2 σ 1 σ 2 − 1 σ 1 − 1 σ 3 ↷ σ 2 σ 1 σ 2 − 1 σ 3 σ 1 − 1 ↷ σ 2 σ 1 σ 2 − 1 σ 3 σ 1 − 1 : one draws a zigzag path labeled by the initial word, and then, one iteratively fills the open top-left corners using the braid relations.
This approach is tempting. However, it was not immediately applicable to our algorithm’s termination, as we are working over the original alphabet. The proof translating termination from one alphabet to the other is non-trivial, and a metric defined on the extended-alphabet grid would not increase with each one of our individual rewrites. In any case, Dehornoy’s sketch of extended-alphabet grids would have needed a more detailed treatment for formalization, and would have still involved the two largest parts of our argument in this chapter: translating one rewriting sequence for another and a definition of a grid-under-construction. In some sense, such extended-alphabet grids are less satisfying, as they hide many steps of the algorithm, all combined into a single cell.
Returning to our definition of grids, my early naive attempts based on keeping track of the cells filled in unfortunately fail to capture the complexity of the construction required. It certainly feels so simple, so intuitive, and just out of reach. Below, we give a novel (to the best of my knowledge) proof of this claim. The proof defines two intermediate structures: grid-style rewriting and partial grids. First, we convert the normal rewriting to grid-style rewriting. Then we show grid-style rewriting corresponds to a partial grid. Finally, we connect the idea of partial grids to regular grids.
Reading Grids Backwards
We begin by enlarging our definition of grids. At the moment, we have only discussed reading words off grids following the direction of the arrows. We can expand our interpretation of a grid structure by defining a procedure for reading against the direction of an arrow.
Instead of the labels on arrows representing elements of B W + BW^{+} B W + (the set of braid monoid words), we now allow them to represent elements of B W BW B W (the set of braid group words). We note that we are discussing words, not elements of the braid group. To make this clear, following Dehornoy, we continue to write σ ˉ i \bar{\sigma}_i σ ˉ i in place of σ i − 1 \sigma_i^{-1} σ i − 1 . Notably, σ ˉ i σ i ≠ ε \bar{\sigma}_i\sigma_i \ne\varepsilon σ ˉ i σ i = ε , for they are clearly different strings. However, σ ˉ i σ i ≡ ε \bar{\sigma}_i\sigma_i \equiv\varepsilon σ ˉ i σ i ≡ ε .
We obtain such σ ˉ i \bar{\sigma}_i σ ˉ i from the grid by reading against the direction of the arrows. Thus, we can read two paths from the bottom-left to the top-right in the following grid. The upper path is denoted σ ˉ i σ j \bar{\sigma}_i\sigma_j σ ˉ i σ j and the lower is σ l σ ˉ k \sigma_l\bar{\sigma}_k σ l σ ˉ k .
Figure 1 (PDF p. 35).
For a side labelled with a word of length > 1 >1 > 1 , we read the letters of the word in opposite order, and add an overbar to each letter. Consider the following grid:
Figure 2 (PDF p. 35).
The upper bottom-left to top-right path would be read as σ ˉ k σ ˉ j σ ˉ i σ l \bar{\sigma}_k\bar{\sigma}_j\bar{\sigma}_i\sigma_l σ ˉ k σ ˉ j σ ˉ i σ l , and the lower σ l σ ˉ k σ ˉ j σ ˉ i \sigma_l\bar{\sigma}_k\bar{\sigma}_j\bar{\sigma}_i σ l σ ˉ k σ ˉ j σ ˉ i . Given a word w = σ a 0 σ a 1 … σ a n w=\sigma_{a_0}\sigma_{a_1}\ldots\sigma_{a_n} w = σ a 0 σ a 1 … σ a n , let w ˉ \bar{w} w ˉ denote σ ˉ a n … σ ˉ a 1 σ ˉ a 0 \bar{\sigma}_{a_n}\ldots\bar{\sigma}_{a_1}\bar{\sigma}_{a_0} σ ˉ a n … σ ˉ a 1 σ ˉ a 0 .
Notably, we have only given examples of reading a downwards-pointing arrow upwards. We could read left-to-right arrows backwards as well, using the same procedure. However, we will not find a use for this in the following algorithm.
In Lean, we implement such words as elements of List (Nat x Bool). For example, [(4, false), (3, true)] represents σ ˉ 4 σ 3 \bar{\sigma}_4\sigma_3 σ ˉ 4 σ 3 . Note that we choose List over FreeMonoid – this is a nod to Theorem 6.3 , which discusses Semi-Thue rewriting, not presented monoids.
Empty Arrows
Recall that we omitted ε \varepsilon ε -labelled arrows in our definition of grids. We did not distinguish between the two following grids: → σ 2 ↓ σ 0 ↓ σ 0 → σ 2 \begin{array}{ccc} & \xrightarrow{\sigma_2} & \\ \downarrow{\sigma_0} & & \downarrow{\sigma_0}\\ & \xrightarrow{\sigma_2} & \end{array} ↓ σ 0 σ 2 σ 2 ↓ σ 0 and → σ 2 → ε ↓ σ 0 ↓ σ 0 ↓ σ 0 → σ 2 → ε \begin{array}{ccccc} & \xrightarrow{\sigma_2} & & \xrightarrow{\varepsilon} & \\ \downarrow{\sigma_0} & & \downarrow{\sigma_0} & & \downarrow{\sigma_0}\\ & \xrightarrow{\sigma_2} & & \xrightarrow{\varepsilon} & \end{array} ↓ σ 0 σ 2 σ 2 ↓ σ 0 ε ε ↓ σ 0 . For our proof of theorem 6.3, the more granular detail proof provided by tracking empty arrows will prove crucial. So, we again add more detail to the definition of our grid.
We add a new symbol 1 \mathbb{1} 1 to our alphabet. 1 \mathbb{1} 1 represents an ε \varepsilon ε -arrow.
Definition 6.5. The augmented braid generators are given by the set S 1 : = { 1 } ∪ ⋃ i ∈ N { σ i } S^{\mathbb{1}} := \{\mathbb{1}\} \cup\bigcup_{i\in\mathbb{N}}\{\sigma_i\} S 1 := { 1 } ∪ ⋃ i ∈ N { σ i }
The augmented braid alphabet is the set
A 1 : = S 1 ∪ S 1 ‾ = { 1 , 1 ‾ } ∪ ⋃ i ∈ N { σ i , σ i ‾ } \mathcal{A}^{\mathbb{1}} := S^{\mathbb{1}} \cup\overline{S^{\mathbb{1}}} = \{\mathbb{1},\overline{\mathbb{1}}\} \cup\bigcup_{i\in\mathbb{N}}\{\sigma_i,\overline{\sigma_i}\} A 1 := S 1 ∪ S 1 = { 1 , 1 } ∪ i ∈ N ⋃ { σ i , σ i }
The set of augmented braid words B W 1 BW^{\mathbb{1}} B W 1 is given by
B W 1 : = ( A 1 ) ∗ = ( { 1 , 1 ‾ } ∪ ⋃ i ∈ N { σ i , σ i ‾ } ) ∗ BW^{\mathbb{1}} := \left(\mathcal{A}^{\mathbb{1}}\right)^* = \left(\{\mathbb{1},\overline{\mathbb{1}}\} \cup\bigcup_{i\in\mathbb{N}}\{\sigma_i,\overline{\sigma_i}\}\right)^* B W 1 := ( A 1 ) ∗ = ( { 1 , 1 } ∪ i ∈ N ⋃ { σ i , σ i } ) ∗
A subset of B W 1 BW^{\mathbb{1}} B W 1 , the set of positive augmented braid words B W 1 , + BW^{\mathbb{1},+} B W 1 , + is given by
B W 1 , + : = ( S 1 ) ∗ BW^{\mathbb{1},+} := \left(S^{\mathbb{1}}\right)^* B W 1 , + := ( S 1 ) ∗
Remark. We occasionally find use for the terminology “negative augmented braid word”, which is an element of ( S 1 ‾ ) ∗ \left(\overline{S^{\mathbb{1}}}\right)^* ( S 1 ) ∗ .
In Lean, B W 1 BW^{\mathbb{1}} B W 1 is represented by the type List (Option N × Bool). The Bool keeps track of whether there is an overline on the generator; a value of none for Option N indicates the generator is a 1 \mathbb{1} 1 , and a value of some n for Option N means the generator is σ n \sigma_n σ n .
Definition 6.6. We define the following functions to map between B W BW B W and B W 1 BW^{\mathbb{1}} B W 1 :
i 1 : B W → B W 1 i^{\mathbb{1}} : BW \to BW^{\mathbb{1}} i 1 : B W → B W 1 is simply the inclusion map.
s 1 : B W 1 → B W s^{\mathbb{1}} : BW^{\mathbb{1}} \to BW s 1 : B W 1 → B W is the lift of
f ( x ) = { σ i if x = σ i , ε if x = 1. f(x) =
\begin{cases}
\sigma_i & \text{if } x = \sigma_i,\\
\varepsilon& \text{if } x = \mathbb{1}.
\end{cases} f ( x ) = { σ i ε if x = σ i , if x = 1.
Lemma 6.7. The function s 1 s^{\mathbb{1}} s 1 is a left-inverse of i 1 i^{\mathbb{1}} i 1 .
An Example
Recall the part of Theorem 6.3 to be proved: if a ‾ b ‾ → R r e v ∗ c ‾ d ‾ \overline{a}\overline{b} \xrightarrow{R_{\mathrm{rev}}^*} \overline{c}\overline{d} a b R rev ∗ c d , then there exists a grid ⟨ a , b , c , d ⟩ \langle a,b,c,d\rangle ⟨ a , b , c , d ⟩ .
To motivate the definitions and other decisions in the upcoming proof, we present an illustrative example. Let a = σ 2 σ 1 a = \sigma_2\sigma_1 a = σ 2 σ 1 , b = σ 0 σ 1 b = \sigma_0\sigma_1 b = σ 0 σ 1 , c = σ 0 σ 1 σ 2 c = \sigma_0\sigma_1\sigma_2 c = σ 0 σ 1 σ 2 , and d = σ 2 σ 1 σ 0 d = \sigma_2\sigma_1\sigma_0 d = σ 2 σ 1 σ 0 . Consider the following derivation, one of many which witnesses a ˉ → ∗ R r e v c ˉ d ˉ \bar{a} \xrightarrow{*}_{R_{\mathrm{rev}}} \bar{c}\bar{d} a ˉ ∗ R rev c ˉ d ˉ :
σ 2 σ 1 ‾ σ 0 ‾ σ 0 σ 1 = σ 1 ‾ σ 2 σ 0 ‾ σ 1 ⟶ R r e v σ 1 ‾ σ 0 σ 2 ‾ σ 1 ⟶ R r e v σ 0 ‾ σ 1 σ 0 ‾ σ 1 ‾ σ 2 σ 1 ⟶ R r e v σ 0 ‾ σ 1 σ 0 ‾ σ 1 ‾ σ 2 σ 1 ‾ σ 2 ‾ ⟶ R r e v σ 0 ‾ σ 1 σ 0 ‾ σ 2 σ 1 ‾ σ 2 ‾ ⟶ R r e v σ 0 ‾ σ 1 σ 2 σ 0 ‾ σ 1 ‾ σ 2 ‾ = σ 0 σ 1 σ 2 σ 2 ‾ σ 1 ‾ σ 0 ‾ \overline{\sigma_2\sigma_1}\overline{\sigma_0}\sigma_0\sigma_1
= \overline{\sigma_1}\overline{\sigma_2\sigma_0}\sigma_1
\overset{R_{\mathrm{rev}}}{\longrightarrow} \overline{\sigma_1}\sigma_0\overline{\sigma_2}\sigma_1
\overset{R_{\mathrm{rev}}}{\longrightarrow} \overline{\sigma_0}\sigma_1\overline{\sigma_0}\overline{\sigma_1}\sigma_2\sigma_1
\overset{R_{\mathrm{rev}}}{\longrightarrow} \overline{\sigma_0}\sigma_1\overline{\sigma_0}\overline{\sigma_1}\sigma_2\overline{\sigma_1}\overline{\sigma_2}
\overset{R_{\mathrm{rev}}}{\longrightarrow} \overline{\sigma_0}\sigma_1\overline{\sigma_0}\sigma_2\overline{\sigma_1}\overline{\sigma_2}
\overset{R_{\mathrm{rev}}}{\longrightarrow} \overline{\sigma_0}\sigma_1\sigma_2\overline{\sigma_0}\overline{\sigma_1}\overline{\sigma_2}
= \sigma_0\sigma_1\sigma_2\overline{\sigma_2}\overline{\sigma_1}\overline{\sigma_0} σ 2 σ 1 σ 0 σ 0 σ 1 = σ 1 σ 2 σ 0 σ 1 ⟶ R rev σ 1 σ 0 σ 2 σ 1 ⟶ R rev σ 0 σ 1 σ 0 σ 1 σ 2 σ 1 ⟶ R rev σ 0 σ 1 σ 0 σ 1 σ 2 σ 1 σ 2 ⟶ R rev σ 0 σ 1 σ 0 σ 2 σ 1 σ 2 ⟶ R rev σ 0 σ 1 σ 2 σ 0 σ 1 σ 2 = σ 0 σ 1 σ 2 σ 2 σ 1 σ 0
We aim to construct a grid ⟨ σ 2 σ 1 , σ 0 σ 1 , σ 0 σ 1 σ 2 , σ 2 σ 1 σ 0 ⟩ \langle\sigma_2\sigma_1,\sigma_0\sigma_1,\sigma_0\sigma_1\sigma_2,\sigma_2\sigma_1\sigma_0\rangle ⟨ σ 2 σ 1 , σ 0 σ 1 , σ 0 σ 1 σ 2 , σ 2 σ 1 σ 0 ⟩ :
→ σ 0 σ 1 σ 2 σ 1 ↓ ↓ σ 2 σ 1 σ 0 → σ 0 σ 1 σ 2 \begin{CD}
@>{\sigma_0\sigma_1}>> \\
@V{\sigma_2\sigma_1}VV @VV{\sigma_2\sigma_1\sigma_0}V \\
@>{\sigma_0\sigma_1\sigma_2}>>
\end{CD} σ 2 σ 1 ↓ ⏐ σ 0 σ 1 σ 0 σ 1 σ 2 ↓ ⏐ σ 2 σ 1 σ 0
We begin by writing out the spine of the grid:
→ σ 0 → σ 1 σ 2 ↓ σ 1 ↓ \begin{CD}
@>{\sigma_0}>> @>{\sigma_1}>> \\
@V{\sigma_2}VV \\
@V{\sigma_1}VV
\end{CD} σ 2 ↓ ⏐ σ 0 σ 1 ↓ ⏐ σ 1
The first rewrite of σ 2 ‾ σ 0 ‾ \overline{\sigma_2}\overline{\sigma_0} σ 2 σ 0 to σ 0 ‾ σ 2 ‾ \overline{\sigma_0}\overline{\sigma_2} σ 0 σ 2 corresponds to inserting the cell
→ σ 0 σ 2 ↓ ↓ σ 2 → σ 0 \begin{CD}
@>{\sigma_0}>> \\
@V{\sigma_2}VV @VV{\sigma_2}V \\
@>{\sigma_0}>>
\end{CD} σ 2 ↓ ⏐ σ 0 σ 0 ↓ ⏐ σ 2
We define the frontier of a partially-completed grid as its southeasternmost bottom-left-to-top-right path. The frontier of the above diagram is σ 1 ‾ σ 0 ‾ σ 2 σ 1 \overline{\sigma_1}\overline{\sigma_0}\sigma_2\sigma_1 σ 1 σ 0 σ 2 σ 1 , exactly the same as step (1) of the reversing derivation.
This procedure continues easily for the next three steps of the derivation, lines 2 through 4, with corresponding cells fitting into the frontier of diagram neatly:
σ 0 σ 1 ⟶ ⟶ σ 2 ↓ σ 2 ↓ σ 0 ⟶ σ 1 ↓ σ 1 ↓ σ 0 ⟶ σ 1 ⟶ σ 0 σ 1 ⟶ ⟶ σ 2 ↓ σ 2 ↓ σ 2 ↓ σ 1 ↓ σ 0 ⟶ σ 1 ⟶ σ 2 ⟶ σ 1 ↓ σ 1 ↓ σ 0 ⟶ , and σ 0 σ 1 ⟶ ⟶ σ 2 ↓ σ 2 ↓ σ 2 ↓ σ 1 ↓ σ 0 ⟶ σ 1 ⟶ σ 2 ⟶ σ 1 ↓ σ 1 ↓ ε ↓ σ 0 ⟶ σ 1 ⟶ ε ⟶ \begin{array}{ccccc}
& \sigma_{0} & & \sigma_{1} & \\
& \longrightarrow& & \longrightarrow& \\
\sigma_{2}\downarrow& & \sigma_{2}\downarrow& & \\
& \sigma_{0}\longrightarrow& & \\
\sigma_{1}\downarrow& & \sigma_{1}\downarrow& & \\
& \sigma_{0}\longrightarrow& & \sigma_{1}\longrightarrow&
\end{array}
\qquad
\begin{array}{ccccc}
& \sigma_{0} & & \sigma_{1} & \\
& \longrightarrow& & \longrightarrow& \sigma_{2}\downarrow\\
\sigma_{2}\downarrow& & \sigma_{2}\downarrow& & \sigma_{1}\downarrow\\
& \sigma_{0}\longrightarrow& \sigma_{1}\longrightarrow& \sigma_{2}\longrightarrow& \\
\sigma_{1}\downarrow& & \sigma_{1}\downarrow& & \\
& & \sigma_{0}\longrightarrow& &
\end{array}
\qquad\text{, and}\qquad
\begin{array}{ccccc}
& \sigma_{0} & & \sigma_{1} & \\
& \longrightarrow& & \longrightarrow& \sigma_{2}\downarrow\\
\sigma_{2}\downarrow& & \sigma_{2}\downarrow& & \sigma_{1}\downarrow\\
& \sigma_{0}\longrightarrow& \sigma_{1}\longrightarrow& \sigma_{2}\longrightarrow& \\
\sigma_{1}\downarrow& & \sigma_{1}\downarrow& \varepsilon\downarrow& \\
& \sigma_{0}\longrightarrow& \sigma_{1}\longrightarrow& \varepsilon\longrightarrow&
\end{array} σ 2 ↓ σ 1 ↓ σ 0 ⟶ σ 0 ⟶ σ 0 ⟶ σ 2 ↓ σ 1 ↓ σ 1 ⟶ σ 1 ⟶ σ 2 ↓ σ 1 ↓ σ 0 ⟶ σ 0 ⟶ σ 2 ↓ σ 1 ⟶ σ 1 ↓ σ 0 ⟶ σ 1 ⟶ σ 2 ⟶ σ 2 ↓ σ 1 ↓ , and σ 2 ↓ σ 1 ↓ σ 0 ⟶ σ 0 ⟶ σ 0 ⟶ σ 2 ↓ σ 1 ⟶ σ 1 ↓ σ 1 ⟶ σ 1 ⟶ σ 2 ⟶ ε ↓ ε ⟶ σ 2 ↓ σ 1 ↓
We encounter an issue when moving to line 5. There, we replace σ ‾ 0 σ 2 \overline{\sigma}_{0}\sigma_{2} σ 0 σ 2 with σ 2 σ ‾ 0 \sigma_{2}\overline{\sigma}_{0} σ 2 σ 0 . The corresponding cell is
σ 2 σ 0 ↓ ↓ σ 0 σ 2 ⟶ \begin{array}{ccc}
& \sigma_{2} & \\
\sigma_{0}\downarrow& & \downarrow\sigma_{0} \\
& \sigma_{2}\longrightarrow&
\end{array} σ 0 ↓ σ 2 σ 2 ⟶ ↓ σ 0
But this does not fit into the frontier! The frontier edges σ 0 \sigma_{0} σ 0 and
σ 2 σ 0 ↓ σ 2 ⟶ \begin{array}{ccc}
& \sigma_{2} & \\
\sigma_{0}\downarrow& & \\
& \sigma_{2}\longrightarrow&
\end{array} σ 0 ↓ σ 2 σ 2 ⟶
are separated by ε \varepsilon ε -labelled edges.
To insert this cell, we must first add in the following two cells (which we will call trivial cells ), which do not correspond to a step of the derivation:
σ 0 σ 1 ⟶ ⟶ σ 2 ↓ σ 2 ↓ σ 2 ↓ σ 1 ↓ σ 0 ⟶ σ 1 ⟶ σ 2 ⟶ ε ↓ σ 1 ↓ ε ↓ σ 0 ⟶ σ 1 ⟶ ε ⟶ \begin{array}{ccccc}
& \sigma_{0} & & \sigma_{1} & \\
& \longrightarrow& & \longrightarrow& \sigma_{2}\downarrow\\
\sigma_{2}\downarrow& & \sigma_{2}\downarrow& & \sigma_{1}\downarrow\\
& \sigma_{0}\longrightarrow& \sigma_{1}\longrightarrow& \sigma_{2}\longrightarrow& \varepsilon\downarrow\\
\sigma_{1}\downarrow& & \varepsilon\downarrow& & \\
& \sigma_{0}\longrightarrow& \sigma_{1}\longrightarrow& \varepsilon\longrightarrow&
\end{array} σ 2 ↓ σ 1 ↓ σ 0 ⟶ σ 0 ⟶ σ 0 ⟶ σ 2 ↓ σ 1 ⟶ ε ↓ σ 1 ⟶ σ 1 ⟶ σ 2 ⟶ ε ⟶ σ 2 ↓ σ 1 ↓ ε ↓
Further, note that adding in trivial cells must be done recursively. To see why, consider the following snippet of a grid:
σ 1 ⟶ σ 2 ⟶ σ 1 ⟶ σ 1 ↓ ε ↓ ε ⟶ \begin{array}{cccc}
& \sigma_{1}\longrightarrow& \sigma_{2}\longrightarrow& \sigma_{1}\longrightarrow\\
\sigma_{1}\downarrow& & \varepsilon\downarrow& \\
& \varepsilon\longrightarrow& &
\end{array} σ 1 ↓ σ 1 ⟶ ε ⟶ σ 2 ⟶ ε ↓ σ 1 ⟶
When we add in the appropriate trivial cell
σ 2 ε ↓ ↓ ε σ 2 ⟶ \begin{array}{ccc}
& \sigma_{2} & \\
\varepsilon\downarrow& & \downarrow\varepsilon\\
& \sigma_{2}\longrightarrow&
\end{array} ε ↓ σ 2 σ 2 ⟶ ↓ ε
we obtain the following grid snippet:
σ 1 ⟶ σ 2 ⟶ σ 1 ⟶ σ 1 ↓ ε ↓ ε ↓ ε ⟶ σ 2 ⟶ \begin{array}{cccc}
& \sigma_{1}\longrightarrow& \sigma_{2}\longrightarrow& \sigma_{1}\longrightarrow\\
\sigma_{1}\downarrow& & \varepsilon\downarrow& \varepsilon\downarrow\\
& \varepsilon\longrightarrow& \sigma_{2}\longrightarrow&
\end{array} σ 1 ↓ σ 1 ⟶ ε ⟶ σ 2 ⟶ ε ↓ σ 2 ⟶ σ 1 ⟶ ε ↓
This snippet now requires another trivial cell to be inserted.
Returning to our main example, we may now complete the grid following the rewrite in step (5), obtaining This has frontier σ 0 σ 1 1 σ 2 σ 0 1 ‾ σ 1 ‾ σ 2 ‾ \sigma_0\sigma_1 1\sigma_2\sigma_0\overline{1}\,\overline{\sigma_1}\,\overline{\sigma_2} σ 0 σ 1 1 σ 2 σ 0 1 σ 1 σ 2 . Note that s 1 ( σ 0 σ 1 1 σ 2 σ 0 1 ‾ σ 1 ‾ σ 2 ‾ ) = σ 0 σ 1 σ 2 σ 0 1 ‾ σ 1 ‾ σ 2 ‾ s^1(\sigma_0\sigma_1 1\sigma_2\sigma_0\overline{1}\,\overline{\sigma_1}\,\overline{\sigma_2})=\sigma_0\sigma_1\sigma_2\sigma_0\overline{1}\,\overline{\sigma_1}\,\overline{\sigma_2} s 1 ( σ 0 σ 1 1 σ 2 σ 0 1 σ 1 σ 2 ) = σ 0 σ 1 σ 2 σ 0 1 σ 1 σ 2 , which equals step (5) of the derivation.
To give a rigorous proof, we must first give a definition of partially-constructed grids. Then, we must develop a procedure for inserting trivial cells. We could enact this procedure on the partial grids. It turns out to be simpler to translate the given derivation to one tracking ε \varepsilon ε ’s explicitly, and then have a clean, straightforward translation from the new derivation to partial grids. This is largely due to strings being simpler to work with than two-dimensional diagrams. We define this new derivation in the following section.
Grid-Style Rewriting
We define a relation R g r i d R_{\mathrm{grid}} R grid which tracks ε \varepsilon ε -labelled arrows, which are represented by 1 1 1 in our alphabet. This relation is defined to correspond neatly with grid cells; if we have R g r i d ( x , y ) R_{\mathrm{grid}}(x,y) R grid ( x , y ) , we know there is a cell with x x x as the left-top border and y y y as the bottom-right border (reading, as always in the section, north-east, and using an overbar to denote travelling opposite an arrow’s direction).
Definition 6.8. The relation R n o n t r i v R_{\mathrm{nontriv}} R nontriv is very similar to R r e v R_{\mathrm{rev}} R rev . It differs only in the first case (see below); rewriting under R r e v R_{\mathrm{rev}} R rev simply deletes an occurrence of σ i ‾ σ i \overline{\sigma_i}\sigma_i σ i σ i , whereas under R n o n t r i v R_{\mathrm{nontriv}} R nontriv , σ i ‾ σ i \overline{\sigma_i}\sigma_i σ i σ i would be replaced by 1 1 ‾ 1\overline{1} 1 1 . R n o n t r i v R_{\mathrm{nontriv}} R nontriv is the smallest relation satisfying
R n o n t r i v ( σ i ‾ σ i , 1 1 ‾ ) for all i ∈ N . R_{\mathrm{nontriv}}(\overline{\sigma_i}\sigma_i,1\overline{1})\quad\text{for all }i\in\mathbb{N}. R nontriv ( σ i σ i , 1 1 ) for all i ∈ N .
This corresponds to the cell
σ i σ i ε ε \begin{array}{ccc}
& \sigma_i & \\
\sigma_i & \varepsilon& \varepsilon
\end{array} σ i σ i ε ε
R n o n t r i v ( σ i ‾ σ j , σ j σ i σ j ‾ σ i ‾ ) when ∣ i − j ∣ = 1. R_{\mathrm{nontriv}}(\overline{\sigma_i}\sigma_j,\sigma_j\sigma_i\overline{\sigma_j}\,\overline{\sigma_i})\quad\text{when }|i-j|=1. R nontriv ( σ i σ j , σ j σ i σ j σ i ) when ∣ i − j ∣ = 1.
This corresponds to the cell
σ j σ i σ j σ i \begin{array}{ccc}
& \sigma_j & \\
\sigma_i & \sigma_j & \sigma_i
\end{array} σ i σ j σ j σ i
R n o n t r i v ( σ i ‾ σ j , σ j σ i ‾ ) when ∣ i − j ∣ ≥ 2. R_{\mathrm{nontriv}}(\overline{\sigma_i}\sigma_j,\sigma_j\overline{\sigma_i})\quad\text{when }|i-j|\ge2. R nontriv ( σ i σ j , σ j σ i ) when ∣ i − j ∣ ≥ 2.
This corresponds to the cell
σ j σ i σ i \begin{array}{ccc}
& \sigma_j & \\
\sigma_i & \sigma_i
\end{array} σ i σ j σ i
The relation R t r i v R_{\mathrm{triv}} R triv tracks “trivial” rewrites which do not occur in an R r e v R_{\mathrm{rev}} R rev –derivation. R t r i v R_{\mathrm{triv}} R triv is the smallest relation satisfying
R t r i v ( 1 ‾ σ i , σ i 1 ‾ ) for all i ∈ N . R_{\mathrm{triv}}(\overline{1}\sigma_i,\sigma_i\overline{1})\quad\text{for all }i\in\mathbb{N}. R triv ( 1 σ i , σ i 1 ) for all i ∈ N .
This corresponds to the cell
σ i ε ε σ i \begin{array}{ccc}
& \sigma_i & \\
\varepsilon& \varepsilon& \sigma_i
\end{array} ε σ i ε σ i
R t r i v ( σ i ‾ 1 , 1 σ i ‾ ) R_{\mathrm{triv}}(\overline{\sigma_i}\,1,1\,\overline{\sigma_i}) R triv ( σ i 1 , 1 σ i ) for all i ∈ N i\in\mathbb{N} i ∈ N . This corresponds to the cell
σ i → ε σ i ↓ σ i ↓ σ i 1 → ε 1 \begin{array}{ccc}
\sigma_i & \xrightarrow{\varepsilon} & \sigma_i\\
\downarrow{\sigma_i} & & \downarrow{\sigma_i}\\
1 & \xrightarrow{\varepsilon} & 1
\end{array} σ i ↓ σ i 1 ε ε σ i ↓ σ i 1
R t r i v ( 1 ‾ 1 , 1 1 ‾ ) R_{\mathrm{triv}}(\overline{1}\,1,1\,\overline{1}) R triv ( 1 1 , 1 1 ) . This corresponds to the cell
1 → ε 1 ↓ ε ↓ ε 1 → ε 1 \begin{array}{ccc}
1 & \xrightarrow{\varepsilon} & 1\\
\downarrow{\varepsilon} & & \downarrow{\varepsilon}\\
1 & \xrightarrow{\varepsilon} & 1
\end{array} 1 ↓ ε 1 ε ε 1 ↓ ε 1
Finally, R g r i d R_{\mathrm{grid}} R grid is the union of R t r i v R_{\mathrm{triv}} R triv and R n o n t r i v R_{\mathrm{nontriv}} R nontriv .
We next make precise the close relationship between R r e v R_{\mathrm{rev}} R rev and R n o n t r i v R_{\mathrm{nontriv}} R nontriv :
Theorem 6.9. If R r e v ( x , y ) R_{\mathrm{rev}}(x,y) R rev ( x , y ) , there exists y ′ ∈ B W 1 y'\in BW^1 y ′ ∈ B W 1 such that R n o n t r i v ( ι 1 ( x ) , y ′ ) R_{\mathrm{nontriv}}(\iota^1(x),y') R nontriv ( ι 1 ( x ) , y ′ ) . This y ′ y' y ′ happens to be unique, and have the property that s 1 ( y ′ ) = y s^1(y')=y s 1 ( y ′ ) = y .
We next give terminology for augmented braid words which can or can not be reduced by the above relations.
Definition 6.10. An element b ∈ B W 1 b\in BW^1 b ∈ B W 1 is trivially-reducible if it is of the form b 1 x b 2 b_1xb_2 b 1 x b 2 , where ( x , y ) ∈ R t r i v (x,y)\in R_{\mathrm{triv}} ( x , y ) ∈ R triv .
Otherwise, it is called trivially-irreducible . This is equivalent to saying b b b has no subwords of the form σ i ‾ 1 \overline{\sigma_i}1 σ i 1 , 1 σ i ‾ 1\overline{\sigma_i} 1 σ i , or 1 ‾ 1 \overline{1}1 1 1 .
We have analogous definitions for nontrivially-reducible and nontrivially-irreducible, and R g r i d R_{\mathrm{grid}} R grid -reducible and R g r i d R_{\mathrm{grid}} R grid -irreducible.
Lemma 6.11. For any b ∈ B W b\in BW b ∈ B W , ι 1 ( b ) \iota^1(b) ι 1 ( b ) is trivially-irreducible.
We give a specific fact about irreducibility to be used in a later proof:
Lemma 6.12. If g g g is trivially-irreducible and s 1 ( g ) = c ‾ d ‾ s^1(g)=\overline{c}\overline{d} s 1 ( g ) = c d for some c , d ∈ B W + c,d\in BW^+ c , d ∈ B W + , then there exist e , f ∈ B W 1 , + e,f\in BW^{1,+} e , f ∈ B W 1 , + such that g = e ‾ f ‾ g=\overline{e}\overline{f} g = e f .
We name the important words of length two:
Definition 6.13. Given letters α , β ∈ S 1 \alpha,\beta\in S^1 α , β ∈ S 1 , a word of the form α ‾ β ‾ \overline{\alpha}\overline{\beta} α β is called an open pair . A word in which at least one of α \alpha α or β \beta β equals 1 1 1 is called a trivial open pair . A word of the form σ i ‾ σ j ‾ \overline{\sigma_i}\overline{\sigma_j} σ i σ j is called a sigma-sigma open pair . We use the adjective “open” to signify there is an opening for a grid cell in the corresponding diagram.
We have the analogous vocabulary for pairs of the form α ‾ β ‾ \overline{\alpha}\overline{\beta} α β , with “closed” replacing “open”.
Building Grid-Style Rewriting
This section’s main result is the generation of an R g r i d R_{\mathrm{grid}} R grid derivation from an R r e v R_{\mathrm{rev}} R rev derivation:
Theorem 6.14. Let a , b , c , d ∈ B W + a,b,c,d\in BW^+ a , b , c , d ∈ B W + . If a b ‾ ⟶ R r e v ∗ c d ‾ \overline{ab}\mathrel{\mathop{\longrightarrow}\limits^{*}_{R_{\mathrm{rev}}}}\overline{cd} ab R rev ⟶ ∗ c d , then there exist positive augmented words e , f e,f e , f such that ι 1 ( a ) ι 1 ( b ) ⟶ R g r i d ∗ e ‾ f ‾ \iota^1(a)\iota^1(b)\mathrel{\mathop{\longrightarrow}\limits^{*}_{R_{\mathrm{grid}}}}\overline{e}\overline{f} ι 1 ( a ) ι 1 ( b ) R grid ⟶ ∗ e f . Moreover, deleting all instances of 1 1 1 and 1 ‾ \overline{1} 1 from e e e leaves us with c c c ; that is, s 1 ( e ) = c s^1(e)=c s 1 ( e ) = c . Similarly, s 1 ( f ) = d s^1(f)=d s 1 ( f ) = d .
Before we begin the proof, let us return to our example from earlier in the chapter. Recall the derivation:
σ 2 ‾ σ 1 σ 0 ‾ σ 1 = σ 1 ‾ σ 2 ‾ σ 0 σ 1 \overline{\sigma_2}\sigma_1\overline{\sigma_0}\sigma_1=\overline{\sigma_1}\,\overline{\sigma_2}\sigma_0\sigma_1 σ 2 σ 1 σ 0 σ 1 = σ 1 σ 2 σ 0 σ 1
→ R r e v σ 1 ‾ σ 0 σ 2 ‾ σ 1 (1) \to_{R_{\mathrm{rev}}}\overline{\sigma_1}\,\sigma_0\overline{\sigma_2}\sigma_1 \tag*{(1)} → R rev σ 1 σ 0 σ 2 σ 1 (1)
→ R r e v σ 0 σ 1 σ 0 ‾ σ 1 ‾ σ 2 ‾ σ 1 (2) \to_{R_{\mathrm{rev}}}\sigma_0\sigma_1\overline{\sigma_0}\,\overline{\sigma_1}\,\overline{\sigma_2}\sigma_1 \tag*{(2)} → R rev σ 0 σ 1 σ 0 σ 1 σ 2 σ 1 (2)
→ R r e v σ 0 σ 1 σ 0 ‾ σ 1 ‾ σ 1 σ 2 σ 1 ‾ σ 2 ‾ (3) \to_{R_{\mathrm{rev}}}\sigma_0\sigma_1\overline{\sigma_0}\,\overline{\sigma_1}\sigma_1\sigma_2\overline{\sigma_1}\,\overline{\sigma_2} \tag*{(3)} → R rev σ 0 σ 1 σ 0 σ 1 σ 1 σ 2 σ 1 σ 2 (3)
→ R r e v σ 0 σ 1 σ 0 ‾ σ 2 σ 1 ‾ σ 2 ‾ (4) \to_{R_{\mathrm{rev}}}\sigma_0\sigma_1\overline{\sigma_0}\sigma_2\overline{\sigma_1}\,\overline{\sigma_2} \tag*{(4)} → R rev σ 0 σ 1 σ 0 σ 2 σ 1 σ 2 (4)
→ R r e v σ 0 σ 1 σ 2 σ 0 ‾ σ 1 ‾ σ 2 ‾ = σ 0 σ 1 σ 2 σ 2 ‾ σ 1 ‾ σ 0 ‾ (5) \begin{aligned}
\to_{R_{\mathrm{rev}}}\sigma_0\sigma_1\sigma_2\overline{\sigma_0}\,\overline{\sigma_1}\,\overline{\sigma_2} \\
&=\sigma_0\sigma_1\sigma_2\overline{\sigma_2}\overline{\sigma_1}\overline{\sigma_0} \tag*{(5)}
\end{aligned} → R rev σ 0 σ 1 σ 2 σ 0 σ 1 σ 2 = σ 0 σ 1 σ 2 σ 2 σ 1 σ 0 (5)
The following derivation will suffice for Theorem 6.14 , with e = σ 0 σ 1 1 ‾ σ 2 e=\sigma_0\sigma_1\overline{1}\sigma_2 e = σ 0 σ 1 1 σ 2 and f = σ 2 σ 1 1 ‾ σ 0 f=\sigma_2\sigma_1\overline{1}\sigma_0 f = σ 2 σ 1 1 σ 0
σ 2 ‾ σ 1 σ 0 ‾ σ 1 = σ 1 ‾ σ 2 ‾ σ 0 σ 1 \overline{\sigma_2}\sigma_1\overline{\sigma_0}\sigma_1=\overline{\sigma_1}\,\overline{\sigma_2}\sigma_0\sigma_1 σ 2 σ 1 σ 0 σ 1 = σ 1 σ 2 σ 0 σ 1
→ R r e v σ 1 ‾ σ 0 σ 2 ‾ σ 1 (6) \to_{R_{\mathrm{rev}}}\overline{\sigma_1}\,\sigma_0\overline{\sigma_2}\sigma_1 \tag*{(6)} → R rev σ 1 σ 0 σ 2 σ 1 (6)
→ R r e v σ 0 σ 1 σ 0 ‾ σ 1 ‾ σ 2 ‾ σ 1 (7) \to_{R_{\mathrm{rev}}}\sigma_0\sigma_1\overline{\sigma_0}\,\overline{\sigma_1}\,\overline{\sigma_2}\sigma_1 \tag*{(7)} → R rev σ 0 σ 1 σ 0 σ 1 σ 2 σ 1 (7)
→ R r e v σ 0 σ 1 σ 0 ‾ σ 1 ‾ σ 1 σ 2 σ 1 ‾ σ 2 ‾ (8) \to_{R_{\mathrm{rev}}}\sigma_0\sigma_1\overline{\sigma_0}\,\overline{\sigma_1}\sigma_1\sigma_2\overline{\sigma_1}\,\overline{\sigma_2} \tag*{(8)} → R rev σ 0 σ 1 σ 0 σ 1 σ 1 σ 2 σ 1 σ 2 (8)
→ R r e v σ 0 σ 1 σ 0 ‾ 1 ‾ 1 ‾ σ 2 σ 1 ‾ σ 2 ‾ (9) \to_{R_{\mathrm{rev}}}\sigma_0\sigma_1\overline{\sigma_0}\,\overline{1}\overline{1}\sigma_2\overline{\sigma_1}\,\overline{\sigma_2} \tag*{(9)} → R rev σ 0 σ 1 σ 0 1 1 σ 2 σ 1 σ 2 (9)
→ R r e v σ 0 σ 1 σ 0 ‾ 1 ‾ σ 0 ‾ σ 2 ‾ σ 1 ‾ σ 2 ‾ (10) \to_{R_{\mathrm{rev}}}\sigma_0\sigma_1\overline{\sigma_0}\,\overline{1}\overline{\sigma_0}\,\overline{\sigma_2}\overline{\sigma_1}\,\overline{\sigma_2} \tag*{(10)} → R rev σ 0 σ 1 σ 0 1 σ 0 σ 2 σ 1 σ 2 (10)
→ R r e v σ 0 σ 1 σ 0 ‾ σ 0 ‾ σ 2 ‾ 1 ‾ σ 1 ‾ σ 2 ‾ (11) \to_{R_{\mathrm{rev}}}\sigma_0\sigma_1\overline{\sigma_0}\,\overline{\sigma_0}\overline{\sigma_2}\,\overline{1}\,\overline{\sigma_1}\,\overline{\sigma_2} \tag*{(11)} → R rev σ 0 σ 1 σ 0 σ 0 σ 2 1 σ 1 σ 2 (11)
→ R r e v σ 0 σ 1 σ 2 ‾ σ 0 ‾ 1 ‾ σ 1 ‾ σ 2 ‾ = σ 0 σ 1 1 ‾ σ 2 σ 2 ‾ σ 1 1 ‾ σ 0 (12) \begin{aligned}
\to_{R_{\mathrm{rev}}}\sigma_0\sigma_1\overline{\sigma_2}\overline{\sigma_0}\,\overline{1}\,\overline{\sigma_1}\,\overline{\sigma_2} \\
&=\sigma_0\sigma_1\overline{1}\sigma_2\overline{\sigma_2}\sigma_1\overline{1}\sigma_0 \tag*{(12)}
\end{aligned} → R rev σ 0 σ 1 σ 2 σ 0 1 σ 1 σ 2 = σ 0 σ 1 1 σ 2 σ 2 σ 1 1 σ 0 (12)
Here, the work lies in moving the 1s in lines (4) and (4.1). Then, we are relieved to see that in line (4.2), we are poised to make the rewrite in line (5).
Moving on from this example, we begin by defining a general procedure for performing the trivial reductions (i.e. moving the 1 and 1 ‾ \overline{1} 1 s). The simplest way to define the procedure for trivial reduction is to repeatedly search for and rewrite the first occurrence of a trivial pair. We can give a lexicographic ordering on our alphabet, and in that way show this procedure does terminate.23 However, we will need to prove a number of properties about this procedure’s result (such as trivial irreducibility), so we need a definition more amenable to inductive proofs.
We first define a helper function concatenate_reduction, which appends a single letter of our alphabet A 1 \mathcal{A}^{1} A 1 to a word b ∈ B W 1 b\in BW^{1} b ∈ B W 1 and applies any trivial reductions involving said letter. We will in the future only apply this function to a trivially-irreducible b b b .
Definition 6.15. Given a single letter α ∈ A 1 \alpha\in\mathcal{A}^{1} α ∈ A 1 and a word b ∈ B W 1 b\in BW^{1} b ∈ B W 1 , we define concatenate_reduction a b as
σ i < σ j \sigma_i<\sigma_j σ i < σ j iff i < j i<j i < j
σ i ‾ < σ j ‾ \overline{\sigma_i}<\overline{\sigma_j} σ i < σ j iff i < j i<j i < j
σ i < σ j ‾ \sigma_i<\overline{\sigma_j} σ i < σ j for all natural numbers i , j i,j i , j
1 ‾ < 1 \overline{1}<1 1 < 1
σ i < 1 \sigma_i<1 σ i < 1 for all natural numbers i i i
1 ‾ < σ i ‾ \overline{1}<\overline{\sigma_i} 1 < σ i for all natural numbers i i i
We extend this to the associated shortlex ordering over strings. Although this method was not ultimately used in the project, it did lead to the implementation of the shortlex order, now in Mathlib.
if α \alpha α is 1 ‾ \overline{1} 1 and b = σ i b 1 b=\sigma_i b_1 b = σ i b 1 , return σ i ⋅ \sigma_i \cdot σ i ⋅ concatenate_reduction a b1. (This case rewrites 1 ‾ σ i \overline{1}\sigma_i 1 σ i to σ i 1 ‾ \sigma_i\overline{1} σ i 1 , and then continues on with any further trivial rewrites involving α \alpha α )
if α \alpha α is negative (an element of S 1 ‾ \overline{S^1} S 1 ) and b = 1 ‾ b 1 b=\overline{1}b_1 b = 1 b 1 , return 1 ‾ ⋅ \overline{1}\cdot 1 ⋅ concatenate_reduction a b1. (In this case, α = σ i ‾ \alpha=\overline{\sigma_i} α = σ i or α = 1 ‾ \alpha=\overline{1} α = 1 . So, this case either rewrites σ i ‾ 1 ‾ \overline{\sigma_i}\overline{1} σ i 1 to 1 ‾ σ i ‾ \overline{1}\overline{\sigma_i} 1 σ i or 1 ‾ 1 ‾ \overline{1}\overline{1} 1 1 to 1 ‾ 1 ‾ \overline{1}\overline{1} 1 1 , and then continues on with any further trivial rewrites involving α \alpha α )
otherwise, return α b \alpha b α b
Lemma 6.16. If b b b is trivially-irreducible, so too is concatenate_reduction a b. The proof proceeds by induction on b b b , and then casework on α \alpha α and the first element of b b b .
Theorem 6.17. α b ⟶ R t r i v ∗ \alpha b \mathrel{\mathop{\longrightarrow}\limits^{*}_{R_{\mathrm{triv}}}} α b R triv ⟶ ∗ concatenate_reduction a b. The proof proceeds in the same style as that of the above theorem.
We are now prepared to define the algorithm move_ones which trivially-reduces a given augmented braid word.
Definition 6.18. Given b ∈ B W 1 b\in BW^1 b ∈ B W 1 , we define move_ones b as follows:
If b b b has length zero, then move_ones b returns the empty word ε \varepsilon ε .
If b b b has length at least one, it has the form α b 1 \alpha b_1 α b 1 for some α ∈ A 1 \alpha\in\mathcal{A}^1 α ∈ A 1 and b 1 ∈ B W 1 b_1\in BW^1 b 1 ∈ B W 1 . Let c c c be the result of the recursive call move_ones b1. Then we return concatenate_reduction a c.
In Lean, this reads as
def move_ones (L : List (Option N × Bool)) :=
match L with
| [] => []
| head :: tail => concatenate_reduction head (move_ones tail)
Theorem 6.19. b ⟶ R t r i v ∗ b\mathrel{\mathop{\longrightarrow}\limits^{*}_{R_{\mathrm{triv}}}} b R triv ⟶ ∗ move_ones b. The proof proceeds by induction, using Lemma 6.17.
Notably, as R t r i v ⊆ R g r i d R_{\mathrm{triv}}\subseteq R_{\mathrm{grid}} R triv ⊆ R grid , b ⟶ R g r i d ∗ b\mathrel{\mathop{\longrightarrow}\limits^{*}_{R_{\mathrm{grid}}}} b R grid ⟶ ∗ move_ones b
Theorem 6.20. move_ones does not affect the relative positions of any σ i \sigma_i σ i . s 1 ( move_ones b ) = s 1 ( b ) s^1(\text{move\_ones }b)=s^1(b) s 1 ( move_ones b ) = s 1 ( b )
Theorem 6.21. move_ones produces a trivially-irreducible word; for any b ∈ B W 1 b\in BW^1 b ∈ B W 1 , move_ones b is trivially-irreducible.
Let us take stock of where we are in terms of our example. The move_ones algorithm effects the work done in steps (4) − (4.2). We next noted that we were poised for the next step from the R r e v R_{\mathrm{rev}} R rev -derivation, able to make the rewrite from step (5). The property of trivial-irreducibility just mentioned will in fact suffice, but not straightforwardly so. Instead, we introduce another notion which more immediately connects to preparedness for a nontrivial rewrite.
We begin by defining a property pairAppears.
Definition 6.22. An element b ∈ B W 1 b\in BW^1 b ∈ B W 1 has the pairAppears property if for every substring σ i ‾ σ j ‾ \overline{\sigma_i}\overline{\sigma_j} σ i σ j appearing in s 1 ( b ) s^1(b) s 1 ( b ) , σ i ‾ σ j ‾ \overline{\sigma_i}\overline{\sigma_j} σ i σ j is a substring of b b b .
This is not quite enough to define the desired property. For example, the string σ 1 ‾ 1 ‾ σ 2 ‾ 1 ‾ σ 1 ‾ σ 2 ‾ \overline{\sigma_1}\overline{1}\overline{\sigma_2}\overline{1}\overline{\sigma_1}\overline{\sigma_2} σ 1 1 σ 2 1 σ 1 σ 2 satisfies pairAppears, but the first occurrence of σ 1 ‾ σ 2 ‾ \overline{\sigma_1}\overline{\sigma_2} σ 1 σ 2 remains separated by a 1 ‾ \overline{1} 1 . We define a stronger condition based on pairAppears as follows:
Definition 6.23. An element b ∈ B W 1 b \in BW^1 b ∈ B W 1 has the pairsTogether property if every substring of b b b satisfies pairAppears.
Showing that an augmented braid word is trivially-irreducible is an easy way to show that it satisfies pairsTogether, thanks to the following theorem:
Theorem 6.24. Any trivially-irreducible b ∈ B W 1 b \in BW^1 b ∈ B W 1 satisfies pairsTogether
Proof. (Sketch) We show that any irreducible b b b satisfies pairAppears by induction on the length of b b b , and then casework on its first and second elements. Then we quickly show that any subword of a trivially-irreducible word is itself trivially-irreducible, and combine this fact with the definition of pairsTogether to obtain our conclusion.
Note that pairsTogether is strictly weaker than trivial irreducibility. For example, σ 2 σ ˉ 1 \sigma_2\bar{\sigma}_1 σ 2 σ ˉ 1 satisfies pairsTogether vacuously, but is not trivially-irreducible.
We give two specific lemmas about open-pair infixes of trivially-irreducible strings, which will be used for the proof of Theorem 6.14 :
Lemma 6.25. Let w ∈ B W 1 w \in BW^1 w ∈ B W 1 be trivially-irreducible, and assume s 1 ( w ) s^1(w) s 1 ( w ) has an infix of the form σ ˉ i σ j \bar{\sigma}_i\sigma_j σ ˉ i σ j —more specifically, assume s 1 ( w ) = c σ ˉ i σ j d s^1(w)=c\bar{\sigma}_i\sigma_jd s 1 ( w ) = c σ ˉ i σ j d for c , d ∈ B W 1 c,d \in BW^1 c , d ∈ B W 1 . Then there exist w 1 , w 2 ∈ B W 1 w_1,w_2 \in BW^1 w 1 , w 2 ∈ B W 1 such that w = w 1 σ ˉ i σ j w 2 w=w_1\bar{\sigma}_i\sigma_jw_2 w = w 1 σ ˉ i σ j w 2 , c = s 1 ( w 1 ) c=s^1(w_1) c = s 1 ( w 1 ) , and d = s 1 ( w 2 ) d=s^1(w_2) d = s 1 ( w 2 ) .
Proof. (sketch) The proof proceeds by stacking induction on w w w with lemmas also proved by induction on w w w (for example, a lemma where “infix” is replaced by “prefix”), and critically relies on the trivial-irreducibility of w w w . Otherwise, we would only know that there exist w 1 , w 2 , w m ∈ B W 1 w_1,w_2,w_m \in BW^1 w 1 , w 2 , w m ∈ B W 1 such that w = w 1 w m w 2 w=w_1w_mw_2 w = w 1 w m w 2 with s 1 ( w m ) = σ ˉ i σ j s^1(w_m)=\bar{\sigma}_i\sigma_j s 1 ( w m ) = σ ˉ i σ j .
Lemma 6.26. Given trivially-irreducible a , b ∈ B W 1 a,b \in BW^1 a , b ∈ B W 1 and any c , d ∈ B W c,d \in BW c , d ∈ B W , if s 1 ( a ) σ ˉ i σ j s 1 ( b ) = c σ ˉ i σ j d s^1(a)\bar{\sigma}_i\sigma_js^1(b)=c\bar{\sigma}_i\sigma_jd s 1 ( a ) σ ˉ i σ j s 1 ( b ) = c σ ˉ i σ j d , then we have one of the following three cases, depending on if c c c is equal to, longer than, or shorter than s 1 ( a ) s^1(a) s 1 ( a ) :
Table 1.
Case 2: We have b 1 , b 2 ∈ B W 1 b_1,b_2 \in BW^1 b 1 , b 2 ∈ B W 1 such that b = b 1 σ ˉ i σ j b 2 b=b_1\bar{\sigma}_i\sigma_jb_2 b = b 1 σ ˉ i σ j b 2 , c = s 1 ( a ) σ ˉ i σ j s 1 ( b 1 ) c=s^1(a)\bar{\sigma}_i\sigma_js^1(b_1) c = s 1 ( a ) σ ˉ i σ j s 1 ( b 1 ) , and d = s 1 ( b 2 ) d=s^1(b_2) d = s 1 ( b 2 ) .
Table 2.
Case 3: We have a 1 , a 2 ∈ B W 1 a_1,a_2 \in BW^1 a 1 , a 2 ∈ B W 1 such that a = a 1 σ ˉ i σ j a 2 a=a_1\bar{\sigma}_i\sigma_ja_2 a = a 1 σ ˉ i σ j a 2 , c = s 1 ( a 1 ) c=s^1(a_1) c = s 1 ( a 1 ) , and d = s 1 ( a 2 ) σ ˉ i σ j s 1 ( b ) d=s^1(a_2)\bar{\sigma}_i\sigma_js^1(b) d = s 1 ( a 2 ) σ ˉ i σ j s 1 ( b ) .
Table 3.
Proof. (sketch) Because σ ˉ i ≠ σ j \bar{\sigma}_i \ne\sigma_j σ ˉ i = σ j , we know c c c cannot have length s 1 ( a ) ± 1 s^1(a) \pm1 s 1 ( a ) ± 1 . This reduces our possible cases from five to three. Within each case, Lemma 6.25 does the majority of the work.
With the necessary machinery set up, we prove a generalization of Theorem 6.14 .
Theorem 6.27. Given a , b ∈ B W a,b \in BW a , b ∈ B W , if a → ∗ R r e v b a \xrightarrow{*}_{R_{\mathrm{rev}}} b a ∗ R rev b then there exists a trivially-irreducible g ∈ B W 1 g \in BW^{1} g ∈ B W 1 such that i 1 ( a ) → ∗ R r e v g i^{1}(a) \xrightarrow{*}_{R_{\mathrm{rev}}} g i 1 ( a ) ∗ R rev g and s 1 ( g ) = b s^{1}(g)=b s 1 ( g ) = b .
Proof. Assume a → ∗ R r e v b a \xrightarrow{*}_{R_{\mathrm{rev}}} b a ∗ R rev b . Thus, a → R r e v b a \xrightarrow{}_{R_{\mathrm{rev}}} b a R rev b . We proceed by induction on that derivation.
Reflexivity: In this case, a = b a=b a = b . Let g = i 1 ( b ) g=i^{1}(b) g = i 1 ( b ) . Then we have i 1 ( a ) → ∗ R g r i d i 1 ( b ) i^{1}(a) \xrightarrow{*}_{R_{\mathrm{grid}}} i^{1}(b) i 1 ( a ) ∗ R grid i 1 ( b ) by reflexivity. By Lemma 6.11, i 1 ( b ) i^{1}(b) i 1 ( b ) is trivially-irreducible, and by Lemma 6.7 s 1 ( i 1 ( b ) ) = b s^{1}(i^{1}(b))=b s 1 ( i 1 ( b )) = b .
Transitive one-step reduction: In this case, we have c , d , x , y ∈ B W c,d,x,y \in BW c , d , x , y ∈ B W such that a → R r e v c x d a \xrightarrow{}_{R_{\mathrm{rev}}} cxd a R rev c x d , R r e v ( x , y ) R_{\mathrm{rev}}(x,y) R rev ( x , y ) , and b = c y d b=cyd b = cy d . Our inductive hypothesis states that there is some trivially-irreducible e ∈ B W 1 e \in BW^{1} e ∈ B W 1 such that i 1 ( a ) → R g r i d e i^{1}(a) \xrightarrow{}_{R_{\mathrm{grid}}} e i 1 ( a ) R grid e and s 1 ( e ) = c x d s^{1}(e)=cxd s 1 ( e ) = c x d .
As R r e v ( x , y ) R_{\mathrm{rev}}(x,y) R rev ( x , y ) , x = σ ‾ i σ ‾ j x=\overline{\sigma}_{i}\overline{\sigma}_{j} x = σ i σ j for some i i i and j j j ; moreover, there is some y ′ ∈ B W 1 y' \in BW^{1} y ′ ∈ B W 1 such that R g r i d ( x , y ′ ) R_{\mathrm{grid}}(x,y') R grid ( x , y ′ ) holds by Theorem 6.9 .
Thus, s 1 ( e ) = c σ ‾ i σ ‾ j d s^{1}(e)=c\overline{\sigma}_{i}\overline{\sigma}_{j}d s 1 ( e ) = c σ i σ j d . As e e e is trivially-irreducible, it satisfies pairsTogether by Theorem 6.24 . Hence σ ‾ i σ ‾ j \overline{\sigma}_{i}\overline{\sigma}_{j} σ i σ j is a substring of e e e . Let e = w σ ‾ i σ ‾ j t e=w\overline{\sigma}_{i}\overline{\sigma}_{j}t e = w σ i σ j t . Substituting this in to the equation at the start of the paragraph, s 1 ( w σ ‾ i σ ‾ j t ) = c σ ‾ i σ ‾ j d s^{1}(w\overline{\sigma}_{i}\overline{\sigma}_{j}t)=c\overline{\sigma}_{i}\overline{\sigma}_{j}d s 1 ( w σ i σ j t ) = c σ i σ j d . Simplifying, we obtain s 1 ( w ) σ ‾ i σ ‾ j s 1 ( t ) = c σ ‾ i σ ‾ j d s^{1}(w)\overline{\sigma}_{i}\overline{\sigma}_{j}s^{1}(t)=c\overline{\sigma}_{i}\overline{\sigma}_{j}d s 1 ( w ) σ i σ j s 1 ( t ) = c σ i σ j d . As w w w and t t t are both trivially-irreducible (being substrings of e e e ), by Lemma 6.26 we have the following three cases:
s 1 ( w ) = c s^{1}(w)=c s 1 ( w ) = c and s 1 ( t ) = d s^{1}(t)=d s 1 ( t ) = d . Let g = move_ones ( w + + y ′ + + t ) g=\texttt{move\_ones}(w\mathbin{++}y'\mathbin{++}t) g = move_ones ( w + + y ′ + + t ) . We know i 1 ( a ) → R g r i d w x t i^{1}(a)\xrightarrow{}_{R_{\mathrm{grid}}}wxt i 1 ( a ) R grid w x t , so since R g r i d ( x , y ′ ) R_{\mathrm{grid}}(x,y') R grid ( x , y ′ ) , i 1 ( a ) → R g r i d w y ′ t i^{1}(a)\xrightarrow{}_{R_{\mathrm{grid}}}wy't i 1 ( a ) R grid w y ′ t . Thus i 1 ( a ) → ∗ R g r i d w y ′ t i^{1}(a)\xrightarrow{*}_{R_{\mathrm{grid}}}wy't i 1 ( a ) ∗ R grid w y ′ t . By Theorem 6.19 , w y ′ t → ∗ R g r i d move_ones ( w + + y ′ + + t ) wy't\xrightarrow{*}_{R_{\mathrm{grid}}}\texttt{move\_ones}(w\mathbin{++}y'\mathbin{++}t) w y ′ t ∗ R grid move_ones ( w + + y ′ + + t ) . Then by transitivity, i 1 ( a ) → ∗ R g r i d move_ones ( w + + y ′ + + t ) i^{1}(a)\xrightarrow{*}_{R_{\mathrm{grid}}}\texttt{move\_ones}(w\mathbin{++}y'\mathbin{++}t) i 1 ( a ) ∗ R grid move_ones ( w + + y ′ + + t ) .
We thus have i 1 ( a ) → ∗ R g r i d g i^{1}(a)\xrightarrow{*}_{R_{\mathrm{grid}}}g i 1 ( a ) ∗ R grid g as desired. We know that g = move_ones ( w + + y ′ + + t ) g=\texttt{move\_ones}(w\mathbin{++}y'\mathbin{++}t) g = move_ones ( w + + y ′ + + t ) is trivially-irreducible by Theorem 6.21 . Lastly,
s 1 ( g ) = s 1 ( move_ones ( w + + y ′ + + t ) ) = s 1 ( w y ′ t ) (by Theorem 6.20) = s 1 ( w ) s 1 ( y ′ ) s 1 ( t ) = c ⋅ s 1 ( y ′ ) ⋅ d = c y d (by Theorem 6.9) = b \begin{aligned}
s^{1}(g) &= s^{1}(\texttt{move\_ones}(w\mathbin{++}y'\mathbin{++}t)) \\
&= s^{1}(wy't) && \text{(by Theorem 6.20)} \\
&= s^{1}(w)s^{1}(y')s^{1}(t) \\
&= c\cdot s^{1}(y')\cdot d \\
&= cyd && \text{(by Theorem 6.9)} \\
&= b
\end{aligned} s 1 ( g ) = s 1 ( move_ones ( w + + y ′ + + t )) = s 1 ( w y ′ t ) = s 1 ( w ) s 1 ( y ′ ) s 1 ( t ) = c ⋅ s 1 ( y ′ ) ⋅ d = cy d = b (by Theorem 6.20) (by Theorem 6.9) as desired
In this case, t = t 1 σ ‾ i σ ‾ j t 2 t=t_{1}\overline{\sigma}_{i}\overline{\sigma}_{j}t_{2} t = t 1 σ i σ j t 2 , c = s 1 ( w ) σ ‾ i σ ‾ j s 1 c=s^{1}(w)\overline{\sigma}_{i}\overline{\sigma}_{j}s^{1} c = s 1 ( w ) σ i σ j s 1 , and d = s 1 ( t 2 ) d=s^{1}(t_{2}) d = s 1 ( t 2 ) : We use move_ones ( w + + x + + t 1 + + y ′ + + t 2 ) \texttt{move\_ones}(w\mathbin{++}x\mathbin{++}t_{1}\mathbin{++}y'\mathbin{++}t_{2}) move_ones ( w + + x + + t 1 + + y ′ + + t 2 ) ; the proof proceeds from here analogously to that of the previous case.
Finally, we give the proof of Theorem 6.14 . Recall we must show that if a ˉ b ˉ → R r e v ∗ c ˉ d ˉ \bar{a}\bar{b} \xrightarrow{R_{\mathrm{rev}}^{*}} \bar{c}\bar{d} a ˉ b ˉ R rev ∗ c ˉ d ˉ , then there exist e , f ∈ B W 1 , + e,f \in BW^{1,+} e , f ∈ B W 1 , + such that i 1 ( a ˉ ) i 1 ( b ) → R g r i d ∗ e ˉ f ˉ i^{1}(\bar{a})i^{1}(b) \xrightarrow{R_{\mathrm{grid}}^{*}} \bar{e}\bar{f} i 1 ( a ˉ ) i 1 ( b ) R grid ∗ e ˉ f ˉ with s 1 ( e ) = c s^{1}(e)=c s 1 ( e ) = c and s 1 ( f ) = d s^{1}(f)=d s 1 ( f ) = d .
Proof. Let a , b , c , d ∈ B W + a,b,c,d \in BW^{+} a , b , c , d ∈ B W + . Assume a ˉ b ˉ → R r e v ∗ c ˉ d ˉ \bar{a}\bar{b} \xrightarrow{R_{\mathrm{rev}}^{*}} \bar{c}\bar{d} a ˉ b ˉ R rev ∗ c ˉ d ˉ . By Theorem 6.27 , there exists some trivially-irreducible g ∈ B W 1 g \in BW^{1} g ∈ B W 1 such that i 1 ( a ˉ b ˉ ) → R g r i d ∗ g i^{1}(\bar{a}\bar{b}) \xrightarrow{R_{\mathrm{grid}}^{*}} g i 1 ( a ˉ b ˉ ) R grid ∗ g and s 1 ( g ) = c ˉ d ˉ s^{1}(g)=\bar{c}\bar{d} s 1 ( g ) = c ˉ d ˉ . By Lemma 6.12, there exist positive e , f ∈ B W 1 e,f \in BW^{1} e , f ∈ B W 1 such that g = e ˉ f ˉ g=\bar{e}\bar{f} g = e ˉ f ˉ . Thus, i 1 ( a ˉ ) i 1 ( b ) → R g r i d ∗ e ˉ f ˉ i^{1}(\bar{a})i^{1}(b) \xrightarrow{R_{\mathrm{grid}}^{*}} \bar{e}\bar{f} i 1 ( a ˉ ) i 1 ( b ) R grid ∗ e ˉ f ˉ .
Moreover, note that s 1 ( g ) = s 1 ( e ˉ f ˉ ) = s 1 ( e ) s 1 ( f ˉ ) s^{1}(g)=s^{1}(\bar{e}\bar{f})=s^{1}(e)s^{1}(\bar{f}) s 1 ( g ) = s 1 ( e ˉ f ˉ ) = s 1 ( e ) s 1 ( f ˉ ) , and s 1 ( e ) s^{1}(e) s 1 ( e ) is positive and s 1 ( f ˉ ) s^{1}(\bar{f}) s 1 ( f ˉ ) negative. Thus, as s 1 ( e ) s 1 ( f ˉ ) = c ˉ d ˉ s^{1}(e)s^{1}(\bar{f})=\bar{c}\bar{d} s 1 ( e ) s 1 ( f ˉ ) = c ˉ d ˉ , we must have s 1 ( e ) = c s^{1}(e)=c s 1 ( e ) = c and s 1 ( f ˉ ) = d s^{1}(\bar{f})=d s 1 ( f ˉ ) = d as desired.
We now know that we may produce an R g r i d R_{\mathrm{grid}} R grid -derivation from an R r e v R_{\mathrm{rev}} R rev -derivation. We next connect this R g r i d R_{\mathrm{grid}} R grid -derivation to a grid under construction, towards our goal of building a grid ⟨ a , b , c , d ⟩ \langle a,b,c,d\rangle ⟨ a , b , c , d ⟩ .
Partial Grids
A partial grid generalizes the notion of a grid to include “unfinished” grids, which are missing cells in the bottom/right area. Let’s use the following as a motivating example:
Figure 19.
Partial grids will be defined as an inductive subset of ( B W 1 ) 5 (BW^{1})^{5} ( B W 1 ) 5 . Before we give the formal definition, here is an intuitive definition to keep in mind. We define a partial grid only by its “frame”: the left side (read upwards against its direction), top side, the bottom frontier (the section that runs straight along the bottom), the middle frontier (the zigzag-like portion in the middle, read from southwest to northeast with downwards-pointing arrows read upwards against their direction), and the right frontier (the section which runs down the far-right-hand side, read upwards against its direction). The frame of the above grid is given by the tuple ⟨ σ ˉ 1 σ ˉ 1 , σ 2 σ 2 , σ 2 σ 1 , σ ˉ 2 σ ˉ 1 σ ˉ 1 , 1 , 1 σ ˉ 1 , σ ˉ 2 σ ˉ 1 ⟩ \langle\bar{\sigma}_{1}\bar{\sigma}_{1},\sigma_{2}\sigma_{2},\sigma_{2}\sigma_{1},\bar{\sigma}_{2}\bar{\sigma}_{1}\bar{\sigma}_{1},1,1\bar{\sigma}_{1},\bar{\sigma}_{2}\bar{\sigma}_{1}\rangle ⟨ σ ˉ 1 σ ˉ 1 , σ 2 σ 2 , σ 2 σ 1 , σ ˉ 2 σ ˉ 1 σ ˉ 1 , 1 , 1 σ ˉ 1 , σ ˉ 2 σ ˉ 1 ⟩ , seen visually as
Figure 20.
In general, we read a partial grid as ⟨ a ˉ , b , c , m , d ˉ ⟩ \langle\bar{a}, b, c, m, \bar{d}\rangle ⟨ a ˉ , b , c , m , d ˉ ⟩ .
We draw a partial grid ⟨ a ˉ , b , c , m , d ˉ ⟩ \langle\bar{a}, b, c, m, \bar{d}\rangle ⟨ a ˉ , b , c , m , d ˉ ⟩ as
a ˉ → b ↓ d ˉ a ˉ → c ∼ m \begin{array}{c}
\bar{a}\ \ \xrightarrow{\ b\ }\ \ \downarrow\bar{d}\\[-2pt]
\phantom{\bar{a}}\xrightarrow{\ c\ }\ \sim m
\end{array} a ˉ b ↓ d ˉ a ˉ c ∼ m
. We will soon show that both a a a and d d d must be negative augmented braid words, so a ˉ \bar{a} a ˉ and d ˉ \bar{d} d ˉ are positive augmented braid words (no generators with overlines appear in them).
Often, we speak of the (total) frontier of a partial grid; this is the concatenation of the bottom frontier, middle frontier, and right frontier. In our example, it would be σ 1 σ 2 ⋅ σ ˉ 2 σ ˉ 1 σ ˉ 1 σ ˉ 1 σ 1 σ 2 σ ˉ 1 ⋅ σ ˉ 2 σ ˉ 1 \sigma_1\sigma_2\cdot\bar{\sigma}_2\bar{\sigma}_1\bar{\sigma}_1\bar{\sigma}_1\sigma_1\sigma_2\bar{\sigma}_1\cdot\bar{\sigma}_2\bar{\sigma}_1 σ 1 σ 2 ⋅ σ ˉ 2 σ ˉ 1 σ ˉ 1 σ ˉ 1 σ 1 σ 2 σ ˉ 1 ⋅ σ ˉ 2 σ ˉ 1 .
We now give a formal, inductive definition of the set of partial grids G P ⊂ ( B W 1 ) 5 G_P\subset(BW^1)^5 G P ⊂ ( B W 1 ) 5 . We provide diagrams to guide the reader’s intuition; they do not form part of the definition.
Definition 6.28. The set of partial grids G P G_P G P is the smallest subset of ( B W 1 ) 5 (BW^1)^5 ( B W 1 ) 5 satisfying
(a cell) : For any a , b , c , d ∈ B W 1 , + a,b,c,d\in BW^{1,+} a , b , c , d ∈ B W 1 , + , if ( a ˉ b , c ˉ d ˉ ) ∈ R g r i d (\bar{a}b,\bar{c}\bar{d})\in R_{\mathrm{grid}} ( a ˉ b , c ˉ d ˉ ) ∈ R grid , we have ⟨ a ˉ , b , c , ε , d ˉ ⟩ ∈ G P \langle\bar{a},b,c,\varepsilon,\bar{d}\rangle\in G_P ⟨ a ˉ , b , c , ε , d ˉ ⟩ ∈ G P
Visually,
a ˉ → b ↓ d ˉ a ˉ → c \begin{array}{c}
\bar{a}\ \ \xrightarrow{\ b\ }\ \ \downarrow\bar{d}\\[-2pt]
\phantom{\bar{a}}\xrightarrow{\ c\ }
\end{array} a ˉ b ↓ d ˉ a ˉ c
(a spine) : For any a , b ∈ B W 1 , + ∖ { ε } a,b\in BW^{1,+}\setminus\{\varepsilon\} a , b ∈ B W 1 , + ∖ { ε } , ⟨ a ˉ , b , ε , a ˉ b , ε ⟩ ∈ G P \langle\bar{a},b,\varepsilon,\bar{a}b,\varepsilon\rangle\in G_P ⟨ a ˉ , b , ε , a ˉ b , ε ⟩ ∈ G P
Visually,
a ˉ → b \begin{array}{c}
\bar{a}\ \ \xrightarrow{\ b\ }
\end{array} a ˉ b
for non-empty a a a and $b
a ˉ 1 → b 1 ↓ d ˉ 1 d ˉ 1 → b 2 ↓ d ˉ 2 a ˉ 1 → b 1 ⋅ b 2 ↓ d ˉ 2 a ˉ 1 → c 1 d ˉ 1 → c 2 ∼ m 2 a ˉ 1 → c 1 ⋅ c 2 ∼ m 2 \begin{array}{ccc}
\bar{a}_1\ \xrightarrow{\ b_1\ }\ \downarrow\bar{d}_1
&
\bar{d}_1\ \xrightarrow{\ b_2\ }\ \downarrow\bar{d}_2
&
\bar{a}_1\ \xrightarrow{\ b_1\cdot b_2\ }\ \downarrow\bar{d}_2\\
\phantom{\bar{a}_1}\xrightarrow{\ c_1\ }\ &
\phantom{\bar{d}_1}\xrightarrow{\ c_2\ }\ \sim m_2
&
\phantom{\bar{a}_1}\xrightarrow{\ c_1\cdot c_2\ }\ \sim m_2
\end{array} a ˉ 1 b 1 ↓ d ˉ 1 a ˉ 1 c 1 d ˉ 1 b 2 ↓ d ˉ 2 d ˉ 1 c 2 ∼ m 2 a ˉ 1 b 1 ⋅ b 2 ↓ d ˉ 2 a ˉ 1 c 1 ⋅ c 2 ∼ m 2
Given ⟨ a ˉ 1 , b 1 , c 1 , ε , d ˉ 1 ⟩ ∈ G P \langle\bar{a}_1,b_1,c_1,\varepsilon,\bar{d}_1\rangle\in G_P ⟨ a ˉ 1 , b 1 , c 1 , ε , d ˉ 1 ⟩ ∈ G P and ⟨ d ˉ 1 , b 2 , c 2 , m 2 , d ˉ 2 ⟩ ∈ G P \langle\bar{d}_1,b_2,c_2,m_2,\bar{d}_2\rangle\in G_P ⟨ d ˉ 1 , b 2 , c 2 , m 2 , d ˉ 2 ⟩ ∈ G P , we have ⟨ a ˉ 1 , b 1 ⋅ b 2 , c 1 ⋅ c 2 , m 2 , d ˉ 2 ⟩ ∈ G P \langle\bar{a}_1,b_1\cdot b_2,c_1\cdot c_2,m_2,\bar{d}_2\rangle\in G_P ⟨ a ˉ 1 , b 1 ⋅ b 2 , c 1 ⋅ c 2 , m 2 , d ˉ 2 ⟩ ∈ G P .
a ˉ 1 → b 1 ↓ d ˉ 1 d ˉ 1 → b 2 ↓ d ˉ 2 a ˉ 1 → b 1 ⋅ b 2 ↓ d ˉ 2 a ˉ 1 → c 1 ∼ m 1 d ˉ 1 → c 2 ∼ m 2 a ˉ 1 → c 1 ∼ m 1 ⋅ c 2 ⋅ m 2 \begin{array}{ccc}
\bar{a}_1\ \xrightarrow{\ b_1\ }\ \downarrow\bar{d}_1
&
\bar{d}_1\ \xrightarrow{\ b_2\ }\ \downarrow\bar{d}_2
&
\bar{a}_1\ \xrightarrow{\ b_1\cdot b_2\ }\ \downarrow\bar{d}_2\\
\phantom{\bar{a}_1}\xrightarrow{\ c_1\ }\ \sim m_1
&
\phantom{\bar{d}_1}\xrightarrow{\ c_2\ }\ \sim m_2
&
\phantom{\bar{a}_1}\xrightarrow{\ c_1\ }\ \sim m_1\cdot c_2\cdot m_2
\end{array} a ˉ 1 b 1 ↓ d ˉ 1 a ˉ 1 c 1 ∼ m 1 d ˉ 1 b 2 ↓ d ˉ 2 d ˉ 1 c 2 ∼ m 2 a ˉ 1 b 1 ⋅ b 2 ↓ d ˉ 2 a ˉ 1 c 1 ∼ m 1 ⋅ c 2 ⋅ m 2
Given ⟨ a 1 , b 1 , c 1 , m 1 , d 1 ⟩ ∈ G P \langle a_1,b_1,c_1,m_1,d_1\rangle\in G_P ⟨ a 1 , b 1 , c 1 , m 1 , d 1 ⟩ ∈ G P and ⟨ d 1 , b 2 , c 2 , m 2 , d 2 ⟩ ∈ G P \langle d_1,b_2,c_2,m_2,d_2\rangle\in G_P ⟨ d 1 , b 2 , c 2 , m 2 , d 2 ⟩ ∈ G P , we have ⟨ a 1 , b 1 ⋅ b 2 , c 1 , m 1 ⋅ c 2 ⋅ m 2 , d 2 ⟩ ∈ G P \langle a_1,b_1\cdot b_2,c_1,m_1\cdot c_2\cdot m_2,d_2\rangle\in G_P ⟨ a 1 , b 1 ⋅ b 2 , c 1 , m 1 ⋅ c 2 ⋅ m 2 , d 2 ⟩ ∈ G P .
a 1 ‾ ↓ d 1 ‾ ↓ ⟶ b 1 a 1 ‾ c 1 ⟶ a 2 ‾ ↓ d 2 ‾ ↓ ⟶ c 2 ↗ m 2 becomes ⟶ b 1 ↓ d 2 ⋅ d 1 ‾ ⟶ c 2 ↗ m 2 \begin{array}{c}
\overline{a_1}\quad\downarrow\qquad\overline{d_1}\quad\downarrow\\
\longrightarrow b_1 \\
\overline{\phantom{a_1}}\quad c_1\quad\longrightarrow\\
\overline{a_2}\quad\downarrow\qquad\overline{d_2}\quad\downarrow\\
\longrightarrow c_2\qquad\nearrow m_2
\end{array}
\qquad\text{becomes}\qquad
\begin{array}{c}
\longrightarrow b_1\\
\downarrow\qquad\overline{d_2\cdot d_1}\\
\longrightarrow c_2\qquad\nearrow m_2
\end{array} a 1 ↓ d 1 ↓ ⟶ b 1 a 1 c 1 ⟶ a 2 ↓ d 2 ↓ ⟶ c 2 ↗ m 2 becomes ⟶ b 1 ↓ d 2 ⋅ d 1 ⟶ c 2 ↗ m 2
Given ⟨ a 1 , b 1 , c 1 , ε , d 1 ⟩ ∈ G P \langle a_1,b_1,c_1,\varepsilon,d_1\rangle\in G_P ⟨ a 1 , b 1 , c 1 , ε , d 1 ⟩ ∈ G P and ⟨ a 2 , c 1 , c 2 , m 2 , d 2 ⟩ ∈ G P \langle a_2,c_1,c_2,m_2,d_2\rangle\in G_P ⟨ a 2 , c 1 , c 2 , m 2 , d 2 ⟩ ∈ G P , we have ⟨ a 2 ⋅ a 1 , b 1 , c 2 , m 2 , d 2 ⋅ d 1 ⟩ ∈ G P \langle a_2\cdot a_1,b_1,c_2,m_2,d_2\cdot d_1\rangle\in G_P ⟨ a 2 ⋅ a 1 , b 1 , c 2 , m 2 , d 2 ⋅ d 1 ⟩ ∈ G P . Note the order of the first element and the final element: a 2 ⋅ a 1 a_2\cdot a_1 a 2 ⋅ a 1 and d 2 ⋅ d 1 d_2\cdot d_1 d 2 ⋅ d 1 . We are reading against the direction of the arrow on the vertical side of the partial grid, so the order is flipped.
(m 1 m_1 m 1 is non-empty):
a 1 ‾ ↓ d 1 ‾ ↓ ⟶ b 1 ↓ c 1 ⟶ m 1 a 2 ‾ ↓ d 2 ‾ ↓ ⟶ c 2 ↗ m 2 becomes ⟶ b 1 ↓ d 1 ‾ ↓ m 2 ⋅ d 2 ⋅ m 1 \begin{array}{c}
\overline{a_1}\quad\downarrow\qquad\overline{d_1}\quad\downarrow\\
\longrightarrow b_1\\
\phantom{\downarrow}\quad c_1\quad\longrightarrow\qquad m_1\\
\overline{a_2}\quad\downarrow\qquad\overline{d_2}\quad\downarrow\\
\longrightarrow c_2\qquad\nearrow m_2
\end{array}
\qquad\text{becomes}\qquad
\begin{array}{c}
\longrightarrow b_1\\
\downarrow\qquad\overline{d_1}\\
\phantom{\downarrow}\qquad m_2\cdot d_2\cdot m_1
\end{array} a 1 ↓ d 1 ↓ ⟶ b 1 ↓ c 1 ⟶ m 1 a 2 ↓ d 2 ↓ ⟶ c 2 ↗ m 2 becomes ⟶ b 1 ↓ d 1 ↓ m 2 ⋅ d 2 ⋅ m 1
Given ⟨ a 1 , b 1 , c 1 , m 1 , d 1 ⟩ ∈ G P \langle a_1,b_1,c_1,m_1,d_1\rangle\in G_P ⟨ a 1 , b 1 , c 1 , m 1 , d 1 ⟩ ∈ G P and ⟨ a 2 , c 1 , c 2 , m 2 , d 2 ⟩ ∈ G P \langle a_2,c_1,c_2,m_2,d_2\rangle\in G_P ⟨ a 2 , c 1 , c 2 , m 2 , d 2 ⟩ ∈ G P , we have ⟨ a 2 ⋅ a 1 , b 1 , c 2 , m 2 ⋅ d 2 ⋅ m 1 , d 1 ⟩ ∈ G P \langle a_2\cdot a_1,b_1,c_2,m_2\cdot d_2\cdot m_1,d_1\rangle\in G_P ⟨ a 2 ⋅ a 1 , b 1 , c 2 , m 2 ⋅ d 2 ⋅ m 1 , d 1 ⟩ ∈ G P .
Definition 6.29. The total frontier (often referred to as merely “the frontier”) of a partial grid ⟨ a , b , c , m , d ⟩ ∈ G P \langle a,b,c,m,d\rangle\in G_P ⟨ a , b , c , m , d ⟩ ∈ G P is c ⋅ m ⋅ d c\cdot m\cdot d c ⋅ m ⋅ d .
We continue with three short lemmas about partial grids, all shown by structural induction. While simple in theory, the number of cases grows rapidly.
Lemma 6.30. Consider some partial grid ⟨ a , b , c , m , d ⟩ ∈ G P \langle a,b,c,m,d\rangle\in G_P ⟨ a , b , c , m , d ⟩ ∈ G P . The left side (a a a ) and right frontier (d d d ) must be negative augmented braid words; the top side (b b b ) and bottom frontier (c c c ) must be positive augmented braid words.
Lemma 6.31. (Extending a partial grid’s spine) Consider a partial grid ⟨ a , b , c , m , d ⟩ \langle a,b,c,m,d\rangle ⟨ a , b , c , m , d ⟩ . For any non-empty negative augmented grid word a ′ a' a ′ there exists a partial grid ⟨ a ′ ⋅ a , b , ε , a ′ ⋅ c ⋅ m , d ⟩ \langle a'\cdot a,b,\varepsilon,a'\cdot c\cdot m,d\rangle ⟨ a ′ ⋅ a , b , ε , a ′ ⋅ c ⋅ m , d ⟩ . Visually,
For any non-empty positive augmented grid word b ′ b' b ′ , there exists a partial grid ⟨ a , b ⋅ b ′ , c , m ⋅ d ⋅ b ′ , ε ⟩ \langle a,b\cdot b',c,m\cdot d\cdot b',\varepsilon\rangle ⟨ a , b ⋅ b ′ , c , m ⋅ d ⋅ b ′ , ε ⟩ . Visually,
Figure 21 (PDF p. 48).
Figure 22 (PDF p. 48).
Lemma 6.32. The middle frontier of any partial grid is either empty or of the form α ˉ m ′ β \bar{\alpha}m'\beta α ˉ m ′ β for some letters α , β ∈ S 1 \alpha,\beta\in S^1 α , β ∈ S 1 and some m ′ ∈ B W 1 m' \in BW^1 m ′ ∈ B W 1 . Note that this is only true because we keep track of empty arrows in partial grids using B W 1 BW^1 B W 1 .
The following two theorems are not used in the proof of Theorem 6.3 , but are basic properties of partial grids, so we present them now.
First, we can reflect a partial grid along its top-left to bottom-right diagonal.
Theorem 6.33. (Reflecting) Given a partial grid ⟨ a , b , c , m , d ⟩ \langle a,b,c,m,d\rangle ⟨ a , b , c , m , d ⟩ , there is a partial grid ⟨ b ˉ , a ˉ , d ˉ , m ˉ , c ˉ ⟩ \langle\bar{b},\bar{a},\bar{d},\bar{m},\bar{c}\rangle ⟨ b ˉ , a ˉ , d ˉ , m ˉ , c ˉ ⟩ ,
Figure 23 (PDF p. 48).
This theorem shortens proofs significantly; for example, the second half of Lemma 6.31 becomes an immediate consequence of the first half. We also use this mirroring trick in the following theorem about splitting partial grids:
Theorem 6.34. (Vertical Splitting) Given p = ⟨ a , b 1 b 2 , c , m , d ⟩ ∈ G P p=\langle a,b_1b_2,c,m,d\rangle\in G_P p = ⟨ a , b 1 b 2 , c , m , d ⟩ ∈ G P with nonempty b 1 , b 2 b_1,b_2 b 1 , b 2 , we have either
p p p splits into two smaller partial grids p 1 = ⟨ a , b 1 , c 1 , m 1 , d 1 ⟩ ∈ G P p_1=\langle a,b_1,c_1,m_1,d_1\rangle\in G_P p 1 = ⟨ a , b 1 , c 1 , m 1 , d 1 ⟩ ∈ G P and p 2 = ⟨ d 1 , b 2 , c 2 , m 2 , d ⟩ ∈ G P p_2=\langle d_1,b_2,c_2,m_2,d\rangle\in G_P p 2 = ⟨ d 1 , b 2 , c 2 , m 2 , d ⟩ ∈ G P , with c ⋅ m = c 1 ⋅ m 1 ⋅ c 2 ⋅ m 2 c\cdot m=c_1\cdot m_1\cdot c_2\cdot m_2 c ⋅ m = c 1 ⋅ m 1 ⋅ c 2 ⋅ m 2 .
Figure 24 (PDF p. 48).
(note that c c c is not necessarily equal to c 1 c_1 c 1 , as m 1 m_1 m 1 could be empty, making c = c 1 c 2 c = c_1c_2 c = c 1 c 2 . d d d may be either empty or nonempty)
p p p splits into a smaller partial grid p 1 = ⟨ a , b 1 , c , m 1 , ε ⟩ ∈ G P p_1 = \langle a,b_1,c,m_1,\varepsilon\rangle\in G_P p 1 = ⟨ a , b 1 , c , m 1 , ε ⟩ ∈ G P and a tail b 2 b_2 b 2 , with m = m 1 ⋅ b 2 m = m_1 \cdot b_2 m = m 1 ⋅ b 2 . In this case, we must have d = ε d = \varepsilon d = ε , and so m ⋅ d = m 1 ⋅ b 2 m \cdot d = m_1 \cdot b_2 m ⋅ d = m 1 ⋅ b 2
The proof is by induction on p p p .
(Horizontal Splitting) We have the analogous property for a partial grid p ′ = ⟨ a 1 a 2 , b , c , m , d ⟩ p' = \langle a_1a_2,b,c,m,d\rangle p ′ = ⟨ a 1 a 2 , b , c , m , d ⟩ with nonempty a 1 , a 2 a_1,a_2 a 1 , a 2 . The proof reflects p ′ p' p ′ , splits it vertically, and reflects the result(s).
Building the Partial Grid
We next build a partial grid from an R g r i d R_{\mathrm{grid}} R grid -derivation. We may only do so when the derivation begins with a word in negative-positive form, as that will correspond to the spine of a partial grid.
Theorem 6.35. For nonempty a , b ∈ B W 1 − , + a,b \in BW_1^{-,+} a , b ∈ B W 1 − , + , if a b → R g r i d ∗ c ab \xrightarrow[R_{\mathrm{grid}}]{*} c ab ∗ R grid c , then there is a partial grid with spine ( a , b ) (a,b) ( a , b ) and frontier $c.
We begin by defining a function called add_cell which adds a single cell to a partial grid.
Definition 6.36. add_cell is a function taking in some ( x , y ) ∈ R g r i d (x,y) \in R_{\mathrm{grid}} ( x , y ) ∈ R grid and a partial grid P 1 = ⟨ a , b , c , m 1 ⋅ x ⋅ m 2 , d ⟩ P_1 = \langle a,b,c,m_1 \cdot x \cdot m_2,d\rangle P 1 = ⟨ a , b , c , m 1 ⋅ x ⋅ m 2 , d ⟩ , and returning a partial grid P 2 = ⟨ a , b , c ′ , m ′ , d ′ ⟩ P_2 = \langle a,b,c',m',d'\rangle P 2 = ⟨ a , b , c ′ , m ′ , d ′ ⟩ such that c ′ ⋅ m ′ ⋅ d ′ = c ⋅ m 1 ⋅ y ⋅ m 2 ⋅ d c' \cdot m' \cdot d' = c \cdot m_1 \cdot y \cdot m_2 \cdot d c ′ ⋅ m ′ ⋅ d ′ = c ⋅ m 1 ⋅ y ⋅ m 2 ⋅ d , c c c is a prefix of c ′ c' c ′ , and d d d is a suffix of d ′ d' d ′ . The final two specifications are used only internally to the definition. By contrast, the first of the specifications (that c ′ ⋅ m ′ ⋅ d ′ = c ⋅ m 1 ⋅ y ⋅ m 2 ⋅ d c' \cdot m' \cdot d' = c \cdot m_1 \cdot y \cdot m_2 \cdot d c ′ ⋅ m ′ ⋅ d ′ = c ⋅ m 1 ⋅ y ⋅ m 2 ⋅ d ) is both necessary for the definition and used externally for other theorems later in the project.
We define add_cell by recursion on P 1 P_1 P 1 .
a cell: This case would lead to a contradiction. Partial grids from the cell case have an empty middle frontier. As ( x , y ) ∈ R g r i d (x,y) \in R_{\mathrm{grid}} ( x , y ) ∈ R grid , x x x is not the empty string, so P 1 P_1 P 1 has a nonempty middle frontier.
a spine: Here c = d = ε c = d = \varepsilon c = d = ε and m 1 ⋅ x ⋅ m 2 = a b m_1 \cdot x \cdot m_2 = ab m 1 ⋅ x ⋅ m 2 = ab . First, note that as ( x , y ) ∈ R g r i d (x,y) \in R_{\mathrm{grid}} ( x , y ) ∈ R grid , there exist letters α , β , γ , δ ∈ S 1 \alpha,\beta,\gamma,\delta\in S^1 α , β , γ , δ ∈ S 1 such that x = α β x = \alpha\beta x = α β and y = γ δ y = \gamma\delta y = γ δ . Thus m 1 ⋅ α β ⋅ m 2 = a b m_1 \cdot\alpha\beta\cdot m_2 = ab m 1 ⋅ α β ⋅ m 2 = ab . As a a a is negative and b b b is positive (by Lemma 6.30), we must have a = m 1 α a = m_1\alpha a = m 1 α and b = β m 2 b = \beta m_2 b = β m 2 . As ( α β , γ δ ) ∈ R g r i d (\alpha\beta,\gamma\delta) \in R_{\mathrm{grid}} ( α β , γ δ ) ∈ R grid , we have P 3 = ⟨ α , β , γ , ε , δ ⟩ ∈ G P P_3 = \langle\alpha,\beta,\gamma,\varepsilon,\delta\rangle\in G_P P 3 = ⟨ α , β , γ , ε , δ ⟩ ∈ G P . Consider the case where neither m 1 m_1 m 1 nor m 2 m_2 m 2 is the empty string (we omit the other, simpler cases). By Lemma 6.31, we may extend the left side of P 3 P_3 P 3 to obtain a partial grid P 4 = ⟨ m 1 α , β , ε , m 1 γ , δ ⟩ P_4 = \langle m_1\alpha,\beta,\varepsilon,m_1\gamma,\delta\rangle P 4 = ⟨ m 1 α , β , ε , m 1 γ , δ ⟩ , and then the right side of P 4 P_4 P 4 to obtain a partial grid P 5 = ⟨ m 1 α , β m 2 , ε , m 1 γ δ m 2 , ε ⟩ P_5 = \langle m_1\alpha,\beta m_2,\varepsilon,m_1\gamma\delta m_2,\varepsilon\rangle P 5 = ⟨ m 1 α , β m 2 , ε , m 1 γ δ m 2 , ε ⟩ . Hence, we have a partial grid ⟨ a , b , c , m 1 ⋅ y ⋅ m 2 , d ⟩ \langle a,b,c,m_1 \cdot y \cdot m_2,d\rangle ⟨ a , b , c , m 1 ⋅ y ⋅ m 2 , d ⟩ as desired. The condition on the equality of the total frontier immediately holds. As c = d = ε c = d = \varepsilon c = d = ε is both a prefix and a suffix of any word, those two conditions are also fulfilled.
In this case, we have b = b 1 b 2 b = b_1b_2 b = b 1 b 2 , partial grids P 2 = ⟨ a , b 1 , c , n 1 , d 1 ⟩ P_2 = \langle a, b_1, c, n_1, d_1\rangle P 2 = ⟨ a , b 1 , c , n 1 , d 1 ⟩ and P 3 = ⟨ d 1 , b 2 , c 2 , n 2 , d ⟩ P_3 = \langle d_1, b_2, c_2, n_2, d\rangle P 3 = ⟨ d 1 , b 2 , c 2 , n 2 , d ⟩ , with n 1 ⋅ c 2 ⋅ n 2 = m 1 ⋅ x ⋅ m 2 n_1 \cdot c_2 \cdot n_2 = m_1 \cdot x \cdot m_2 n 1 ⋅ c 2 ⋅ n 2 = m 1 ⋅ x ⋅ m 2 . By properties of middle frontiers (Lemma 6.32), we know that either x x x is an infix of n 1 n_1 n 1 or of n 2 n_2 n 2 . Consider the first case, where we have n 1 = n 3 x n 4 n_1 = n_3xn_4 n 1 = n 3 x n 4 , m 1 = n 3 m_1 = n_3 m 1 = n 3 and m 2 = n 4 ⋅ c 2 ⋅ n 2 m_2 = n_4 \cdot c_2 \cdot n_2 m 2 = n 4 ⋅ c 2 ⋅ n 2 ; the other case is analogous.
Figure 1 (PDF p. 50).
Here, recursively call add_cell on P 2 P_2 P 2 to obtain a partial grid P 4 = ⟨ a , b 1 , c ′ , n ′ , d ′ ⟩ P_4 = \langle a, b_1, c', n', d'\rangle P 4 = ⟨ a , b 1 , c ′ , n ′ , d ′ ⟩ with c ′ ⋅ n ′ ⋅ d 1 ′ = c ⋅ n 3 ⋅ y ⋅ n 4 ⋅ d 1 c' \cdot n' \cdot d'_1 = c \cdot n_3 \cdot y \cdot n_4 \cdot d_1 c ′ ⋅ n ′ ⋅ d 1 ′ = c ⋅ n 3 ⋅ y ⋅ n 4 ⋅ d 1 , c c c a prefix of c ′ c' c ′ and d 1 d_1 d 1 a suffix of d 1 ′ d'_1 d 1 ′ . Since d 1 d_1 d 1 is a suffix of d 1 ′ d'_1 d 1 ′ , we know that there exists some d 2 d_2 d 2 such that d 1 ′ = d 1 d 2 d'_1 = d_1d_2 d 1 ′ = d 1 d 2 . We consider the case in which d 2 d_2 d 2 and n ′ n' n ′ are nonempty (the other cases are simpler).
Figure 2 (PDF p. 50).
We extend the left side of P 3 P_3 P 3 to obtain a partial grid P 5 = ⟨ d 1 ′ , b 2 , ε , d 2 c 2 n 2 , d ⟩ P_5 = \langle d'_1, b_2, \varepsilon, d_2c_2n_2, d\rangle P 5 = ⟨ d 1 ′ , b 2 , ε , d 2 c 2 n 2 , d ⟩ .
Next append P 4 P_4 P 4 and P 5 P_5 P 5 to obtain the desired partial grid P 6 = ⟨ a , b 1 b 2 , c ′ , n ′ d 2 c 2 n 2 , d ⟩ P_6 = \langle a, b_1b_2, c', n'd_2c_2n_2, d\rangle P 6 = ⟨ a , b 1 b 2 , c ′ , n ′ d 2 c 2 n 2 , d ⟩ .
Figure 25 (PDF p. 51).
To show that the first specification holds, we must show c ′ ⋅ n ′ ⋅ d 2 ⋅ c 2 ⋅ n 2 ⋅ d = c ⋅ m 1 ⋅ y ⋅ m 2 ⋅ d c' \cdot n' \cdot d_2 \cdot c_2 \cdot n_2 \cdot d = c \cdot m_1 \cdot y \cdot m_2 \cdot d c ′ ⋅ n ′ ⋅ d 2 ⋅ c 2 ⋅ n 2 ⋅ d = c ⋅ m 1 ⋅ y ⋅ m 2 ⋅ d . Recall that our inductive hypothesis gave us c ′ ⋅ n ′ ⋅ d 1 ′ = c ⋅ n 3 ⋅ y ⋅ n 4 ⋅ d c' \cdot n' \cdot d'_1 = c \cdot n_3 \cdot y \cdot n_4 \cdot d c ′ ⋅ n ′ ⋅ d 1 ′ = c ⋅ n 3 ⋅ y ⋅ n 4 ⋅ d . As d 1 ′ = d 2 ⋅ d 1 d'_1 = d_2 \cdot d_1 d 1 ′ = d 2 ⋅ d 1 , we have c ′ ⋅ n ′ ⋅ d 2 = c ⋅ n 3 ⋅ y ⋅ n 4 c' \cdot n' \cdot d_2 = c \cdot n_3 \cdot y \cdot n_4 c ′ ⋅ n ′ ⋅ d 2 = c ⋅ n 3 ⋅ y ⋅ n 4 . Appending c 2 ⋅ n 2 ⋅ d c_2 \cdot n_2 \cdot d c 2 ⋅ n 2 ⋅ d to both sides, we have c ′ ⋅ n ′ ⋅ d 2 ⋅ c 2 ⋅ n 2 ⋅ d = c ⋅ n 3 ⋅ y ⋅ n 4 ⋅ c 2 ⋅ n 2 ⋅ d c' \cdot n' \cdot d_2 \cdot c_2 \cdot n_2 \cdot d = c \cdot n_3 \cdot y \cdot n_4 \cdot c_2 \cdot n_2 \cdot d c ′ ⋅ n ′ ⋅ d 2 ⋅ c 2 ⋅ n 2 ⋅ d = c ⋅ n 3 ⋅ y ⋅ n 4 ⋅ c 2 ⋅ n 2 ⋅ d . In the case we have selected, we noted that m 1 = n 3 m_1 = n_3 m 1 = n 3 and m 2 = n 4 ⋅ c 2 ⋅ n 2 m_2 = n_4 \cdot c_2 \cdot n_2 m 2 = n 4 ⋅ c 2 ⋅ n 2 . Thus, c ′ ⋅ n ′ ⋅ d 2 ⋅ c 2 ⋅ n 2 ⋅ d = c ⋅ m 1 ⋅ y ⋅ m 2 ⋅ d c' \cdot n' \cdot d_2 \cdot c_2 \cdot n_2 \cdot d = c \cdot m_1 \cdot y \cdot m_2 \cdot d c ′ ⋅ n ′ ⋅ d 2 ⋅ c 2 ⋅ n 2 ⋅ d = c ⋅ m 1 ⋅ y ⋅ m 2 ⋅ d , as desired. For the final two conditions, the inductive hypothesis states that c c c is a prefix of c ′ c' c ′ , and d d d is immediately a suffix of d d d .
We are now prepared to prove Theorem 6.35 .
Proof. Consider nonempty, positive a , b ∈ B W 1 a,b \in BW^1 a , b ∈ B W 1 . Assume a b ‾ ⟶ R g r i d ∗ c \overline{ab} \mathrel{\mathop{\longrightarrow}\limits_{R_{\mathrm{grid}}}^{*}} c ab R grid ⟶ ∗ c . Thus a b ‾ ⟶ R g r i d c \overline{ab} \mathrel{\mathop{\longrightarrow}\limits_{R_{\mathrm{grid}}}} c ab R grid ⟶ c . We proceed by induction on this derivation.
reflexivity: In this case, we have c = a b ‾ c = \overline{ab} c = ab . Then we use the spinal partial grid given by a a a and b b b , ⟨ a ‾ , b , ε , a b ‾ , ε ⟩ \langle\overline{a}, b, \varepsilon, \overline{ab}, \varepsilon\rangle ⟨ a , b , ε , ab , ε ⟩ .
transitive one-step reduction: We assume that a b ‾ ⟶ R r e v d x e ‾ \overline{ab} \mathrel{\mathop{\longrightarrow}\limits_{R_{\mathrm{rev}}}} \overline{dxe} ab R rev ⟶ d x e , R r e v ( x , y ) R_{\mathrm{rev}}(x,y) R rev ( x , y ) , and c = d y e ‾ c = \overline{dye} c = d y e . Our inductive hypothesis states that there is a partial grid P 1 : = ⟨ a ‾ , b , c 1 , m 1 , d ‾ 1 ⟩ P_1 := \langle\overline{a}, b, c_1, m_1, \overline{d}_1 \rangle P 1 := ⟨ a , b , c 1 , m 1 , d 1 ⟩ with c 1 m 1 d ‾ 1 = d x e ‾ c_1m_1\overline{d}_1 = \overline{dxe} c 1 m 1 d 1 = d x e . We note that x x x must be an infix of m 1 m_1 m 1 , as x x x is in negative-positive form, while c 1 c_1 c 1 is positive and d ‾ 1 \overline{d}_1 d 1 negative. By the same reasoning, there exist m 2 , m 3 ∈ B W 1 m_2,m_3 \in BW^1 m 2 , m 3 ∈ B W 1 such that m 1 = m 2 x m 3 m_1 = m_2xm_3 m 1 = m 2 x m 3 , d ‾ = c 1 m 2 \overline{d} = c_1m_2 d = c 1 m 2 , and e = m 3 d ‾ 1 e = m_3\overline{d}_1 e = m 3 d 1 . We call add_cell with ( x , y ) (x,y) ( x , y ) and P 1 P_1 P 1 to obtain P 2 : = ⟨ a ‾ , b , c 1 , m 2 y m 3 , d ‾ 1 ⟩ P_2 := \langle\overline{a}, b, c_1, m_2ym_3, \overline{d}_1 \rangle P 2 := ⟨ a , b , c 1 , m 2 y m 3 , d 1 ⟩ . Then P 2 P_2 P 2 's frontier is c 1 m 2 y m 3 d ‾ 1 = d y e ‾ = c c_1m_2ym_3\overline{d}_1 = \overline{dye} = c c 1 m 2 y m 3 d 1 = d y e = c as desired.
Empty Middle Frontiers
Finally, we connect partial grids to grids by proving that a partial grid with empty middle frontier is in fact a grid.
Theorem 6.37. Given ⟨ a ‾ , b , c , ε , d ‾ ⟩ ∈ G P \langle\overline{a}, b, c, \varepsilon, \overline{d} \rangle\in G_P ⟨ a , b , c , ε , d ⟩ ∈ G P , we have ⟨ s 1 ( a ) , s 1 ( b ) , s 1 ( c ) , s 1 ( d ‾ ) ⟩ ∈ G \langle s^1(a),s^1(b),s^1(c),s^1(\overline{d}) \rangle\in G ⟨ s 1 ( a ) , s 1 ( b ) , s 1 ( c ) , s 1 ( d )⟩ ∈ G .
The proof is by induction on the given partial grid.
We next note that any partial grid whose total frontier is in positive-negative form has an empty middle frontier:
Lemma 6.38. If a partial grid has total frontier c ‾ d ‾ \overline{c}\overline{d} c d for some c , d ∈ B W 1 , + c,d \in BW^{1,+} c , d ∈ B W 1 , + , then it has bottom frontier c c c , middle frontier ε \varepsilon ε , and right frontier d ‾ \overline{d} d . (This is a consequence of Lemma 6.32)
Conclusion
We are now prepared to give a proof of the remaining half of Theorem 6.3 , restated as follows:
Theorem 6.39. For any a , b , c , d ∈ B W + a,b,c,d \in BW^{+} a , b , c , d ∈ B W + , if a b ‾ → R r e v ∗ c d ‾ \overline{ab} \xrightarrow{R_{\mathrm{rev}}}^{*} \overline{cd} ab R rev ∗ c d , then we have a grid ⟨ a , b , c , d ⟩ \langle a,b,c,d\rangle ⟨ a , b , c , d ⟩ .
Proof. Consider a , b , c , d ∈ B W + a,b,c,d \in BW^{+} a , b , c , d ∈ B W + . Assume a b ‾ → R r e v ∗ c d ‾ \overline{ab} \xrightarrow{R_{\mathrm{rev}}}^{*} \overline{cd} ab R rev ∗ c d . By Theorem 6.27 , we have e , f ∈ B W 1 , + e,f \in BW^{1,+} e , f ∈ B W 1 , + such that i 1 ( a ‾ ) i 1 ( b ) → R g r i d ∗ e f ‾ i^{1}(\overline{a})i^{1}(b) \xrightarrow{R_{\mathrm{grid}}}^{*} \overline{ef} i 1 ( a ) i 1 ( b ) R grid ∗ e f with s 1 ( e ) = c s^{1}(e)=c s 1 ( e ) = c and s 1 ( f ) = d s^{1}(f)=d s 1 ( f ) = d . By Theorem 6.35 , we have a partial grid P 1 P_{1} P 1 with spine ( i 1 ( a ‾ ) , i 1 ( b ) ) (i^{1}(\overline{a}),i^{1}(b)) ( i 1 ( a ) , i 1 ( b )) and total frontier e f ‾ \overline{ef} e f . By Lemma 6.38, we have P 1 = ⟨ i 1 ( a ‾ ) , i 1 ( b ) , e , ε , f ⟩ P_{1}=\langle i^{1}(\overline{a}),i^{1}(b),e,\varepsilon,f\rangle P 1 = ⟨ i 1 ( a ) , i 1 ( b ) , e , ε , f ⟩ . Finally, by Theorem 6.37, we have a grid ⟨ s 1 ( i 1 ( a ‾ ) ) , s 1 ( i 1 ( b ) ) , s 1 ( e ) , s 1 ( f ) ⟩ = ⟨ a , b , c , d ⟩ \left\langle s^{1}(i^{1}(\overline{a})),s^{1}(i^{1}(b)),s^{1}(e),s^{1}(f)\right\rangle=\langle a,b,c,d\rangle ⟨ s 1 ( i 1 ( a )) , s 1 ( i 1 ( b )) , s 1 ( e ) , s 1 ( f ) ⟩ = ⟨ a , b , c , d ⟩ as required.
Theorem 6.3 can be used to give new, visual proofs of previous results. For example, note that properties of cancellativity and common multiples (the Ore conditions) are used for existence and uniqueness of grids, and hence for the proof of Theorem 6.3 . Thus, grids essentially capture Ore localization for a small subset of braid words (for those pairs of braid words which are the source and target of some grid). We thus have a slick proof of the following:
Theorem 6.40. For any a , b , c , d ∈ B W + a,b,c,d \in BW^{+} a , b , c , d ∈ B W + , if a b ‾ → R r e v ∗ c d ‾ \overline{ab} \xrightarrow{R_{\mathrm{rev}}}^{*} \overline{cd} ab R rev ∗ c d , then a c ≡ + b d ac \equiv^{+} bd a c ≡ + b d .
Proof. Assume a b ‾ → R r e v ∗ c d ‾ \overline{ab} \xrightarrow{R_{\mathrm{rev}}}^{*} \overline{cd} ab R rev ∗ c d . Then by Theorem 6.3 , we have ⟨ a , b , c , d ⟩ ∈ G \langle a,b,c,d\rangle\in G ⟨ a , b , c , d ⟩ ∈ G . Hence by 5.4, a c ≡ + b d ac \equiv^{+} bd a c ≡ + b d .
Alternatively, we could have noted that since a b ‾ → R r e v ∗ c d ‾ \overline{ab} \xrightarrow{R_{\mathrm{rev}}}^{*} \overline{cd} ab R rev ∗ c d , a b ‾ ≡ c d ‾ \overline{ab} \equiv\overline{cd} ab ≡ c d . In other notation, a − 1 b ≡ c d − 1 a^{-1}b \equiv cd^{-1} a − 1 b ≡ c d − 1 , and thus a c ≡ b d ac \equiv bd a c ≡ b d . As a c ac a c and b d bd b d are both positive braid words, by Ore localization (Theorem 3.15 ), we know a c ≡ + b d ac \equiv^{+} bd a c ≡ + b d as desired.
Metrics
This chapter introduces metrics on grids, partial grids, and Semi-Thue derivations. In the Lean formalization, doing so requires us to distinguish between two ways in which an inductively defined mathematical object may be given: as a proposition asserting that the object exists, or as data recording how the object was constructed. A proposition in Lean has type Prop, while mathematical data lives in Type. To disambiguate the two, we begin by giving simple examples of Prop and Type.
Suppose that we have a predicate p : N → Prop p : \mathbb{N} \to\operatorname{Prop} p : N → Prop . The proposition “There exists an n n n such that p ( n ) p(n) p ( n ) holds” is written as ∃ n : N , p n \exists n : \mathbb{N}, p\ n ∃ n : N , p n , which has type Prop. A proof of this proposition establishes that some natural number satisfying p p p exists. We can discuss an arbitrary such number using Classical.choose to give it a name, and Classical.choose_spec to assert that p p p holds of said named number. This selection uses the axiom of choice; Classical.choose establishes that a suitable n n n exists, but does not provide a computable procedure for finding it. Thus, a definition whose value depends on Classical.choose is marked noncomputable.
The corresponding Type-valued concept is the subtype { n : N / / p n } \{n : \mathbb{N} \mathbin{//} p\ n\} { n : N // p n } . An element of this subtype, say x : { n : N / / p n } x : \{n : \mathbb{N} \mathbin{//} p\ n\} x : { n : N // p n } , consists of a particular natural number (x.val) with which we may compute, together with a proof that p p p (x.val) holds (called x.prop). For example, a computable function can return x.val + 2. We can prove specifications about said computable function using x.prop. This subtype can also be written as the Sigma type Σ ( n : N ) , p ( n ) \Sigma(n : \mathbb{N}), p(n) Σ ( n : N ) , p ( n ) , again of type Type. Often in this formalization, we ignore the style guidelines to use subtypes, and rather favor sigma types. In the Lean infoview, a Sigma type (unlike a subtype) will show the type of n n n explicitly, which is important when its type is complicated and requires rewriting to another form.
Now let us discuss the case of inductive definitions. If an inductive definition takes values in Prop, Lean remembers only that the corresponding proposition has been proved; the particular constructor tree used to prove it is not computational data. If instead the inductive definition takes values in Type, its constructors form data. Accordingly, we will pass from several of our earlier Prop-valued relations to closely related Type-valued versions whenever their construction sequence is needed to define a metric.
Why not simply make all our structures Type-valued from the beginning? Working with unneeded data is unwieldy. Thus, the Mathlib library is designed to be Prop-valued, so we cannot benefit from its extensive codebase when working with data (for example, we had to implement our own small data-carrying library of facts about prefixes and suffixes of lists). Similarly, many automated tactics, such as aesop and grind do not work on Type-valued objects. Thus, we work in Prop as much as possible, and only pass to Type when the data is absolutely necessary.
Grids
Currently, grids are Prop-valued in Lean. Saying that ⟨ a , b , c , d ⟩ ∈ G \langle a,b,c,d\rangle\in G ⟨ a , b , c , d ⟩ ∈ G means that there exists some method of using the constructors of G G G to form a grid with frame ⟨ a , b , c , d ⟩ \langle a,b,c,d\rangle ⟨ a , b , c , d ⟩ . Note that there can be multiple ways of arriving at the same frame:
b 1 b 2 a 1 → x d 1 a 2 → x d 2 c 1 c 2 and b 1 b 2 a 1 a 2 ↓ y ↓ d 1 d 2 c 1 c 2 are both b 1 b 2 a 1 a 2 ↓ d 1 d 2 c 1 c 2 \begin{array}{c}
\begin{array}{ccc}
& b_{1}b_{2} & \\
a_{1} & \xrightarrow{\phantom{x}} & d_{1}\\
a_{2} & \xrightarrow{\phantom{x}} & d_{2}\\
& c_{1}c_{2} &
\end{array}
\qquad\text{and}\qquad
\begin{array}{ccccc}
& b_{1} & & b_{2} & \\
a_{1}a_{2} & \downarrow& y & \downarrow& d_{1}d_{2}\\
& c_{1} & & c_{2} &
\end{array}
\qquad\text{are both}\qquad
\begin{array}{ccc}
& b_{1}b_{2} & \\
a_{1}a_{2} & \downarrow& d_{1}d_{2}\\
& c_{1}c_{2} &
\end{array}
\end{array} a 1 a 2 b 1 b 2 x x c 1 c 2 d 1 d 2 and a 1 a 2 b 1 ↓ c 1 y b 2 ↓ c 2 d 1 d 2 are both a 1 a 2 b 1 b 2 ↓ c 1 c 2 d 1 d 2
although they are constructed differently. In order to give a size metric on grids, we will need to track the data of how a given grid was constructed. It is entirely possible to give a definition of size which gives differing values for different construction sequences leading to the same frame. Our metric will provably give the same length to any pair of grids with matching sources and targets, but that is not the case for every metric. (In fact, I am not able to prove such a specification for the eventual size metric I will give on partial grids.)
We thus enhance our definition of grids as follows:
Definition 7.1. We define the set of grids with constructions G D G^{D} G D inductively 24 :
The set of constructions K K K is defined as the smallest set satisfying
trivial cell ∈ K \in K ∈ K
nontrivial cell ∈ K \in K ∈ K
horizontal ( g 1 , g 2 ) ∈ K (g_{1},g_{2}) \in K ( g 1 , g 2 ) ∈ K for g 1 , g 2 ∈ G D g_{1},g_{2} \in G^{D} g 1 , g 2 ∈ G D with appropriate bounds on the frames of g 1 g_{1} g 1 and g 2 g_{2} g 2 (that is, the fourth element of g 1 g_{1} g 1 equals the first element of g 2 g_{2} g 2 )
vertical ( g 1 , g 2 ) ∈ K (g_{1},g_{2}) \in K ( g 1 , g 2 ) ∈ K for g 1 , g 2 ∈ G D g_{1},g_{2} \in G^{D} g 1 , g 2 ∈ G D with appropriate bounds on the frames of g 1 g_{1} g 1 and g 2 g_{2} g 2 (that is, the third element of g 1 g_{1} g 1 equals the second element of g 2 g_{2} g 2 )
The set of grids with constructions G D G^{D} G D is defined as the smallest set satisfying
The trivial cells:
⟨ ε , ε , ε , ε , trivial cell ⟩ ∈ G D \langle\varepsilon,\varepsilon,\varepsilon,\varepsilon,\text{trivial cell}\rangle\in G^{D} ⟨ ε , ε , ε , ε , trivial cell ⟩ ∈ G D
The trivial cells25 :
⟨ ε , ε , ε , ε , trivial cell ⟩ ∈ G D \langle\varepsilon,\varepsilon,\varepsilon,\varepsilon,\text{trivial cell}\rangle\in G^D ⟨ ε , ε , ε , ε , trivial cell ⟩ ∈ G D
For any i ∈ N i \in\mathbb{N} i ∈ N , ⟨ σ i , ε , ε , σ i , trivial cell ⟩ ∈ G D \langle\sigma_i,\varepsilon,\varepsilon,\sigma_i,\text{trivial cell}\rangle\in G^D ⟨ σ i , ε , ε , σ i , trivial cell ⟩ ∈ G D
For any i ∈ N i \in\mathbb{N} i ∈ N , ⟨ ε , σ i , σ i , ε , trivial cell ⟩ ∈ G D \langle\varepsilon,\sigma_i,\sigma_i,\varepsilon,\text{trivial cell}\rangle\in G^D ⟨ ε , σ i , σ i , ε , trivial cell ⟩ ∈ G D
The nontrivial cells:
For any i ∈ N i \in\mathbb{N} i ∈ N , ⟨ σ i , σ i , ε , ε , nontrivial cell ⟩ ∈ G D \langle\sigma_i,\sigma_i,\varepsilon,\varepsilon,\text{nontrivial cell}\rangle\in G^D ⟨ σ i , σ i , ε , ε , nontrivial cell ⟩ ∈ G D
For i , j ∈ N i,j \in\mathbb{N} i , j ∈ N with ∣ i − j ∣ = 1 \lvert i-j\rvert=1 ∣ i − j ∣ = 1 , ⟨ σ j , σ i , σ i σ j , σ j σ i , nontrivial cell ⟩ ∈ G D \langle\sigma_j,\sigma_i,\sigma_i\sigma_j,\sigma_j\sigma_i,\text{nontrivial cell}\rangle\in G^D ⟨ σ j , σ i , σ i σ j , σ j σ i , nontrivial cell ⟩ ∈ G D .
For i , j ∈ N i,j \in\mathbb{N} i , j ∈ N with ∣ i − j ∣ > 1 \lvert i-j\rvert>1 ∣ i − j ∣ > 1 , ⟨ σ j , σ i , σ i , σ j , nontrivial cell ⟩ ∈ G D \langle\sigma_j,\sigma_i,\sigma_i,\sigma_j,\text{nontrivial cell}\rangle\in G^D ⟨ σ j , σ i , σ i , σ j , nontrivial cell ⟩ ∈ G D
Horizontal abutting: If g 1 = ⟨ a , b , c , d , κ 1 ⟩ g_1=\langle a,b,c,d,\kappa_1\rangle g 1 = ⟨ a , b , c , d , κ 1 ⟩ and g 2 = ⟨ d , e , f , g , κ 2 ⟩ g_2=\langle d,e,f,g,\kappa_2\rangle g 2 = ⟨ d , e , f , g , κ 2 ⟩ are elements of G D G^D G D , then ⟨ a , b e , c f , g , horizontal ( g 1 , g 2 ) ⟩ ∈ G D \langle a,be,cf,g,\operatorname{horizontal}(g_1,g_2)\rangle\in G^D ⟨ a , b e , c f , g , horizontal ( g 1 , g 2 )⟩ ∈ G D .
Visually,
b ⟶ e ⟶ a ↓ d ↓ g c ⟶ f ⟶ \begin{array}{ccccc}
& b & \longrightarrow& e & \longrightarrow\\
a & \downarrow& d & \downarrow& g \\
& c & \longrightarrow& f & \longrightarrow
\end{array} a b ↓ c ⟶ d ⟶ e ↓ f ⟶ g ⟶
Vertical abutting: If g 1 = ⟨ a , b , c , d , κ 1 ⟩ g_1=\langle a,b,c,d,\kappa_1\rangle g 1 = ⟨ a , b , c , d , κ 1 ⟩ and ⟨ e , c , f , g , κ 2 ⟩ \langle e,c,f,g,\kappa_2\rangle ⟨ e , c , f , g , κ 2 ⟩ are elements of G D G^D G D , then ⟨ a e , b , f , d g , vertical ( g 1 , g 2 ) ⟩ ∈ G D \langle ae,b,f,dg,\operatorname{vertical}(g_1,g_2)\rangle\in G^D ⟨ a e , b , f , d g , vertical ( g 1 , g 2 )⟩ ∈ G D .
Visually,
b ⟶ a ↓ d ↓ c ⟶ e ↓ g ↓ f ⟶ \begin{array}{ccc}
& b & \longrightarrow\\
a & \downarrow& d \downarrow\\
& c & \longrightarrow\\
e & \downarrow& g \downarrow\\
& f & \longrightarrow
\end{array} a e b ↓ c ↓ f ⟶ d ↓ ⟶ g ↓ ⟶
In Lean, this is handled entirely for us by switching out Prop (which asserts the proposition that we have some grid) to Type, which preserves the data of the grid’s construction.
inductive GridData : FreeMonoid ℕ → FreeMonoid ℕ → FreeMonoid ℕ → FreeMonoid ℕ
→ Type
It is immediate to delete the construction from a grid-with-construction and get a grid.
Theorem 7.2. If ⟨ a , b , c , d , κ ⟩ ∈ G D \langle a,b,c,d,\kappa\rangle\in G^D ⟨ a , b , c , d , κ ⟩ ∈ G D , then ⟨ a , b , c , d ⟩ ∈ G \langle a,b,c,d\rangle\in G ⟨ a , b , c , d ⟩ ∈ G .
For any i ∈ N i \in\mathbb{N} i ∈ N , ⟨ σ i , ε , ε , σ i , trivial cell ⟩ ∈ G D \langle\sigma_i,\varepsilon,\varepsilon,\sigma_i,\text{trivial cell}\rangle\in G^D ⟨ σ i , ε , ε , σ i , trivial cell ⟩ ∈ G D
For any i ∈ N i \in\mathbb{N} i ∈ N , ⟨ ε , σ i , σ i , ε , trivial cell ⟩ ∈ G D \langle\varepsilon,\sigma_i,\sigma_i,\varepsilon,\text{trivial cell}\rangle\in G^D ⟨ ε , σ i , σ i , ε , trivial cell ⟩ ∈ G D
The nontrivial cells:
For any i ∈ N i \in\mathbb{N} i ∈ N , ⟨ σ i , σ i , ε , ε , nontrivial cell ⟩ ∈ G D \langle\sigma_i,\sigma_i,\varepsilon,\varepsilon,\text{nontrivial cell}\rangle\in G^D ⟨ σ i , σ i , ε , ε , nontrivial cell ⟩ ∈ G D
For i , j ∈ N i,j \in\mathbb{N} i , j ∈ N with ∣ i − j ∣ = 1 \lvert i-j\rvert=1 ∣ i − j ∣ = 1 , ⟨ σ j , σ i , σ i σ j , σ j σ i , nontrivial cell ⟩ ∈ G D \langle\sigma_j,\sigma_i,\sigma_i\sigma_j,\sigma_j\sigma_i,\text{nontrivial cell}\rangle\in G^D ⟨ σ j , σ i , σ i σ j , σ j σ i , nontrivial cell ⟩ ∈ G D .
For i , j ∈ N i,j \in\mathbb{N} i , j ∈ N with ∣ i − j ∣ > 1 \lvert i-j\rvert>1 ∣ i − j ∣ > 1 , ⟨ σ j , σ i , σ i , σ j , nontrivial cell ⟩ ∈ G D \langle\sigma_j,\sigma_i,\sigma_i,\sigma_j,\text{nontrivial cell}\rangle\in G^D ⟨ σ j , σ i , σ i , σ j , nontrivial cell ⟩ ∈ G D
Horizontal abutting: Given a , b , c , d , e , f , g ∈ B W 1 , + a,b,c,d,e,f,g \in BW_{1,+} a , b , c , d , e , f , g ∈ B W 1 , + and κ 1 , κ 2 ∈ K \kappa_1,\kappa_2 \in K κ 1 , κ 2 ∈ K , if g 1 = ⟨ a , b , c , d , κ 1 ⟩ g_1=\langle a,b,c,d,\kappa_1\rangle g 1 = ⟨ a , b , c , d , κ 1 ⟩ and g 2 = ⟨ d , e , f , g , κ 2 ⟩ g_2=\langle d,e,f,g,\kappa_2\rangle g 2 = ⟨ d , e , f , g , κ 2 ⟩ are elements of G D G^D G D , then ⟨ a , b e , c f , g , horizontal ( g 1 , g 2 ) ⟩ ∈ G D \langle a,be,cf,g,\operatorname{horizontal}(g_1,g_2)\rangle\in G^D ⟨ a , b e , c f , g , horizontal ( g 1 , g 2 )⟩ ∈ G D .
Vertical abutting: Given a , b , c , d , e , f , g ∈ B W 1 , + a,b,c,d,e,f,g \in BW_{1,+} a , b , c , d , e , f , g ∈ B W 1 , + and κ 1 , κ 2 ∈ K \kappa_1,\kappa_2 \in K κ 1 , κ 2 ∈ K , if g 1 = ⟨ a , b , c , d , κ 1 ⟩ g_1=\langle a,b,c,d,\kappa_1\rangle g 1 = ⟨ a , b , c , d , κ 1 ⟩ and ⟨ e , c , f , g , κ 2 ⟩ \langle e,c,f,g,\kappa_2\rangle ⟨ e , c , f , g , κ 2 ⟩ are elements of G D G^D G D , then ⟨ a e , b , f , d g , vertical ( g 1 , g 2 ) ⟩ ∈ G D \langle ae,b,f,dg,\operatorname{vertical}(g_1,g_2)\rangle\in G^D ⟨ a e , b , f , d g , vertical ( g 1 , g 2 )⟩ ∈ G D .
def GridData.to_grid (h : GridData a b c d) : grid a b c d
Casting grids-with-constructions down to regular grids helps us convert many theorems (here, we show Theorem 5.4 and the Remark below Definition 5.5 ) as follows:
theorem braid_eq (h : GridData a b c d) : BraidMonoidInf.mk (a * c) =
BraidMonoidInf.mk (b * d) := Grid.braid_eq_of_grid (to_grid h)
theorem diag_length_eq (h : GridData a b c d) : a.length + c.length = b.length +
d.length := Grid.diag_length_eq (to_grid h)
Conversely, given a grid, we know that there must be at least one construction sequence giving that frame:
Theorem 7.3. If ⟨ a , b , c , d ⟩ ∈ G \langle a,b,c,d\rangle\in G ⟨ a , b , c , d ⟩ ∈ G , then there exists some κ \kappa κ such that ⟨ a , b , c , d , κ ⟩ ∈ G D \langle a,b,c,d,\kappa\rangle\in G^{D} ⟨ a , b , c , d , κ ⟩ ∈ G D .
Note that the existential quantifier on κ \kappa κ asserts that the set of construction sequences generating such a frame is nonempty. In Lean, Nonempty has the same meaning:
def GridData.of_grid (h : grid a b c d) : Nonempty (GridData a b c d)
Thus, any theorems about grids can be translated to grids-with-constructions.
We began with Prop-valued grids because of the Mathlib support, and only move to the Type-valued grids (grids-with-constructions) when necessary. That occurs when we define a metric on grids-with-constructions. The metric is intended to represent the number of nontrivial cells occurring in the grid.
Definition 7.4. Define a metric on grids-with-constructions ℓ G : G D → N \ell_{G} : G^{D} \to\mathbb{N} ℓ G : G D → N recursively as follows:
ℓ G ( ⟨ a , b , c , d , trivial cell ⟩ ) = 0 \ell_{G}(\langle a,b,c,d,\text{trivial cell}\rangle)=0 ℓ G (⟨ a , b , c , d , trivial cell ⟩) = 0
ℓ G ( ⟨ a , b , c , d , nontrivial cell ⟩ ) = 1 \ell_{G}(\langle a,b,c,d,\text{nontrivial cell}\rangle)=1 ℓ G (⟨ a , b , c , d , nontrivial cell ⟩) = 1
ℓ G ( ⟨ a , b , c , d , horizontal ( g 1 , g 2 ) ⟩ ) = ℓ G ( g 1 ) + ℓ G ( g 2 ) \ell_{G}(\langle a,b,c,d,\text{horizontal}(g_{1},g_{2})\rangle)=\ell_{G}(g_{1})+\ell_{G}(g_{2}) ℓ G (⟨ a , b , c , d , horizontal ( g 1 , g 2 )⟩) = ℓ G ( g 1 ) + ℓ G ( g 2 )
ℓ G ( ⟨ a , b , c , d , vertical ( g 1 , g 2 ) ⟩ ) = ℓ G ( g 1 ) + ℓ G ( g 2 ) \ell_{G}(\langle a,b,c,d,\text{vertical}(g_{1},g_{2})\rangle)=\ell_{G}(g_{1})+\ell_{G}(g_{2}) ℓ G (⟨ a , b , c , d , vertical ( g 1 , g 2 )⟩) = ℓ G ( g 1 ) + ℓ G ( g 2 )
We expand a number of theorems to discuss the grid size. For example, when splitting a grid, we show that the sum of the sizes of two new, smaller grids equals the size of the original grid. We run through the full proof of splittability given in Lemma 5.7 again, slightly augmented with facts about size, to obtain the following lemma:
Lemma 7.5. (Update to Lemma 5.7 ) Given G 0 = ⟨ a 1 a 2 , b , c , d , κ 0 ⟩ ∈ G G_{0}=\langle a_{1}a_{2},b,c,d,\kappa_{0}\rangle\in G G 0 = ⟨ a 1 a 2 , b , c , d , κ 0 ⟩ ∈ G , there exist grids G 1 = ⟨ a 1 , b , m , d 1 , κ 1 ⟩ G_{1}=\langle a_{1},b,m,d_{1},\kappa_{1}\rangle G 1 = ⟨ a 1 , b , m , d 1 , κ 1 ⟩ and G 2 = ⟨ a 2 , m , c , d 2 , κ 2 ⟩ G_{2}=\langle a_{2},m,c,d_{2},\kappa_{2}\rangle G 2 = ⟨ a 2 , m , c , d 2 , κ 2 ⟩ with d = d 1 d 2 d=d_{1}d_{2} d = d 1 d 2 and ℓ G ( G 0 ) = ℓ G ( G 1 ) + ℓ G ( G 2 ) \ell_{G}(G_{0})=\ell_{G}(G_{1})+\ell_{G}(G_{2}) ℓ G ( G 0 ) = ℓ G ( G 1 ) + ℓ G ( G 2 ) .
Similarly, given G 3 = ⟨ a , b 1 b 2 , c , d , κ 3 ⟩ ∈ G G_{3}=\langle a,b_{1}b_{2},c,d,\kappa_{3}\rangle\in G G 3 = ⟨ a , b 1 b 2 , c , d , κ 3 ⟩ ∈ G , there exist grids G 4 = ⟨ a , b 1 , c 1 , m , κ 4 ⟩ G_{4}=\langle a,b_{1},c_{1},m,\kappa_{4}\rangle G 4 = ⟨ a , b 1 , c 1 , m , κ 4 ⟩ and ⟨ m , b 2 , c 2 , d , κ 5 ⟩ \langle m,b_{2},c_{2},d,\kappa_{5}\rangle ⟨ m , b 2 , c 2 , d , κ 5 ⟩ with c = c 1 c 2 c=c_{1}c_{2} c = c 1 c 2 and ℓ G ( G 3 ) = ℓ G ( G 4 ) + ℓ G ( G 5 ) \ell_{G}(G_{3})=\ell_{G}(G_{4})+\ell_{G}(G_{5}) ℓ G ( G 3 ) = ℓ G ( G 4 ) + ℓ G ( G 5 ) .
Our main theorem is that the spine of a grid suffices to determine its length. We begin with a lemma discussing certain small cases:
Lemma 7.6. [Determinative Spines – Length] For a , b , c , d ∈ B W + a,b,c,d \in BW^{+} a , b , c , d ∈ B W + and i , j ∈ N i,j \in\mathbb{N} i , j ∈ N ,
If ⟨ ε , b , c , d ⟩ ∈ G \langle\varepsilon,b,c,d\rangle\in G ⟨ ε , b , c , d ⟩ ∈ G , then ℓ G ( ⟨ ε , b , c , d ⟩ ) = 0 \ell_{G}(\langle\varepsilon,b,c,d\rangle)=0 ℓ G (⟨ ε , b , c , d ⟩) = 0 .
If ⟨ a , ε , c , d ⟩ ∈ G \langle a,\varepsilon,c,d\rangle\in G ⟨ a , ε , c , d ⟩ ∈ G , then ℓ G ( ⟨ a , ε , c , d ⟩ ) = 0 \ell_{G}(\langle a,\varepsilon,c,d\rangle)=0 ℓ G (⟨ a , ε , c , d ⟩) = 0 .
If ⟨ a , a , c , d ⟩ ∈ G \langle a,a,c,d\rangle\in G ⟨ a , a , c , d ⟩ ∈ G , then ℓ G ( ⟨ a , a , c , d ⟩ ) = ∣ a ∣ \ell_{G}(\langle a,a,c,d\rangle)=|a| ℓ G (⟨ a , a , c , d ⟩) = ∣ a ∣ . Here, ∣ a ∣ |a| ∣ a ∣ is the length of the word a a a .
:::`
If ⟨ σ i , σ j , c , d ⟩ ∈ G \langle\sigma_i,\sigma_j,c,d\rangle\in G ⟨ σ i , σ j , c , d ⟩ ∈ G with ∣ i − j ∣ = 1 |i-j|=1 ∣ i − j ∣ = 1 , then ℓ G ( ⟨ σ i , σ j , c , d ⟩ ) = 1 \ell_G(\langle\sigma_i,\sigma_j,c,d\rangle)=1 ℓ G (⟨ σ i , σ j , c , d ⟩) = 1 .
If ⟨ σ i , σ j , c , d ⟩ ∈ G \langle\sigma_i,\sigma_j,c,d\rangle\in G ⟨ σ i , σ j , c , d ⟩ ∈ G with ∣ i − j ∣ > 1 |i-j|>1 ∣ i − j ∣ > 1 , then ℓ G ( ⟨ σ i , σ j , c , d ⟩ ) = 1 \ell_G(\langle\sigma_i,\sigma_j,c,d\rangle)=1 ℓ G (⟨ σ i , σ j , c , d ⟩) = 1 .
Now, thanks to uniqueness of grid spines (Theorem 5.9 ), we may show the full theorem.
Theorem 7.7. Given g 1 = ⟨ a , b , c , d , κ 1 ⟩ ∈ G D g_1=\langle a,b,c,d,\kappa_1\rangle\in G^D g 1 = ⟨ a , b , c , d , κ 1 ⟩ ∈ G D and g 2 = ⟨ a , b , e , f , κ 2 ⟩ ∈ G D g_2=\langle a,b,e,f,\kappa_2\rangle\in G^D g 2 = ⟨ a , b , e , f , κ 2 ⟩ ∈ G D , ℓ G ( g 1 ) = ℓ G ( g 2 ) \ell_G(g_1)=\ell_G(g_2) ℓ G ( g 1 ) = ℓ G ( g 2 ) .
Proof. (Sketch) We proceed by induction on g 1 g_1 g 1 . In the base cases where g 1 g_1 g 1 is a single cell, Lemma 7.6 allows us to conclude that g 2 g_2 g 2 has the same size as g 1 g_1 g 1 . We present the horizontal inductive case; the vertical inductive case is analogous.
Assume that g 1 = ⟨ a , b , c , d , horizontal ( g 3 , g 4 ) ⟩ g_1=\langle a,b,c,d,\operatorname{horizontal}(g_3,g_4)\rangle g 1 = ⟨ a , b , c , d , horizontal ( g 3 , g 4 )⟩ , with b = b 1 b 2 b=b_1b_2 b = b 1 b 2 , c = c 1 c 2 c=c_1c_2 c = c 1 c 2 , and g 3 = ⟨ a , b 1 , c 1 , m , κ 1 ⟩ g_3=\langle a,b_1,c_1,m,\kappa_1\rangle g 3 = ⟨ a , b 1 , c 1 , m , κ 1 ⟩ and g 4 = ⟨ m , b 2 , c 2 , d , κ 2 ⟩ g_4=\langle m,b_2,c_2,d,\kappa_2\rangle g 4 = ⟨ m , b 2 , c 2 , d , κ 2 ⟩ to which the inductive hypothesis applies. Thus, ℓ G ( g 1 ) = ℓ G ( g 3 ) + ℓ G ( g 4 ) \ell_G(g_1)=\ell_G(g_3)+\ell_G(g_4) ℓ G ( g 1 ) = ℓ G ( g 3 ) + ℓ G ( g 4 ) . Then we split g 2 g_2 g 2 to obtain g 5 = ⟨ a , b 1 , c 5 , d 5 , κ 1 ⟩ g_5=\langle a,b_1,c_5,d_5,\kappa_1\rangle g 5 = ⟨ a , b 1 , c 5 , d 5 , κ 1 ⟩ and g 6 = ⟨ d 5 , b 2 , c 6 , f , κ 2 ⟩ g_6=\langle d_5,b_2,c_6,f,\kappa_2\rangle g 6 = ⟨ d 5 , b 2 , c 6 , f , κ 2 ⟩ with ℓ G ( g 2 ) = ℓ G ( g 5 ) + ℓ G ( g 6 ) \ell_G(g_2)=\ell_G(g_5)+\ell_G(g_6) ℓ G ( g 2 ) = ℓ G ( g 5 ) + ℓ G ( g 6 ) . Uniqueness of (data-carrying) grid spines (Theorem 5.9 combined with Theorem 7.2 ) applied to g 3 g_3 g 3 and g 5 g_5 g 5 gives us c 5 = c 1 c_5=c_1 c 5 = c 1 and d 5 = m d_5=m d 5 = m , and so we may apply our induction hypothesis to those two to obtain ℓ G ( g 3 ) = ℓ G ( g 5 ) \ell_G(g_3)=\ell_G(g_5) ℓ G ( g 3 ) = ℓ G ( g 5 ) . Since d 5 = m d_5=m d 5 = m , g 6 = ⟨ m , b 2 , c 6 , f , κ 2 ⟩ g_6=\langle m,b_2,c_6,f,\kappa_2\rangle g 6 = ⟨ m , b 2 , c 6 , f , κ 2 ⟩ , and another application of Theorem 5.9 to g 4 g_4 g 4 and g 6 g_6 g 6 gives us c 6 = c 2 c_6=c_2 c 6 = c 2 . Finally, another application of our inductive hypothesis gives us ℓ G ( g 4 ) = ℓ G ( g 6 ) \ell_G(g_4)=\ell_G(g_6) ℓ G ( g 4 ) = ℓ G ( g 6 ) , which is sufficient to conclude.
We use the fact that the spine of a grid suffices to determine its size to inspire the following metric ℓ B \ell_B ℓ B on pairs of braid monoid words.
Definition 7.8. Given a , b ∈ B W + a,b\in BW^+ a , b ∈ B W + , we know by Theorem 5.16 and Theorem 7.3 that there exist c , d ∈ B W + c,d\in BW^+ c , d ∈ B W + and a construction κ \kappa κ such that g = ⟨ a , b , c , d , κ ⟩ ∈ G D g=\langle a,b,c,d,\kappa\rangle\in G^D g = ⟨ a , b , c , d , κ ⟩ ∈ G D . We define
ℓ B ( a , b ) : = ℓ G ( g ) . \ell_B(a,b):=\ell_G(g). ℓ B ( a , b ) := ℓ G ( g ) . This is well-defined independently of the choice of c c c , d d d , and κ \kappa κ by Theorem 7.7 .
In Lean, we take a slightly different approach to well-definedness. We have noncomputable GridData.existence (via Prop-valued grid existence and Theorem 7.3 ). We then use the axiom of choice to select such a grid to serve as g g g . We define ab_len to be the length of this selected grid. We do not use Theorem 7.7 and do not need to prove that our metric is independent of c c c , d d d , and κ \kappa κ . Eventually, when we use this metric, we will show that ℓ B \ell_B ℓ B is bounded in the desired manner for any c , d , κ c,d,\kappa c , d , κ , which will suffice in place of well-definedness. Furthermore, there is no issue with ℓ B \ell_B ℓ B being noncomputable – we can show termination of a computable algorithm via noncomputable termination metrics.
Partial Grids
We similarly update the definition of partial grids to track the data of their construction. In fact, throughout our Lean formalization we have used Type-valued partial grids. Unlike grids, where there were significant theorems not mentioning size (such as stability, Theorem 5.12 ), almost every theorem relating to partial grids discusses size. So we had little use for Prop-valued partial grids, and hence did not implement them. Therefore, the reader should view the following definition of G P G_P G P as the true definition, and look back upon Definition 6.28 as a simplified version. Thus, we do not need the clunky notation G P D G_P^D G P D .
Definition 7.9. (Update to Definition 6.28) We define the set of partial grids G P G_P G P as follows26 :
a trivial cell For any a , b , c , d ∈ B W 1 , + a,b,c,d \in BW^{1,+} a , b , c , d ∈ B W 1 , + , if ( a b ‾ , c d ‾ ) ∈ R t r i v i a l (\overline{ab},\overline{cd}) \in R_{\mathrm{trivial}} ( ab , c d ) ∈ R trivial , we have ⟨ a ‾ , b , c , ε , d ‾ , t r i v i a l c e l l ⟩ ∈ G P \langle\overline{a},b,c,\varepsilon,\overline{d},\mathrm{trivial\ cell}\rangle\in G_P ⟨ a , b , c , ε , d , trivial cell ⟩ ∈ G P
a nontrivial cell For any a , b , c , d ∈ B W 1 , + a,b,c,d \in BW^{1,+} a , b , c , d ∈ B W 1 , + , if ( a b ‾ , c d ‾ ) ∈ R n o n t r i v i a l (\overline{ab},\overline{cd}) \in R_{\mathrm{nontrivial}} ( ab , c d ) ∈ R nontrivial , we have ⟨ a ‾ , b , c , ε , d ‾ , n o n t r i v i a l c e l l ⟩ ∈ G P \langle\overline{a},b,c,\varepsilon,\overline{d},\mathrm{nontrivial\ cell}\rangle\in G_P ⟨ a , b , c , ε , d , nontrivial cell ⟩ ∈ G P
a spine For any a , b ∈ { B W 1 , + ∖ { ε } } a,b \in\{BW^{1,+}\setminus\{\varepsilon\}\} a , b ∈ { B W 1 , + ∖ { ε }} , ⟨ a ‾ , b , ε , a b ‾ , ε , s p i n e ⟩ ∈ G P \langle\overline{a},b,\varepsilon,\overline{ab},\varepsilon,\mathrm{spine}\rangle\in G_P ⟨ a , b , ε , ab , ε , spine ⟩ ∈ G P
horizontal concatenation to a partial grid with empty middle frontier :
Given partial grids g 1 = ⟨ a 1 , b 1 , c 1 , ε , d 1 , κ 1 ⟩ ∈ G P g_1=\langle a_1,b_1,c_1,\varepsilon,d_1,\kappa_1\rangle\in G_P g 1 = ⟨ a 1 , b 1 , c 1 , ε , d 1 , κ 1 ⟩ ∈ G P and g 2 = ⟨ d 1 , b 2 , c 2 , m 2 , d 2 , κ 2 ⟩ ∈ G P g_2=\langle d_1,b_2,c_2,m_2,d_2,\kappa_2\rangle\in G_P g 2 = ⟨ d 1 , b 2 , c 2 , m 2 , d 2 , κ 2 ⟩ ∈ G P , we have ⟨ a 1 , b 1 ⋅ b 2 , c 1 ⋅ c 2 , m 2 , d 2 , h o r i z o n t a l ε ( g 1 , g 2 ) ⟩ ∈ G P \langle a_1,b_1\cdot b_2,c_1\cdot c_2,m_2,d_2,\mathrm{horizontal}_{\varepsilon}(g_1,g_2)\rangle\in G_P ⟨ a 1 , b 1 ⋅ b 2 , c 1 ⋅ c 2 , m 2 , d 2 , horizontal ε ( g 1 , g 2 )⟩ ∈ G P .
horizontal concatenation to a partial grid with non-empty middle frontier (m 1 m_1 m 1 is non-empty):
Given g 1 = ⟨ a 1 , b 1 , c 1 , m 1 , d 1 , κ 1 ⟩ ∈ G P g_1=\langle a_1,b_1,c_1,m_1,d_1,\kappa_1\rangle\in G_P g 1 = ⟨ a 1 , b 1 , c 1 , m 1 , d 1 , κ 1 ⟩ ∈ G P and g 2 = ⟨ d 1 , b 2 , c 2 , m 2 , d 2 , κ 2 ⟩ ∈ G P g_2=\langle d_1,b_2,c_2,m_2,d_2,\kappa_2\rangle\in G_P g 2 = ⟨ d 1 , b 2 , c 2 , m 2 , d 2 , κ 2 ⟩ ∈ G P , we have ⟨ a 1 , b 1 ⋅ b 2 , c 1 , m 1 ⋅ c 2 ⋅ m 2 , d 2 , h o r i z o n t a l ( g 1 , g 2 ) ⟩ ∈ G P \langle a_1,b_1\cdot b_2,c_1,m_1\cdot c_2\cdot m_2,d_2,\mathrm{horizontal}(g_1,g_2)\rangle\in G_P ⟨ a 1 , b 1 ⋅ b 2 , c 1 , m 1 ⋅ c 2 ⋅ m 2 , d 2 , horizontal ( g 1 , g 2 )⟩ ∈ G P .
vertical concatenation to a partial grid with empty middle frontier :
Given g 1 = ⟨ a 1 , b 1 , c 1 , ε , d 1 , κ 1 ⟩ ∈ G P g_1=\langle a_1,b_1,c_1,\varepsilon,d_1,\kappa_1\rangle\in G_P g 1 = ⟨ a 1 , b 1 , c 1 , ε , d 1 , κ 1 ⟩ ∈ G P and ⟨ a 2 , c 1 , c 2 , m 2 , d 2 , κ 2 ⟩ ∈ G P \langle a_2,c_1,c_2,m_2,d_2,\kappa_2\rangle\in G_P ⟨ a 2 , c 1 , c 2 , m 2 , d 2 , κ 2 ⟩ ∈ G P , we have ⟨ a 2 ⋅ a 1 , b 1 , c 2 , m 2 , d 2 ⋅ d 1 , v e r t i c a l ε ( g 1 , g 2 ) ⟩ ∈ G P \langle a_2\cdot a_1,b_1,c_2,m_2,d_2\cdot d_1,\mathrm{vertical}_{\varepsilon}(g_1,g_2)\rangle\in G_P ⟨ a 2 ⋅ a 1 , b 1 , c 2 , m 2 , d 2 ⋅ d 1 , vertical ε ( g 1 , g 2 )⟩ ∈ G P .
vertical concatenation to a partial grid with non-empty middle frontier
Given ⟨ a 1 , b 1 , c 1 , m 1 , d 1 , κ 1 ⟩ ∈ G P \langle a_1,b_1,c_1,m_1,d_1,\kappa_1\rangle\in G_P ⟨ a 1 , b 1 , c 1 , m 1 , d 1 , κ 1 ⟩ ∈ G P and ⟨ a 2 , c 1 , c 2 , m 2 , d 2 , κ 2 ⟩ ∈ G P \langle a_2,c_1,c_2,m_2,d_2,\kappa_2\rangle\in G_P ⟨ a 2 , c 1 , c 2 , m 2 , d 2 , κ 2 ⟩ ∈ G P , we have ⟨ a 2 ⋅ a 1 , b 1 , c 2 , m 2 ⋅ d 2 ⋅ m 1 , d 1 , v e r t i c a l ( g 1 , g 2 ) ⟩ ∈ G P \langle a_2\cdot a_1,b_1,c_2,m_2\cdot d_2\cdot m_1,d_1,\mathrm{vertical}(g_1,g_2)\rangle\in G_P ⟨ a 2 ⋅ a 1 , b 1 , c 2 , m 2 ⋅ d 2 ⋅ m 1 , d 1 , vertical ( g 1 , g 2 )⟩ ∈ G P .
Definition 7.10. Define a metric on partial grids ℓ P \ell_P ℓ P by the following:
ℓ P ( ⟨ a , b , c , m , d , t r i v i a l c e l l ⟩ ) = 0 \ell_P(\langle a,b,c,m,d,\mathrm{trivial\ cell}\rangle)=0 ℓ P (⟨ a , b , c , m , d , trivial cell ⟩) = 0
ℓ P ( ⟨ a , b , c , m , d , n o n t r i v i a l c e l l ⟩ ) = 1 \ell_P(\langle a,b,c,m,d,\mathrm{nontrivial\ cell}\rangle)=1 ℓ P (⟨ a , b , c , m , d , nontrivial cell ⟩) = 1
ℓ P ( ⟨ a , b , c , m , d , s p i n e ⟩ ) = 0 \ell_P(\langle a,b,c,m,d,\mathrm{spine}\rangle)=0 ℓ P (⟨ a , b , c , m , d , spine ⟩) = 0
ℓ P ( ⟨ a , b , c , m , d , h o r i z o n t a l ε ( p 1 , p 2 ) ⟩ ) = ℓ P ( p 1 ) + ℓ P ( p 2 ) \ell_P(\langle a,b,c,m,d,\mathrm{horizontal}_{\varepsilon}(p_1,p_2)\rangle)=\ell_P(p_1)+\ell_P(p_2) ℓ P (⟨ a , b , c , m , d , horizontal ε ( p 1 , p 2 )⟩) = ℓ P ( p 1 ) + ℓ P ( p 2 )
ℓ P ( ⟨ a , b , c , m , d , h o r i z o n t a l ( p 1 , p 2 ) ⟩ ) = ℓ P ( p 1 ) + ℓ P ( p 2 ) \ell_P(\langle a,b,c,m,d,\mathrm{horizontal}(p_1,p_2)\rangle)=\ell_P(p_1)+\ell_P(p_2) ℓ P (⟨ a , b , c , m , d , horizontal ( p 1 , p 2 )⟩) = ℓ P ( p 1 ) + ℓ P ( p 2 )
ℓ P ( ⟨ a , b , c , m , d , v e r t i c a l ε ( p 1 , p 2 ) ⟩ ) = ℓ P ( p 1 ) + ℓ P ( p 2 ) \ell_P(\langle a,b,c,m,d,\mathrm{vertical}_{\varepsilon}(p_1,p_2)\rangle)=\ell_P(p_1)+\ell_P(p_2) ℓ P (⟨ a , b , c , m , d , vertical ε ( p 1 , p 2 )⟩) = ℓ P ( p 1 ) + ℓ P ( p 2 )
ℓ P ( ⟨ a , b , c , m , d , v e r t i c a l ( p 1 , p 2 ) ⟩ ) = ℓ P ( p 1 ) + ℓ P ( p 2 ) \ell_P(\langle a,b,c,m,d,\mathrm{vertical}(p_1,p_2)\rangle)=\ell_P(p_1)+\ell_P(p_2) ℓ P (⟨ a , b , c , m , d , vertical ( p 1 , p 2 )⟩) = ℓ P ( p 1 ) + ℓ P ( p 2 )
It is possible to extend a partial grid’s spine without affecting its size.
Lemma 7.11. (Update to Theorem Theorem 6.31) Consider a partial grid p = ⟨ a , b , c , m , d , κ ⟩ p=\langle a,b,c,m,d,\kappa\rangle p = ⟨ a , b , c , m , d , κ ⟩ . For any non-empty negative augmented grid word a ′ a' a ′ there exists a partial grid p 1 = ⟨ a ′ ⋅ a , b , ε , a ′ ⋅ c ⋅ m , d , κ 1 ⟩ p_1=\langle a'\cdot a,b,\varepsilon,a'\cdot c\cdot m,d,\kappa_1\rangle p 1 = ⟨ a ′ ⋅ a , b , ε , a ′ ⋅ c ⋅ m , d , κ 1 ⟩ such that ℓ P ( p ) = ℓ P ( p 1 ) \ell_P(p)=\ell_P(p_1) ℓ P ( p ) = ℓ P ( p 1 ) . For any non-empty positive augmented grid word b ′ b' b ′ , there exists a partial grid p 2 = ⟨ a , b ⋅ b ′ , c , m ⋅ d ⋅ b ′ , ε , κ 2 ⟩ p_2=\langle a,b\cdot b',c,m\cdot d\cdot b',\varepsilon,\kappa_2\rangle p 2 = ⟨ a , b ⋅ b ′ , c , m ⋅ d ⋅ b ′ , ε , κ 2 ⟩ such that ℓ P ( p ) = ℓ P ( p 2 ) \ell_P(p)=\ell_P(p_2) ℓ P ( p ) = ℓ P ( p 2 ) .
Splittability also behaves as we might expect in regard to the size of the resulting partial grids.
Theorem 7.12. (Update to Theorem Theorem 6.34) Given p = ⟨ a , b 1 b 2 , c , m , d ⟩ ∈ G P p=\langle a,b_1b_2,c,m,d\rangle\in G_P p = ⟨ a , b 1 b 2 , c , m , d ⟩ ∈ G P with nonempty b 1 , b 2 b_1,b_2 b 1 , b 2 , we have either
p p p splits into two smaller partial grids p 1 = ⟨ a , b 1 , c 1 , m 1 , d 1 ⟩ ∈ G P p_1=\langle a,b_1,c_1,m_1,d_1\rangle\in G_P p 1 = ⟨ a , b 1 , c 1 , m 1 , d 1 ⟩ ∈ G P and p 2 = ⟨ d 1 , b 2 , c 2 , m 2 , d ⟩ ∈ G P p_2=\langle d_1,b_2,c_2,m_2,d\rangle\in G_P p 2 = ⟨ d 1 , b 2 , c 2 , m 2 , d ⟩ ∈ G P , with c ⋅ m = c 1 ⋅ m 1 ⋅ c 2 ⋅ m 2 c\cdot m=c_1\cdot m_1\cdot c_2\cdot m_2 c ⋅ m = c 1 ⋅ m 1 ⋅ c 2 ⋅ m 2 , and ℓ P ( p ) = ℓ P ( p 1 ) + ℓ P ( p 2 ) \ell_P(p)=\ell_P(p_1)+\ell_P(p_2) ℓ P ( p ) = ℓ P ( p 1 ) + ℓ P ( p 2 ) .
p p p splits into a smaller partial grid p 1 = ⟨ a , b 1 , c , m 1 , ε ⟩ ∈ G P p_1 = \langle a,b_1,c,m_1,\varepsilon\rangle\in G_P p 1 = ⟨ a , b 1 , c , m 1 , ε ⟩ ∈ G P and a tail b 2 b_2 b 2 , with m = m 1 ⋅ b 2 m = m_1 \cdot b_2 m = m 1 ⋅ b 2 and ℓ P ( p ) = ℓ P ( p 1 ) \ell_P(p) = \ell_P(p_1) ℓ P ( p ) = ℓ P ( p 1 ) .
We update our add_cell function to add in a fact about the size of the resulting partial grid:
Definition 7.13. add_cell is a function taking in some ( x , y ) ∈ R g r i d (x,y) \in R_{\mathrm{grid}} ( x , y ) ∈ R grid and a partial grid p 1 = ⟨ a , b , c , m 1 ⋅ x ⋅ m 2 , d , κ 1 ⟩ p_1 = \langle a,b,c,m_1 \cdot x \cdot m_2,d,\kappa_1\rangle p 1 = ⟨ a , b , c , m 1 ⋅ x ⋅ m 2 , d , κ 1 ⟩ , and returning a partial grid p 2 = ⟨ a , b , c ′ , m ′ , d ′ , κ 2 ⟩ p_2 = \langle a,b,c',m',d',\kappa_2\rangle p 2 = ⟨ a , b , c ′ , m ′ , d ′ , κ 2 ⟩ where c ′ ⋅ m ′ ⋅ d ′ = c ⋅ m 1 ⋅ y ⋅ m 2 ⋅ d c' \cdot m' \cdot d' = c \cdot m_1 \cdot y \cdot m_2 \cdot d c ′ ⋅ m ′ ⋅ d ′ = c ⋅ m 1 ⋅ y ⋅ m 2 ⋅ d , c c c is a prefix of c ′ c' c ′ , d d d is a suffix of d ′ d' d ′ , and the following property holds: if ( x , y ) ∈ R t r i v (x,y) \in R_{\mathrm{triv}} ( x , y ) ∈ R triv , ℓ P ( p 2 ) = ℓ P ( p 1 ) \ell_P(p_2) = \ell_P(p_1) ℓ P ( p 2 ) = ℓ P ( p 1 ) ; otherwise, we have ( x , y ) ∈ R n o n t r i v (x,y) \in R_{\mathrm{nontriv}} ( x , y ) ∈ R nontriv , and ℓ P ( p 2 ) = ℓ P ( p 1 ) + 1 \ell_P(p_2) = \ell_P(p_1) + 1 ℓ P ( p 2 ) = ℓ P ( p 1 ) + 1 .
Note that we could separate out the final property about length, and prove it separately as a theorem about the output of add_cell (in contrast to, say, the prefix and suffix properties, which are required for the definition of add_cell). However, like the definition of add_cell, such a proof would have 17 cases27 , so it is easier to fold the length property into the main definition.
Our main goal will be to show that given a grid and a partial grid sharing essentially the same spine (aside from any empty arrows), the size of the partial grid is at most that of the grid. Our proof requires us to strengthen the inductive statement with an auxiliary fact about prefixes and suffixes of the grid’s target (part (1) below).
Theorem 7.14. Let g = ⟨ a , b , c , d ⟩ ∈ G g = \langle a,b,c,d\rangle\in G g = ⟨ a , b , c , d ⟩ ∈ G and p = ⟨ a 0 , b 0 , c 0 , m 0 , d 0 ⟩ ∈ G P p = \langle a_0,b_0,c_0,m_0,d_0\rangle\in G_P p = ⟨ a 0 , b 0 , c 0 , m 0 , d 0 ⟩ ∈ G P . Recall that s 1 , + : B W 1 , + → B W + s^{1,+}: BW^{1,+} \to BW^+ s 1 , + : B W 1 , + → B W + removes the signs on the letters, and deletes all instances of 1 1 1 from a word. It is generally used to convert (positive) partial grid edges to grid edges. If a = s 1 , + ( a 0 ) a = s^{1,+}(a_0) a = s 1 , + ( a 0 ) and b = s 1 , + ( b 0 ) b = s^{1,+}(b_0) b = s 1 , + ( b 0 ) (that is, the spines agree, ignoring empty arrows), then
s 1 , + ( c 0 ) s^{1,+}(c_0) s 1 , + ( c 0 ) is a prefix of c c c and s 1 , + ( d 0 ) s^{1,+}(d_0) s 1 , + ( d 0 ) is a prefix of d d d
ℓ P ( p ) ≤ ℓ G ( g ) \ell_P(p) \le\ell_G(g) ℓ P ( p ) ≤ ℓ G ( g ) .
Here is the image to keep in mind:
Figure 1 (PDF p. 58).
We note that we could prove (1) independently, and then use (1) to later prove (2). (We cannot proceed conversely; (2) cannot be proven without (1).) Due to the large number of cases in the proof, and the work to organize the hypotheses for each case, it is preferable to combine (1) and (2) as we have done, proving them simultaneously.
Proof. (Sketch) We proceed by induction on g g g , and present one illustrative (sub-sub-)case. Consider the case where g = ⟨ a , b , c , d , horizontal ( g 1 , g 2 ) ⟩ g = \langle a,b,c,d,\operatorname{horizontal}(g_1,g_2)\rangle g = ⟨ a , b , c , d , horizontal ( g 1 , g 2 )⟩ for grids g 1 = ⟨ a , b 1 , c 1 , d 1 , κ 1 ⟩ g_1 = \langle a,b_1,c_1,d_1,\kappa_1\rangle g 1 = ⟨ a , b 1 , c 1 , d 1 , κ 1 ⟩ and g 2 = ⟨ d 1 , b 2 , c 2 , d , κ 2 ⟩ g_2 = \langle d_1,b_2,c_2,d,\kappa_2\rangle g 2 = ⟨ d 1 , b 2 , c 2 , d , κ 2 ⟩ to which the inductive hypothesis applies, with b = b 1 b 2 b = b_1b_2 b = b 1 b 2 and c = c 1 c 2 c = c_1c_2 c = c 1 c 2 . Of course, ℓ G ( g ) = ℓ G ( g 1 ) + ℓ G ( g 2 ) \ell_G(g) = \ell_G(g_1) + \ell_G(g_2) ℓ G ( g ) = ℓ G ( g 1 ) + ℓ G ( g 2 ) . As s 1 , + ( b 0 ) = b = b 1 b 2 s^{1,+}(b_0) = b = b_1b_2 s 1 , + ( b 0 ) = b = b 1 b 2 , we know there exist some b 3 , b 4 ∈ B W 1 , + b_3,b_4 \in BW^{1,+} b 3 , b 4 ∈ B W 1 , + such that b 0 = b 3 b 4 b_0 = b_3b_4 b 0 = b 3 b 4 and b 1 = s 1 , + ( b 3 ) b_1 = s^{1,+}(b_3) b 1 = s 1 , + ( b 3 ) and b 2 = s 1 , + ( b 4 ) b_2 = s^{1,+}(b_4) b 2 = s 1 , + ( b 4 ) . We may thus split p = ⟨ a 0 , b 3 b 4 , c 0 , m 0 , d 0 ⟩ p = \langle a_0,b_3b_4,c_0,m_0,d_0\rangle p = ⟨ a 0 , b 3 b 4 , c 0 , m 0 , d 0 ⟩ vertically. Consider the case in which p p p splits in to two sub-grids p 1 = ⟨ a 0 , b 3 , c 3 , m 3 , d 3 ⟩ p_1 = \langle a_0,b_3,c_3,m_3,d_3\rangle p 1 = ⟨ a 0 , b 3 , c 3 , m 3 , d 3 ⟩ and p 2 = ⟨ d 3 , b 4 , c 4 , m 4 , d 0 ⟩ p_2 = \langle d_3,b_4,c_4,m_4,d_0\rangle p 2 = ⟨ d 3 , b 4 , c 4 , m 4 , d 0 ⟩ with c 3 m 3 c 4 m 4 = c 0 m 0 c_3m_3c_4m_4 = c_0m_0 c 3 m 3 c 4 m 4 = c 0 m 0 and ℓ P ( p ) = ℓ P ( p 1 ) + ℓ P ( p 2 ) \ell_P(p) = \ell_P(p_1) + \ell_P(p_2) ℓ P ( p ) = ℓ P ( p 1 ) + ℓ P ( p 2 ) (the other case is simpler). Further take the case in which m 3 m_3 m 3 is non-empty, and thus c 0 = c 3 c_0 = c_3 c 0 = c 3 and m 0 = m 3 c 4 m 4 m_0 = m_3c_4m_4 m 0 = m 3 c 4 m 4 . We apply our inductive hypothesis to g 1 g_1 g 1 and p 1 p_1 p 1 to conclude that s 1 , + ( c 3 ) s^{1,+}(c_3) s 1 , + ( c 3 ) is a prefix of c 1 c_1 c 1 (and thus s 1 , + ( c 0 ) s^{1,+}(c_0) s 1 , + ( c 0 ) is a prefix of c = c 1 c 2 c = c_1c_2 c = c 1 c 2 as desired), s 1 , + ( d 3 ) s^{1,+}(d_3) s 1 , + ( d 3 ) is a prefix of d 1 d_1 d 1 , and ℓ P ( p 1 ) ≤ ℓ G ( g 1 ) \ell_P(p_1) \le\ell_G(g_1) ℓ P ( p 1 ) ≤ ℓ G ( g 1 ) . Thus, there is some negative augmented braid word d 5 d_5 d 5 such that d 1 = s 1 , + ( d 5 ⋅ d 3 ) d_1 = s^{1,+}(d_5 \cdot d_3) d 1 = s 1 , + ( d 5 ⋅ d 3 ) . We may extend the left frontier of p 2 p_2 p 2 to obtain a partial grid p 3 = ⟨ d 5 ⋅ d 3 , b 4 , ε , d 5 ⋅ c 4 ⋅ m 4 , d 0 ⟩ p_3 = \langle d_5 \cdot d_3, b_4, \varepsilon, d_5 \cdot c_4 \cdot m_4, d_0\rangle p 3 = ⟨ d 5 ⋅ d 3 , b 4 , ε , d 5 ⋅ c 4 ⋅ m 4 , d 0 ⟩ with ℓ P ( p 3 ) = ℓ P ( p 2 ) \ell_P(p_3) = \ell_P(p_2) ℓ P ( p 3 ) = ℓ P ( p 2 ) . Then we know d 1 = s 1 , + ( d 5 ⋅ d 3 ) d_1 = s^{1,+}(d_5 \cdot d_3) d 1 = s 1 , + ( d 5 ⋅ d 3 ) , and so we may apply our inductive hypothesis to g 2 g_2 g 2 and p 3 p_3 p 3 to conclude that s 1 , + ( d 0 ) s^{1,+}(d_0) s 1 , + ( d 0 ) is a prefix of d d d as desired, and that ℓ P ( p 3 ) ≤ ℓ G ( g 2 ) \ell_P(p_3) \le\ell_G(g_2) ℓ P ( p 3 ) ≤ ℓ G ( g 2 ) . Thus, our final condition, that ℓ P ( p ) ≤ ℓ G ( g ) \ell_P(p) \le\ell_G(g) ℓ P ( p ) ≤ ℓ G ( g ) , is satisfied.
Semi-Thue Derivations
We return to our two definitions of Semi-Thue systems, defining data-carrying versions so that we may define a metric on them. In Lean, this once again corresponds to switching the output type from Prop to Type.
Definition 7.15. Consider a set A A A and a binary relation R R R on A A A -strings. Then → ∗ R \xrightarrow{*}_{R} ∗ R is the smallest relation satisfying:
reflexivity : For all a ∈ A ∗ a \in A^* a ∈ A ∗ , ⟨ a → ∗ R a , r e f l ⟩ \langle a \xrightarrow{*}_{R} a,\mathrm{refl}\rangle ⟨ a ∗ R a , refl ⟩
closure : For all a , b ∈ A ∗ a,b \in A^* a , b ∈ A ∗ , a → R b a \xrightarrow{R} b a R b implies ⟨ a → ∗ R b , c l o s u r e ( a , b ) ⟩ \langle a \xrightarrow{*}_{R} b,\mathrm{closure}(a,b)\rangle ⟨ a ∗ R b , closure ( a , b )⟩
transitivity : For all a , b , c ∈ A ∗ a,b,c \in A^* a , b , c ∈ A ∗ , if s 0 = ⟨ a → ∗ R b , κ 0 ⟩ s_0 = \langle a \xrightarrow{*}_{R} b,\kappa_0\rangle s 0 = ⟨ a ∗ R b , κ 0 ⟩ and s 1 = ⟨ b → ∗ R c , κ 1 ⟩ s_1 = \langle b \xrightarrow{*}_{R} c,\kappa_1\rangle s 1 = ⟨ b ∗ R c , κ 1 ⟩ , then ⟨ a → ∗ R c , t r a n s ( s 0 , s 1 ) ⟩ \langle a \xrightarrow{*}_{R} c,\mathrm{trans}(s_0,s_1)\rangle ⟨ a ∗ R c , trans ( s 0 , s 1 )⟩
Definition 7.16. We define a metric on Semi-Thue systems ℓ S R \ell_{SR} ℓ S R , parametrized by the relation R R R and a size metric ℓ R : R → N \ell_R : R \to\mathbb{N} ℓ R : R → N on pairs of A A A -strings satisfying R R R . To avoid triple subscripts, we do not add the particular choice of ℓ R \ell_R ℓ R to our notation, allowing it to be inferred from context. In the below definition, for readability we use an _ as a placeholder, as no information from the first element of the pair is needed.
ℓ S ( ⟨ _ , r e f l ⟩ ) = 0 \ell_S(\langle\_,\mathrm{refl}\rangle) = 0 ℓ S (⟨ _ , refl ⟩) = 0
ℓ S R ( ⟨ _ , c l o s u r e ( a , b ) ⟩ ) = ℓ R ( a , b ) \ell_{SR}(\langle\_,\mathrm{closure}(a,b)\rangle) = \ell_R(a,b) ℓ S R (⟨ _ , closure ( a , b )⟩) = ℓ R ( a , b )
ℓ S R ( ⟨ _ , t r a n s ( s 0 , s 1 ) ⟩ ) = ℓ S R ( s 0 ) + ℓ S R ( s 1 ) \ell_{SR}(\langle\_,\mathrm{trans}(s_0,s_1)\rangle) = \ell_{SR}(s_0) + \ell_{SR}(s_1) ℓ S R (⟨ _ , trans ( s 0 , s 1 )⟩) = ℓ S R ( s 0 ) + ℓ S R ( s 1 )
Definition 7.17. Given a set A A A and a binary relation R R R over A A A -strings, let → R \xrightarrow{}_{R} R be the smallest relation satisfying the below two properties:
reflexivity : For all a ∈ A ∗ a \in A^* a ∈ A ∗ , ⟨ a → R a , r e f l ⟩ \langle a \xrightarrow{}_{R} a,\mathrm{refl}\rangle ⟨ a R a , refl ⟩
one-step transitivity : For all a , b 1 , x , b 2 , y ∈ A ∗ a,b_1,x,b_2,y \in A^* a , b 1 , x , b 2 , y ∈ A ∗ , given d 0 = ⟨ a → R b 1 x b 2 , κ 0 ⟩ d_0 = \langle a \xrightarrow{}_{R} b_1xb_2,\kappa_0\rangle d 0 = ⟨ a R b 1 x b 2 , κ 0 ⟩ and x R y xRy x R y , then ⟨ a → R b 1 y b 2 , s t e p t r a n s i t i v i t y ( d 0 , x , y ) ⟩ \langle a \xrightarrow{}_{R} b_1yb_2,\mathrm{step\ transitivity}(d_0,x,y)\rangle ⟨ a R b 1 y b 2 , step transitivity ( d 0 , x , y )⟩
Definition 7.18. We define a metric on derivation-style Semi-Thue systems ℓ D R \ell_{DR} ℓ D R , again parametrized by the relation R R R and a size metric ℓ R \ell_R ℓ R .
ℓ D R ( ⟨ _ , r e f l ⟩ ) = 0 \ell_{DR}(\langle\_,\mathrm{refl}\rangle) = 0 ℓ D R (⟨ _ , refl ⟩) = 0
ℓ D R ( ⟨ _ , s t e p t r a n s i t i v i t y ( d 0 , x , y ) ⟩ ) = ℓ D R ( d 0 ) + ℓ R ( x , y ) \ell_{DR}(\langle\_,\mathrm{step\ transitivity}(d_0,x,y)\rangle) = \ell_{DR}(d_0) + \ell_R(x,y) ℓ D R (⟨ _ , step transitivity ( d 0 , x , y )⟩) = ℓ D R ( d 0 ) + ℓ R ( x , y )
Theorem 7.19. Given s 0 = ⟨ a → R ∗ b , κ 0 ⟩ s_0 = \langle a \mathop{\to}\limits_{R}^{*} b, \kappa_0\rangle s 0 = ⟨ a R → ∗ b , κ 0 ⟩ , there exists a derivation d 0 = ⟨ a → R b , κ 1 ⟩ d_0 = \langle a \mathop{\to}\limits_{R} b, \kappa_1\rangle d 0 = ⟨ a R → b , κ 1 ⟩ with ℓ S R ( s 0 ) = ℓ D R ( d 0 ) \ell_{SR}(s_0) = \ell_{DR}(d_0) ℓ S R ( s 0 ) = ℓ D R ( d 0 ) . The converse of this statement also holds.
With the basics set up, we now move on to discuss our specific relations.
Definition 7.20. We define ℓ R r e v \ell_{R_{\mathrm{rev}}} ℓ R rev simply: For all ( x , y ) ∈ R r e v (x,y) \in R_{\mathrm{rev}} ( x , y ) ∈ R rev , ℓ R r e v ( x , y ) = 1 \ell_{R_{\mathrm{rev}}}(x,y) = 1 ℓ R rev ( x , y ) = 1 .
ℓ R g r i d \ell_{R_{\mathrm{grid}}} ℓ R grid is defined as follows:
For all ( x , y ) ∈ R t r i v (x,y) \in R_{\mathrm{triv}} ( x , y ) ∈ R triv , ℓ R g r i d ( x , y ) = 0 \ell_{R_{\mathrm{grid}}}(x,y) = 0 ℓ R grid ( x , y ) = 0
For all ( x , y ) ∈ R n o n t r i v (x,y) \in R_{\mathrm{nontriv}} ( x , y ) ∈ R nontriv , ℓ R g r i d ( x , y ) = 1 \ell_{R_{\mathrm{grid}}}(x,y) = 1 ℓ R grid ( x , y ) = 1
Next, we update our results from the previous chapter with facts about our metrics. The proofs proceed in an entirely analogous manner. Here are the main conclusions (of course, each of these requires a number of lemmas to be updated as well; we omit those statements and proofs):
Theorem 7.21. (Update to the backwards direction of Theorem 6.3) Given a partial grid p = ⟨ a , b , c , m , d , κ ⟩ p = \langle a,b,c,m,d,\kappa\rangle p = ⟨ a , b , c , m , d , κ ⟩ , there exists a derivation s = ⟨ a b ‾ → R r e v ∗ c m d ‾ , κ ′ ⟩ s = \langle\overline{ab} \mathop{\to}\limits_{R_{\mathrm{rev}}}^{*} \overline{cmd},\kappa'\rangle s = ⟨ ab R rev → ∗ c m d , κ ′ ⟩ with ℓ P ( p ) = ℓ S R r e v ( s ) \ell_P(p) = \ell_{SR_{\mathrm{rev}}}(s) ℓ P ( p ) = ℓ S R rev ( s ) .
Theorem 7.22. (Update to Theorem 6.14) Let a , b , c , d ∈ B W 1 , + a,b,c,d \in BW^{1,+} a , b , c , d ∈ B W 1 , + . Given s 0 = ⟨ a b ‾ → R r e v ∗ c d ‾ , κ 0 ⟩ s_0 = \langle\overline{ab} \mathop{\to}\limits_{R_{\mathrm{rev}}}^{*} \overline{cd},\kappa_0\rangle s 0 = ⟨ ab R rev → ∗ c d , κ 0 ⟩ , there exist e , f ∈ B W 1 , + e,f \in BW^{1,+} e , f ∈ B W 1 , + and a derivation s 1 = ⟨ i 1 ( a b ‾ ) → R g r i d ∗ e f ‾ , κ 1 ⟩ s_1 = \langle i^1(\overline{ab}) \mathop{\to}\limits_{R_{\mathrm{grid}}}^{*} \overline{ef},\kappa_1\rangle s 1 = ⟨ i 1 ( ab ) R grid → ∗ e f , κ 1 ⟩ with s 1 ( e ) = c s^1(e)=c s 1 ( e ) = c , s 1 ( f ) = d s^1(f)=d s 1 ( f ) = d and ℓ S R r e v ( s 0 ) = ℓ S R g r i d ( d 1 ) \ell_{SR_{\mathrm{rev}}}(s_0) = \ell_{SR_{\mathrm{grid}}}(d_1) ℓ S R rev ( s 0 ) = ℓ S R grid ( d 1 ) .
Theorem 7.23. (Update to Theorem 6.35) For nonempty a , b ∈ B W 1 , + a,b \in BW^{1,+} a , b ∈ B W 1 , + , given s 0 = ⟨ a b ‾ → R g r i d ∗ c , κ 0 ⟩ s_0 = \langle\overline{ab} \mathop{\to}\limits_{R_{\mathrm{grid}}}^{*} c,\kappa_0\rangle s 0 = ⟨ ab R grid → ∗ c , κ 0 ⟩ , then there is a partial grid p p p with spine ( a , b ) (a,b) ( a , b ) and frontier c c c such that ℓ S R r e v ( s 0 ) = ℓ P ( p ) \ell_{SR_{\mathrm{rev}}}(s_0) = \ell_P(p) ℓ S R rev ( s 0 ) = ℓ P ( p ) .
Alternative Choices
We have made a number of seemingly arbitrary decisions, mainly in the precise definition of partial grids, as well as that of their size. Here we present their shortfalls, and discuss alternative strategies with their own benefits and shortfalls. As the definitions and theorems here do not form part of the final project, the Lean formalizations linked may be a bit rougher, and we take a few more liberties in our presentation, deviating from the exact Lean formalization for the sake of exposition.
Let us begin with the shortfalls of our current definitions. There is one tantalizing theorem we have not been able to prove using structural induction. It would be nice to know that the frame of a partial grid determines its length:
Conjecture 7.24. Given partial grids p 1 = ⟨ a , b , c , m , d , κ 1 ⟩ p_1 = \langle a,b,c,m,d,\kappa_1\rangle p 1 = ⟨ a , b , c , m , d , κ 1 ⟩ and p 2 = ⟨ a , b , c , m , d , κ 2 ⟩ p_2 = \langle a,b,c,m,d,\kappa_2\rangle p 2 = ⟨ a , b , c , m , d , κ 2 ⟩ , we have ℓ P ( p 1 ) = ℓ P ( p 2 ) \ell_P(p_1) = \ell_P(p_2) ℓ P ( p 1 ) = ℓ P ( p 2 )
The obvious strategy of inducting on one of either p 1 p_1 p 1 or p 2 p_2 p 2 fails. Let us play through one case of this proof attempt to see where the failure lies. Say we induct on p 1 p_1 p 1 , and are in the case of horizontal appending (to a partial grid with non-empty middle frontier).
Figure 26. p 1 p_1 p 1 is in fact composed of p 3 p_3 p 3 and p 4 p_4 p 4 , with labels a a a , b b b , c c c , d d d , m m m , b 3 b_3 b 3 , b 4 b_4 b 4 , c 4 c_4 c 4 , d 3 d_3 d 3 , and m 3 m_3 m 3 , m 4 m_4 m 4 .
That is, we know there are nonempty b 3 , b 4 b_3,b_4 b 3 , b 4 with b = b 3 b 4 b=b_3b_4 b = b 3 b 4 and nonempty m 3 m_3 m 3 and some c 4 , m 4 c_4,m_4 c 4 , m 4 with m = m 3 c 4 m 4 m=m_3c_4m_4 m = m 3 c 4 m 4 , partial grids p 3 = ⟨ a , b 3 , c , m 3 , d 3 , κ 3 ⟩ p_3=\langle a,b_3,c,m_3,d_3,\kappa_3\rangle p 3 = ⟨ a , b 3 , c , m 3 , d 3 , κ 3 ⟩ and p 4 = ⟨ d 3 , b 4 , c 4 , m 4 , d , κ 4 ⟩ p_4=\langle d_3,b_4,c_4,m_4,d,\kappa_4\rangle p 4 = ⟨ d 3 , b 4 , c 4 , m 4 , d , κ 4 ⟩ to which the inductive hypothesis may be applied, with p 1 = ⟨ a , b 3 ⋅ b 4 , c , m 3 ⋅ c 4 ⋅ m 4 , d , horizontal ( p 3 , p 4 ) ⟩ p_1=\langle a,b_3\cdot b_4,c,m_3\cdot c_4\cdot m_4,d,\operatorname{horizontal}(p_3,p_4)\rangle p 1 = ⟨ a , b 3 ⋅ b 4 , c , m 3 ⋅ c 4 ⋅ m 4 , d , horizontal ( p 3 , p 4 )⟩ . We would next split p 2 p_2 p 2 horizontally using Theorem 7.12 , in hopes of applying our inductive hypothesis for p 3 p_3 p 3 and p 4 p_4 p 4 to the resultant grids. Consider the case in which p 2 p_2 p 2 splits into two partial grids p 5 , p 6 p_5,p_6 p 5 , p 6 as shown:
Figure 1 (PDF p. 61).
Here, we have partial grids p 5 = ⟨ a , b 3 , c 5 , m 5 , d 5 ⟩ p_5=\langle a,b_3,c_5,m_5,d_5\rangle p 5 = ⟨ a , b 3 , c 5 , m 5 , d 5 ⟩ and p 6 = ⟨ d 5 , b 4 , c 6 , m 6 , d ⟩ p_6=\langle d_5,b_4,c_6,m_6,d\rangle p 6 = ⟨ d 5 , b 4 , c 6 , m 6 , d ⟩ , with c ⋅ m = c 5 ⋅ m 5 ⋅ c 6 ⋅ m 6 c\cdot m=c_5\cdot m_5\cdot c_6\cdot m_6 c ⋅ m = c 5 ⋅ m 5 ⋅ c 6 ⋅ m 6 . We may further select the case where m 5 m_5 m 5 is nonempty, and so by properties of middle frontiers (Lemma 6.32), c = c 5 c=c_5 c = c 5 and m = m 5 c 6 m 6 m=m_5c_6m_6 m = m 5 c 6 m 6 . We wish to apply the inductive hypothesis to p 5 p_5 p 5 and p 3 p_3 p 3 . However, we do not know that their frames match. Their spines do match, as do their lower frontiers, but not their middle frontiers (m 3 m_3 m 3 and m 5 m_5 m 5 ) nor their right frontiers (d 3 d_3 d 3 and d 5 d_5 d 5 ). As m 3 ⋅ c 4 ⋅ m 4 = m 5 ⋅ c 6 ⋅ m 6 m_3\cdot c_4\cdot m_4=m_5\cdot c_6\cdot m_6 m 3 ⋅ c 4 ⋅ m 4 = m 5 ⋅ c 6 ⋅ m 6 , we know that the shorter of m 3 m_3 m 3 and m 5 m_5 m 5 must be a prefix of the longer, but we do not know the crucial concluding condition: that m 3 m_3 m 3 and m 5 m_5 m 5 have the same length. We could also deduce, with significant extra work28 , that either d 3 d_3 d 3 is a suffix of d 5 d_5 d 5 or vice versa. Alas, these facts about the middle and right frontier are not enough to conclude. (The fact that two partial grids have the same spine and bottom frontier, middle frontiers one of which is a prefix of the other, and right frontiers one of which is a suffix of the other is not enough to conclude that they have matching frames).
The situation is even worse for p 4 p_4 p 4 and p 6 p_6 p 6 , as their spines do not necessarily match. Now, this could be amended in a number of cases. If d 5 d_5 d 5 were shorter than d 3 d_3 d 3 , we could extend the spine of p 6 p_6 p 6 to match d 3 d_3 d 3 , as we know that extending a partial grid’s spine preserves its size (however, this would have consequences for its bottom and middle frontiers).
If d 5 d_5 d 5 were longer than d 3 d_3 d 3 , we might be able to use an alternate form of induction, some sort of strong induction (which we will discuss below), to extend the spine of p 4 p_4 p 4 and then apply our more generalized induction hypothesis. However, this still does not solve the problem of the mismatched frontiers between p 4 p_4 p 4 and p 6 p_6 p 6 , so we remain at an impasse.
Thus, Conjecture 7.24 remains inconclusive. It is possible to complete the project without Conjecture 7.24, but it is certainly displeasing. Intuitively, partial grids with the same frame contain the same (multi)set of cells, and should have the same size. We wonder if perhaps it is our definition of a partial grid, with its complicated division of the frontier into bottom, middle, and right segments, that is to blame. Here is an alternative, simpler definition of a partial grid:
Definition 7.25. The set of frontier-style partial grids G F G_F G F is a subset of ( B W 1 ) 3 (BW^1)^3 ( B W 1 ) 3 defined inductively by
a spine: For any positive, nonempty a , b ∈ B W 1 a,b\in BW^1 a , b ∈ B W 1 , we have ⟨ a ˉ , b , a ˉ b , spine ⟩ ∈ G F \langle\bar{a},b,\bar{a}b,\operatorname{spine}\rangle\in G_F ⟨ a ˉ , b , a ˉ b , spine ⟩ ∈ G F . Visually,
cell addition: Given ( x , y ) ∈ R g r i d (x,y) \in R_{\mathrm{grid}} ( x , y ) ∈ R grid and f 1 = ⟨ a , b , c 1 x c 2 , κ 1 ⟩ ∈ G F f_1 = \langle a,b,c_1xc_2,\kappa_1\rangle\in G_F f 1 = ⟨ a , b , c 1 x c 2 , κ 1 ⟩ ∈ G F , we have ⟨ a , b , c 1 y c 2 , cell addition ( x , y , f 1 ) ⟩ ∈ G F \langle a,b,c_1yc_2,\operatorname{cell\ addition}(x,y,f_1)\rangle\in G_F ⟨ a , b , c 1 y c 2 , cell addition ( x , y , f 1 )⟩ ∈ G F . Visually,
Definition 7.26. We define the length metric ℓ G F : G F → N \ell_{G_F}:G_F \to\mathbb{N} ℓ G F : G F → N as follows:
a spine: ℓ G F ( ⟨ _ , _ , _ , spine ⟩ ) = 0 \ell_{G_F}(\langle\_,\_,\_,\operatorname{spine}\rangle)=0 ℓ G F (⟨ _ , _ , _ , spine ⟩) = 0
cell addition: ℓ G F ( ⟨ _ , _ , _ , cell addition ( x , y , f 1 ) ⟩ ) = ℓ G F ( f 0 ) + ℓ R g r i d ( x , y ) \ell_{G_F}\left(\langle\_,\_,\_,\operatorname{cell\ addition}(x,y,f_1)\rangle\right)=\ell_{G_F}(f_0)+\ell_{R_{\mathrm{grid}}}(x,y) ℓ G F ( ⟨ _ , _ , _ , cell addition ( x , y , f 1 )⟩ ) = ℓ G F ( f 0 ) + ℓ R grid ( x , y ) .
Alas, we again encounter issues trying to prove Conjecture 7.24, even with G F G_F G F in place of G P G_P G P . The issue is that frontier-style partial grids do not have a unique destructor. We wish we had a theorem of the following form:
Fallacy 7.27. Given ( x , y ) ∈ R g r i d (x,y) \in R_{\mathrm{grid}} ( x , y ) ∈ R grid and a frontier-style partial grid f 1 = ⟨ a , b , c 1 y c 2 , κ 1 ⟩ f_1=\langle a,b,c_1yc_2,\kappa_1\rangle f 1 = ⟨ a , b , c 1 y c 2 , κ 1 ⟩ , there is a frontier-style partial grid f 0 = ⟨ a , b , c 1 x c 2 , κ 0 ⟩ f_0=\langle a,b,c_1xc_2,\kappa_0\rangle f 0 = ⟨ a , b , c 1 x c 2 , κ 0 ⟩ with ℓ F ( f 1 ) = ℓ F ( f 0 ) + ℓ R g r i d ( x , y ) \ell_F(f_1)=\ell_F(f_0)+\ell_{R_{\mathrm{grid}}}(x,y) ℓ F ( f 1 ) = ℓ F ( f 0 ) + ℓ R grid ( x , y ) .
In fact, Fallacy 7.27 does not even hold for the base cases. Consider the very simple frontier-style partial grid f 1 = ⟨ 1 ‾ , 1 , 11 ‾ , cell addition ( 11 ‾ , 11 ‾ , ⟨ 1 , 1 , 11 ‾ , spine ⟩ ) ⟩ f_1=\langle\overline{1},1,\overline{11},\operatorname{cell\ addition}(\overline{11},\overline{11},\langle1,1,\overline{11},\operatorname{spine}\rangle)\rangle f 1 = ⟨ 1 , 1 , 11 , cell addition ( 11 , 11 , ⟨ 1 , 1 , 11 , spine ⟩)⟩
We know that, say, ( σ 3 σ 3 ‾ , 11 ‾ ) ∈ R g r i d (\overline{\sigma_3\sigma_3},\overline{11})\in R_{\mathrm{grid}} ( σ 3 σ 3 , 11 ) ∈ R grid and so our conjecture states that we should have some frontier-style partial grid f 0 = ⟨ 1 ‾ , 1 , σ 3 σ 3 ‾ , κ 0 ⟩ f_0=\langle\overline{1},1,\overline{\sigma_3\sigma_3},\kappa_0\rangle f 0 = ⟨ 1 , 1 , σ 3 σ 3 , κ 0 ⟩ . Clearly, such a partial grid does not exist. We can amend Fallacy 7.27 to the following statement, which is both tedious to prove and nearly useless. Hence, it is not formalized in Lean, and listed merely as a fact.
Fact 7.28. Given ( x , y ) ∈ R g r i d (x,y)\in R_{\mathrm{grid}} ( x , y ) ∈ R grid and a frontier-style partial grid f 1 = ⟨ a , b , c 1 y c 2 , κ 1 ⟩ f_1=\langle a,b,c_1yc_2,\kappa_1\rangle f 1 = ⟨ a , b , c 1 y c 2 , κ 1 ⟩ , there is a frontier-style partial grid f 0 = ⟨ a , b , c 1 z c 2 , κ 0 ⟩ f_0=\langle a,b,c_1zc_2,\kappa_0\rangle f 0 = ⟨ a , b , c 1 z c 2 , κ 0 ⟩ for some z ∈ B W 1 z\in BW^1 z ∈ B W 1 with ( z , y ) ∈ R g r i d (z,y)\in R_{\mathrm{grid}} ( z , y ) ∈ R grid , and ℓ F ( f 1 ) = ℓ F ( f 0 ) + ℓ R g r i d ( z , y ) \ell_F(f_1)=\ell_F(f_0)+\ell_{R_{\mathrm{grid}}}(z,y) ℓ F ( f 1 ) = ℓ F ( f 0 ) + ℓ R grid ( z , y ) .
Due to the lack of a unique destructor, we are unable to prove that the frame of a frontier-style partial grid suffices to determine its size.
Conjecture 7.29. Given frontier-style partial grids f 1 = ⟨ a , b , c , κ 1 ⟩ f_1 = \langle a, b, c, \kappa_1 \rangle f 1 = ⟨ a , b , c , κ 1 ⟩ and f 2 = ⟨ a , b , c , κ 2 ⟩ f_2 = \langle a, b, c, \kappa_2 \rangle f 2 = ⟨ a , b , c , κ 2 ⟩ , we know ℓ F ( f 1 ) = ℓ F ( f 2 ) \ell_F(f_1) = \ell_F(f_2) ℓ F ( f 1 ) = ℓ F ( f 2 ) .
Again, it is instructive to see where the straightforward proof attempt fails. Say we proceed by induction on f 1 f_1 f 1 . Consider the case where c = c 1 ⋅ 11 ‾ ⋅ c 2 c = c_1 \cdot\overline{1 1} \cdot c_2 c = c 1 ⋅ 11 ⋅ c 2 , we have f 0 = ⟨ a , b , c 1 ⋅ σ 3 σ 3 ‾ ⋅ c 2 ⟩ f_0 = \langle a, b, c_1 \cdot\overline{\sigma_3 \sigma_3} \cdot c_2 \rangle f 0 = ⟨ a , b , c 1 ⋅ σ 3 σ 3 ⋅ c 2 ⟩ to which the inductive hypothesis applies, and f 1 = ⟨ a , b , c 1 ⋅ 11 ‾ ⋅ c 2 , cell appending ( σ 3 σ 3 ‾ , 11 ‾ , f 0 ) ⟩ f_1 = \langle a, b, c_1 \cdot\overline{1 1} \cdot c_2, \operatorname{cell\ appending}(\overline{\sigma_3 \sigma_3}, \overline{1 1}, f_0) \rangle f 1 = ⟨ a , b , c 1 ⋅ 11 ⋅ c 2 , cell appending ( σ 3 σ 3 , 11 , f 0 )⟩ . We would like to in some manner destruct f 2 f_2 f 2 to apply the inductive hypothesis, but alas, we have no unique destructor. For all we know, there is a frontier-style partial grid f 3 = ⟨ a , b , c 1 ⋅ σ 42 σ 42 ‾ ⋅ c 2 , κ 3 ⟩ f_3 = \langle a, b, c_1 \cdot\overline{\sigma_{42}\sigma_{42}} \cdot c_2, \kappa_3 \rangle f 3 = ⟨ a , b , c 1 ⋅ σ 42 σ 42 ⋅ c 2 , κ 3 ⟩ and f 2 = ⟨ a , b , c 1 ⋅ 11 ‾ , cell appending ( σ 42 σ 42 ‾ , 11 ‾ , f 3 ) ⟩ f_2 = \langle a, b, c_1 \cdot\overline{1 1}, \operatorname{cell\ appending}(\overline{\sigma_{42}\sigma_{42}}, \overline{1 1}, f_3) \rangle f 2 = ⟨ a , b , c 1 ⋅ 11 , cell appending ( σ 42 σ 42 , 11 , f 3 )⟩ .
So, frontier-style partial grids suffer the same shortcoming as partial grids — we have not been able to prove that their frame determines their size. Do they improve on our original definition of partial grids in any substantial way? In some ways, yes. For example, the add_cell function would be nearly trivial to implement for frontier-style partial grids, as compared to the seventeen involved cases for our original definition. In other ways, certainly not. I could not find a proof using frontier-style partial grids for Theorem 6.37 (if a partial grid’s frontier is in negative-positive form, then it is in fact a grid). Thus, we would need to keep both structures and transfer theorems between them. The work of setting up a (size-preserving) bijection between G P G_P G P and G F G_F G F is at least equal to the work needed to define add_cell directly on G P G_P G P , and so we dispense with frontier-style partial grids for good.
The enterprising reader is most welcome to formulate his own definition for partial grids. Here are three theorems such a definition must satisfy:
Theorem 6.37: if a partial grid’s frontier is in negative-positive form, then it is in fact a grid.
Definition 7.13 : there exists a function with the same specification as add_cell.
Theorem 7.23 : if a b ‾ \overline{ab} ab rewrites to c c c , then there is a partial grid with spine ( a , b ) (a,b) ( a , b ) and frontier c c c .
The ideal definition would also satisfy Conjecture 7.24; that is, the frame of the partial grid determines its size.
This is not the only unwieldy issue with the partial grids we have defined. We do not have a rigorous definition of a sub-partial-grid, which could provide a method of strong induction on partial grids. Surprisingly, there is not a single proof in this project requiring strong induction on partial grids. Nevertheless, one might find it easier to use than structural induction in some cases, or perhaps give a new theorem, or a proof of a conjecture, requiring strong induction.
Here are a few simple ideas for inducting on a partial grid ⟨ a , b , c , m , d ⟩ \langle a,b,c,m,d\rangle ⟨ a , b , c , m , d ⟩ , none of which work:
σ i → σ j σ i σ i ↓ ↓ σ j σ j → σ i σ j \begin{CD}
\sigma_i @>{\sigma_j}>> \sigma_i \\
@V{\sigma_i}VV @VV{\sigma_j}V \\
\sigma_j @>{\sigma_i}>> \sigma_j
\end{CD} σ i σ i ↓ ⏐ σ j σ j σ i σ i ↓ ⏐ σ j σ j
this metric often increases when we split a partial grid. The issue persists even if we ignored the empty cells by using ∣ s 1 ( a ) ∣ + ∣ s 1 ( b ) ∣ |s^1(a)| + |s^1(b)| ∣ s 1 ( a ) ∣ + ∣ s 1 ( b ) ∣ for our metric.
We might try to induct on the diagonal length of the partial grid, ∣ a ∣ + ∣ c ∣ |a| + |c| ∣ a ∣ + ∣ c ∣ , or possibly ∣ b ∣ + ∣ d ∣ |b| + |d| ∣ b ∣ + ∣ d ∣ (or even the sum of the two). However, this metric remains static when adding a cell that touches only the middle frontier.
We might try to induct on the size of the partial grid using ℓ P \ell_P ℓ P . However, due to the presence of trivial cells, it is possible to split a partial grid and obtain one part with size zero, and one part with the original size.
The last option could be amended to be workable: we could change our metric to ℓ P ′ \ell'_P ℓ P ′ , which gives every cell size 1:
Definition 7.30. Define an alternative metric on partial grids ℓ P ′ \ell'_P ℓ P ′ identically to ℓ P \ell_P ℓ P , except for the very first case, which we replace by
ℓ P ( ⟨ a , b , c , m , d , trivial cell ⟩ ) = 1 \ell_P(\langle a,b,c,m,d,\text{trivial cell}\rangle)=1 ℓ P (⟨ a , b , c , m , d , trivial cell ⟩) = 1
This would almost work for strong induction, except trimming off tails (such as arises in the second case of splittability) does not decrease ℓ P ′ \ell'_P ℓ P ′ . It could be perhaps amended to use the length of the spine as a tie-breaker (formally, a lexicographic ordering on the pair ⟨ ℓ P ′ , spine length ⟩ \langle\ell'_P,\text{spine length}\rangle ⟨ ℓ P ′ , spine length ⟩ ). This new metric is less elegant, especially as ℓ P ′ \ell'_P ℓ P ′ does not match nicely with ℓ S r e v \ell_{S_{\mathrm{rev}}} ℓ S rev .
So, even the simplest methods for defining strong induction are reasonably complex (in order to derive strong induction from the just-mentioned lexicographic order, one would have to consider a grid g g g and a smaller (by lexicographic ordering) grid g 1 g_1 g 1 , and then repeatedly split g 1 g_1 g 1 and apply determinative spines, grid uniqueness, and grid appending in order to obtain grids to which the structural inductive hypothesis would apply). Strong induction is never used in this project, and so we do not formalize ℓ P ′ \ell'_P ℓ P ′ nor the associated lexicographic ordering.
In sum, we have defined metrics on our main structures (Semi-Thue derivations, grids, and partial grids). We have been able to show a number of properties of each metric, properties which will let us prove termination of the subword reversing algorithm in the following chapter.
The Reversing Procedure
We are now prepared to implement Dehornoy’s subword reversing algorithm, which determines whether a braid group element is equivalent to the identity element. (Of course, to check equivalence between elements a a a and b b b , we need simply check if a − 1 b a^{-1}b a − 1 b is equivalent to the identity.) The heart of this algorithm is a process called “reversing” which rewrites any braid group element to one in a certain standard form, preserving equivalence in the braid group. As an intuitive overview, a string in B W BW B W undergoes successive rewritings according to R r e v R_{\mathrm{rev}} R rev until no such rewrites remain to be performed. We begin with “simple” reversing, which takes in a braid word in positive-negative form. We then extend simple reversing to full reversing, which takes in any braid word. Finally, we implement the full subword reversing algorithm, which reverses a word, exchanges the positive and negative parts, and then reverses again.
Monoid Solver
We will first implement a solver for the braid monoid word problem. Much of the machinery will be expanded and re-used for the braid group word problem solver. We begin by defining simple reversing, in which we iteratively apply reversing rewrites to a ‾ b \overline{a}b a b for a , b ∈ B W + a,b\in BW^+ a , b ∈ B W + . (Note that many of our functions are given the superscript + + + , as this simple version begins with two elements of the braid monoid). Our eventual solver will include simple reversing as its main step.
To aid in exposition, we give terminology to the first element of any R r e v R_{\mathrm{rev}} R rev pair as follows:
Definition 8.1. For any i , j ∈ N i,j\in\mathbb{N} i , j ∈ N , we say that the braid word σ i ‾ σ j \overline{\sigma_i}\sigma_j σ i σ j is an open pair .
As a first attempt, we might define said iterative rewriting rev 1 + : B W → B W \operatorname{rev}_{1}^{+}: BW \to BW rev 1 + : B W → B W recursively as so: If there exist c 1 , c 2 ∈ B W c_1,c_2 \in BW c 1 , c 2 ∈ B W such that for some i , j ∈ N i,j \in\mathbb{N} i , j ∈ N , c = c 1 ⋅ σ ˉ i σ j ⋅ c 2 c=c_1\cdot\bar{\sigma}_i\sigma_j\cdot c_2 c = c 1 ⋅ σ ˉ i σ j ⋅ c 2 where c 1 c_1 c 1 contains no open pair, then
rev 1 + ( c ) = rev 1 + ( c 1 ⋅ σ ˉ i σ j ⋅ c 2 ) : = { rev 1 + ( c 1 ⋅ c 2 ) i = j , rev 1 + ( c 1 ⋅ σ j σ ˉ i ⋅ c 2 ) ∣ i − j ∣ ≥ 2 , rev 1 + ( c 1 ⋅ σ j σ i σ ˉ j σ ˉ i ⋅ c 2 ) ∣ i − j ∣ = 1. \operatorname{rev}_{1}^{+}(c)=\operatorname{rev}_{1}^{+}(c_1\cdot\bar{\sigma}_i\sigma_j\cdot c_2):=
\begin{cases}
\operatorname{rev}_{1}^{+}(c_1\cdot c_2) & i=j,\\
\operatorname{rev}_{1}^{+}(c_1\cdot\sigma_j\bar{\sigma}_i\cdot c_2) & |i-j|\ge2,\\
\operatorname{rev}_{1}^{+}(c_1\cdot\sigma_j\sigma_i\bar{\sigma}_j\bar{\sigma}_i\cdot c_2) & |i-j|=1.
\end{cases} rev 1 + ( c ) = rev 1 + ( c 1 ⋅ σ ˉ i σ j ⋅ c 2 ) := ⎩ ⎨ ⎧ rev 1 + ( c 1 ⋅ c 2 ) rev 1 + ( c 1 ⋅ σ j σ ˉ i ⋅ c 2 ) rev 1 + ( c 1 ⋅ σ j σ i σ ˉ j σ ˉ i ⋅ c 2 ) i = j , ∣ i − j ∣ ≥ 2 , ∣ i − j ∣ = 1.
Otherwise,
rev 1 + ( c ) = c . \operatorname{rev}_{1}^{+}(c)=c. rev 1 + ( c ) = c .
The immediate problem is to show well-definedness of this function – that is, that the recursive calls in rev 1 + \operatorname{rev}_{1}^{+} rev 1 + do not go on endlessly29 . This will require the fact that our original input is of the form a ˉ b ˉ \bar{a}\bar{b} a ˉ b ˉ , and a ˉ b ˉ \bar{a}\bar{b} a ˉ b ˉ rewrites under R r e v R_{\mathrm{rev}} R rev to the output of rev 1 + \operatorname{rev}_{1}^{+} rev 1 + :
a ˉ b ˉ → R r e v rev 1 + ( a ˉ b ˉ ) . \bar{a}\bar{b}\mathrel{\xrightarrow{R_{\mathrm{rev}}}}\operatorname{rev}_{1}^{+}(\bar{a}\bar{b}). a ˉ b ˉ R rev rev 1 + ( a ˉ b ˉ ) .
That is immediately circular – how can we speak about the output of a function before we know it terminates? Instead, we build this fact into the definition of the function by restricting the domain and codomain of rev + \operatorname{rev}^{+} rev + .
Definition 8.2. Define the sets T T T parametrized by a , b ∈ B W + a,b\in BW^{+} a , b ∈ B W + as30
T a , b = { c ∈ B W ∣ i ˉ + ( a ) i ˉ + ( b ) → R r e v c } . T_{a,b}=\{c\in BW\mid\bar{i}^{+}(a)\bar{i}^{+}(b)\mathrel{\xrightarrow{R_{\mathrm{rev}}}}c\}. T a , b = { c ∈ B W ∣ i ˉ + ( a ) i ˉ + ( b ) R rev c } .
Here we are briefly explicit about i + i^{+} i + for precision. Note that we are using the data-carrying definition of → R r e v \mathrel{\xrightarrow{R_{\mathrm{rev}}}} R rev . Our formalization defines elements of T a , b T_{a,b} T a , b as a pair ( x , y ) (x,y) ( x , y ) , where x ∈ B W x\in BW x ∈ B W and y : = ⟨ i ˉ + ( a ) i ˉ + ( b ) → R r e v x , κ ⟩ y:=\langle\bar{i}^{+}(a)\bar{i}^{+}(b)\mathrel{\xrightarrow{R_{\mathrm{rev}}}}x,\kappa\rangle y := ⟨ i ˉ + ( a ) i ˉ + ( b ) R rev x , κ ⟩ . We thus use this convenient notation in our writeup.
Then we inductively define the family of functions
rev a , b + : T a , b → T a , b \operatorname{rev}_{a,b}^{+}:T_{a,b}\to T_{a,b} rev a , b + : T a , b → T a , b
as follows; note that the only differences from the first definition are the name of the function and the domain and range (and hence the added derivation).
Definition 8.3. Given a , b ∈ B W + a,b\in BW^{+} a , b ∈ B W + , rev a , b + : T a , b → T a , b \operatorname{rev}_{a,b}^{+}:T_{a,b}\to T_{a,b} rev a , b + : T a , b → T a , b is defined by
(Recursive case) If there exist x 1 , x 2 ∈ B W x_1,x_2\in BW x 1 , x 2 ∈ B W such that for some i , j ∈ N i,j\in\mathbb{N} i , j ∈ N , x = x 1 ⋅ σ ˉ i σ j ⋅ x 2 x=x_1\cdot\bar{\sigma}_i\sigma_j\cdot x_2 x = x 1 ⋅ σ ˉ i σ j ⋅ x 2 where x i x_i x i contains no open pair, then
rev a , b + ( x 1 ⋅ σ i ‾ σ j ⋅ x 2 , y ) = { rev a , b + ( x 1 ⋅ x 2 , ⟨ i + ( a ) ‾ i + ( b ) → R r e v x 1 ⋅ x 2 , step transitivity ( y , σ i ‾ σ j , ε ) ⟩ ) , i = j , rev a , b + ( x 1 ⋅ σ j σ i σ j ‾ σ i ‾ ⋅ x 2 , ⟨ i + ( a ) ‾ i + ( b ) → R r e v x 1 ⋅ σ j σ i σ j ‾ σ i ‾ ⋅ x 2 , step transitivity ( y , σ i ‾ σ j , σ j σ i σ j ‾ σ i ‾ ) ⟩ ) , ∣ i − j ∣ = 1 , rev a , b + ( x 1 ⋅ σ j σ i ‾ ⋅ x 2 , ⟨ i + ( a ) ‾ i + ( b ) → R r e v x 1 ⋅ σ j σ i ‾ ⋅ x 2 , step transitivity ( y , σ i ‾ σ j , σ j σ i ‾ ) ⟩ ) , ∣ i − j ∣ > 1. \operatorname{rev}^{+}_{a,b}(x_1\cdot\overline{\sigma_i}\sigma_j\cdot x_2,y)=\begin{cases}
\operatorname{rev}^{+}_{a,b}\left(x_1\cdot x_2,\left\langle\overline{i^{+}(a)}i^{+}(b)\mathrel{\to}_{R_{\mathrm{rev}}}x_1\cdot x_2,\operatorname{step\ transitivity}\left(y,\overline{\sigma_i}\sigma_j,\varepsilon\right)\right\rangle\right), & i=j,\\
\operatorname{rev}^{+}_{a,b}\left(x_1\cdot\sigma_j\sigma_i\overline{\sigma_j}\overline{\sigma_i}\cdot x_2,\left\langle\overline{i^{+}(a)}i^{+}(b)\mathrel{\to}_{R_{\mathrm{rev}}}x_1\cdot\sigma_j\sigma_i\overline{\sigma_j}\overline{\sigma_i}\cdot x_2,\operatorname{step\ transitivity}\left(y,\overline{\sigma_i}\sigma_j,\sigma_j\sigma_i\overline{\sigma_j}\overline{\sigma_i}\right)\right\rangle\right), & \lvert i-j\rvert=1,\\
\operatorname{rev}^{+}_{a,b}\left(x_1\cdot\sigma_j\overline{\sigma_i}\cdot x_2,\left\langle\overline{i^{+}(a)}i^{+}(b)\mathrel{\to}_{R_{\mathrm{rev}}}x_1\cdot\sigma_j\overline{\sigma_i}\cdot x_2,\operatorname{step\ transitivity}\left(y,\overline{\sigma_i}\sigma_j,\sigma_j\overline{\sigma_i}\right)\right\rangle\right), & \lvert i-j\rvert>1.
\end{cases} rev a , b + ( x 1 ⋅ σ i σ j ⋅ x 2 , y ) = ⎩ ⎨ ⎧ rev a , b + ( x 1 ⋅ x 2 , ⟨ i + ( a ) i + ( b ) → R rev x 1 ⋅ x 2 , step transitivity ( y , σ i σ j , ε ) ⟩ ) , rev a , b + ( x 1 ⋅ σ j σ i σ j σ i ⋅ x 2 , ⟨ i + ( a ) i + ( b ) → R rev x 1 ⋅ σ j σ i σ j σ i ⋅ x 2 , step transitivity ( y , σ i σ j , σ j σ i σ j σ i ) ⟩ ) , rev a , b + ( x 1 ⋅ σ j σ i ⋅ x 2 , ⟨ i + ( a ) i + ( b ) → R rev x 1 ⋅ σ j σ i ⋅ x 2 , step transitivity ( y , σ i σ j , σ j σ i ) ⟩ ) , i = j , ∣ i − j ∣ = 1 , ∣ i − j ∣ > 1.
(Non-recursive case) Otherwise,
rev a , b + ( x , y ) = ( x , y ) . \operatorname{rev}^{+}_{a,b}(x,y)=(x,y). rev a , b + ( x , y ) = ( x , y ) .
Verifying the domain and range for the different cases in the definition of rev a , b + \operatorname{rev}^{+}_{a,b} rev a , b + is easily done. For our formalization, we write a simple recursive function, FindOpenPair, to find the first occurrence of a substring of the form σ i ‾ σ j \overline{\sigma_i}\sigma_j σ i σ j . However, we cannot use the existing List.Infix infrastructure in Mathlib as it is non-data-carrying. We thus develop a small repository of data-carrying proofs about basic List properties.
Next, we must show termination of rev a , b + \operatorname{rev}^{+}_{a,b} rev a , b + . We first define a metric on elements of T a , b T_{a,b} T a , b (what all that data-carrying work has been for!).
Definition 8.4. We define the family of functions ℓ T a , b : T a , b → N \ell_{T_{a,b}}:T_{a,b}\to\mathbb{N} ℓ T a , b : T a , b → N (each often written ℓ T \ell_T ℓ T when a a a and b b b can be inferred). Given ( x , y ) ∈ T a , b (x,y)\in T_{a,b} ( x , y ) ∈ T a , b , we know x ∈ B W x\in BW x ∈ B W and we have a derivation y = x → R r e v i + ( a ) ‾ i + ( b ) y=x\mathrel{\to}_{R_{\mathrm{rev}}}\overline{i^{+}(a)}i^{+}(b) y = x → R rev i + ( a ) i + ( b ) . Then we define
ℓ T ( x , y ) : = ℓ B ( a , b ) − ℓ S ( y ) \ell_T(x,y):=\ell_B(a,b)-\ell_S(y) ℓ T ( x , y ) := ℓ B ( a , b ) − ℓ S ( y )
Theorem 8.5. For any ( x , y ) ∈ T a , b (x,y)\in T_{a,b} ( x , y ) ∈ T a , b , we have ℓ S ( y ) ≤ ℓ B ( a , b ) \ell_S(y)\leq\ell_B(a,b) ℓ S ( y ) ≤ ℓ B ( a , b ) .
Proof. Consider first the case for nonempty a , b a,b a , b . Since y = i + ( a ) ‾ i + ( b ) → R r e v x y=\overline{i^{+}(a)}i^{+}(b)\mathrel{\to}_{R_{\mathrm{rev}}}x y = i + ( a ) i + ( b ) → R rev x , by Theorem 6.35 we know there is a partial grid p = ⟨ a , b , c , m , d , κ ⟩ p=\langle a,b,c,m,d,\kappa\rangle p = ⟨ a , b , c , m , d , κ ⟩ with x = s 1 ( c m d ) x=s^1(cmd) x = s 1 ( c m d ) and ℓ R ( p ) = ℓ S ( y ) \ell_R(p)=\ell_S(y) ℓ R ( p ) = ℓ S ( y ) . We also know that ℓ P ( p ) ≤ ℓ B ( a , b ) \ell_P(p)\leq\ell_B(a,b) ℓ P ( p ) ≤ ℓ B ( a , b ) by definition of ℓ B \ell_B ℓ B (Definition 7.8) and Theorem 7.14 . Hence, ℓ S ( y ) ≤ ℓ B ( a , b ) \ell_S(y)\leq\ell_B(a,b) ℓ S ( y ) ≤ ℓ B ( a , b ) as desired.
When either of a a a or b b b is empty, we know that i + ( a ) ‾ i + ( b ) \overline{i^{+}(a)}i^{+}(b) i + ( a ) i + ( b ) contains no open pair, and thus we have ℓ S ( y ) = 0 \ell_S(y)=0 ℓ S ( y ) = 0 , satisfying our desired inequality. □
Theorem 8.6. The metric ℓ T \ell_T ℓ T decreases in each recursive call in rev a , b + \operatorname{rev}^{+}_{a,b} rev a , b + .
Proof. By Theorem 8.5 , it suffices to show that ℓ S ( y ) \ell_S(y) ℓ S ( y ) increases in each recursive call. This is immediate, as each recursive call generates a new derivation using step transitivity, which increases ℓ S ( y ) \ell_S(y) ℓ S ( y ) by the size of the relation used, and ℓ R r e v \ell_{R_{\mathrm{rev}}} ℓ R rev is always 1. Hence, in each recursive call, ℓ S ( y ) \ell_S(y) ℓ S ( y ) increases by 1, and thus ℓ B ( a , b ) − ℓ S ( y ) \ell_B(a,b)-\ell_S(y) ℓ B ( a , b ) − ℓ S ( y ) decreases by 1. □
As ℓ T \ell_T ℓ T is a natural-number metric, it is well-founded, and hence our iterative rewriting function rev + \operatorname{rev}^{+} rev + terminates. We finally write a wrapper function which will be used to solve the word problem in the monoid.
Definition 8.7. We define simple reversing of a monoid pair r + : B W + → B W + → B W r^{+}: BW^{+} \to BW^{+} \to BW r + : B W + → B W + → B W by
r + ( a , b ) = rev a , b + ( a b ‾ , ⟨ a b ‾ → R r e v a b ‾ , r e f l ⟩ ) r^{+}(a,b)=\operatorname{rev}^{+}_{a,b}\left(\overline{ab},\left\langle\overline{ab}\mathrel{\to_{R_{\mathrm{rev}}}}\overline{ab},\mathrm{refl}\right\rangle\right) r + ( a , b ) = rev a , b + ( ab , ⟨ ab → R rev ab , refl ⟩ ) We define a monoid solver solve + : ( B W + ) 2 → B o o l \operatorname{solve}^{+}: (BW^{+})^{2} \to\mathrm{Bool} solve + : ( B W + ) 2 → Bool by solve + ( a , b ) = t r u e \operatorname{solve}^{+}(a,b)=\mathrm{true} solve + ( a , b ) = true iff r + ( a , b ) = ε r^{+}(a,b)=\varepsilon r + ( a , b ) = ε . We amass a number of theorems about r + r^{+} r + in order to show correctness of solve + \operatorname{solve}^{+} solve + .
Lemma 8.8. a b ‾ ⟶ R r e v ∗ r + ( a , b ) \overline{ab}\mathrel{\mathop{\longrightarrow}\limits^{*}_{R_{\mathrm{rev}}}}r^{+}(a,b) ab R rev ⟶ ∗ r + ( a , b ) holds immediately.
We next show that the output of r + ( a , b ) r^{+}(a,b) r + ( a , b ) is in positive-negative form.
Lemma 8.9. For a , b ∈ B W + a,b\in BW^{+} a , b ∈ B W + , r + ( a , b ) r^{+}(a,b) r + ( a , b ) contains no open pair (substring of the form σ i ‾ σ j \overline{\sigma_i}\sigma_j σ i σ j ).
Proof. We show that for any x ∈ B W x\in BW x ∈ B W , y = ⟨ a b ‾ → R r e v x , κ ⟩ y=\langle\overline{ab}\to_{R_{\mathrm{rev}}}x,\kappa\rangle y = ⟨ ab → R rev x , κ ⟩ we must have that rev a , b + ( x , y ) \operatorname{rev}^{+}_{a,b}(x,y) rev a , b + ( x , y ) contains no open pair. We proceed by induction on ( x , y ) ∈ T a , b (x,y)\in T_{a,b} ( x , y ) ∈ T a , b using strong induction on ℓ T a , b \ell_{T_{a,b}} ℓ T a , b . We then split into the four cases in the definition of rev a , b + \operatorname{rev}^{+}_{a,b} rev a , b + . Let’s look at one illustrative case. Say we have x = x 1 ⋅ σ i ‾ σ j ⋅ x 2 x=x_1\cdot\overline{\sigma_i}\sigma_j\cdot x_2 x = x 1 ⋅ σ i σ j ⋅ x 2 with ∣ i − j ∣ > 1 |i-j|>1 ∣ i − j ∣ > 1 , and thus rev a , b + ( x , y ) = rev a , b + ( x 1 ⋅ σ j σ i ‾ ⋅ x 2 , ⟨ i + ( a ) i + ( b ) ‾ → R r e v x 1 ⋅ σ j σ i ‾ ⋅ x 2 , step trans ( y , σ i ‾ σ j , σ j σ i ‾ ) ⟩ ) \operatorname{rev}^{+}_{a,b}(x,y)=\operatorname{rev}^{+}_{a,b}\left(x_1\cdot\sigma_j\overline{\sigma_i}\cdot x_2,\left\langle\overline{i^{+}(a)i^{+}(b)}\to_{R_{\mathrm{rev}}}x_1\cdot\sigma_j\overline{\sigma_i}\cdot x_2,\operatorname{step\ trans}(y,\overline{\sigma_i}\sigma_j,\sigma_j\overline{\sigma_i})\right\rangle\right) rev a , b + ( x , y ) = rev a , b + ( x 1 ⋅ σ j σ i ⋅ x 2 , ⟨ i + ( a ) i + ( b ) → R rev x 1 ⋅ σ j σ i ⋅ x 2 , step trans ( y , σ i σ j , σ j σ i ) ⟩ ) .
Note that ℓ T a , b ( x , y ) = 1 + ℓ T a , b ( ( x 1 ⋅ σ j σ i ‾ ⋅ x 2 , ⟨ i + ( a ) i + ( b ) ‾ → R r e v x 1 ⋅ σ j σ i ‾ ⋅ x 2 , step trans ( y , σ i ‾ σ j , σ j σ i ‾ ) ⟩ ) ) \ell_{T_{a,b}}(x,y)=1+\ell_{T_{a,b}}\left(\left(x_1\cdot\sigma_j\overline{\sigma_i}\cdot x_2,\left\langle\overline{i^{+}(a)i^{+}(b)}\to_{R_{\mathrm{rev}}}x_1\cdot\sigma_j\overline{\sigma_i}\cdot x_2,\operatorname{step\ trans}(y,\overline{\sigma_i}\sigma_j,\sigma_j\overline{\sigma_i})\right\rangle\right)\right) ℓ T a , b ( x , y ) = 1 + ℓ T a , b ( ( x 1 ⋅ σ j σ i ⋅ x 2 , ⟨ i + ( a ) i + ( b ) → R rev x 1 ⋅ σ j σ i ⋅ x 2 , step trans ( y , σ i σ j , σ j σ i ) ⟩ ) ) , and so we apply our inductive hypothesis to conclude that rev a , b + ( x 1 ⋅ σ j σ i ‾ ⋅ x 2 , ⟨ i + ( a ) i + ( b ) ‾ → R r e v x 1 ⋅ σ j σ i ‾ ⋅ x 2 , step trans ( y , σ i ‾ σ j , σ j σ i ‾ ) ⟩ ) \operatorname{rev}^{+}_{a,b}\left(x_1\cdot\sigma_j\overline{\sigma_i}\cdot x_2,\left\langle\overline{i^{+}(a)i^{+}(b)}\to_{R_{\mathrm{rev}}}x_1\cdot\sigma_j\overline{\sigma_i}\cdot x_2,\operatorname{step\ trans}(y,\overline{\sigma_i}\sigma_j,\sigma_j\overline{\sigma_i})\right\rangle\right) rev a , b + ( x 1 ⋅ σ j σ i ⋅ x 2 , ⟨ i + ( a ) i + ( b ) → R rev x 1 ⋅ σ j σ i ⋅ x 2 , step trans ( y , σ i σ j , σ j σ i ) ⟩ ) , and thus rev a , b + ( x , y ) \operatorname{rev}^{+}_{a,b}(x,y) rev a , b + ( x , y ) contains no open pair. Finally, we conclude that r + ( a , b ) r^{+}(a,b) r + ( a , b ) contains no open pair as desired.
Lemma 8.10. If a word w ∈ B W w\in BW w ∈ B W contains no open pairs, then it is in positive-negative form – that is, there exist c , d ∈ B W + c,d\in BW^{+} c , d ∈ B W + such that w = c ‾ d w=\overline{c}d w = c d . (Proof by induction on w w w .)
Finally, we put together the two previous lemmas to obtain our desired theorem:
Theorem 8.11. For any a , b ∈ B W + a,b\in BW^{+} a , b ∈ B W + , there exist c , d ∈ B W + c,d\in BW^{+} c , d ∈ B W + such that r + ( a , b ) = c ‾ d r^{+}(a,b)=\overline{c}d r + ( a , b ) = c d .
We can now prove a correctness theorem for our monoid solver:
Theorem 8.12. solve + ( a , b ) = t r u e \operatorname{solve}^{+}(a,b)=\mathrm{true} solve + ( a , b ) = true if and only if a ≡ + b a\equiv^{+}b a ≡ + b
Proof. Forward direction: Assume solve + ( a , b ) = t r u e \operatorname{solve}^{+}(a,b)=\mathrm{true} solve + ( a , b ) = true , so r + ( a , b ) = ε r^{+}(a,b)=\varepsilon r + ( a , b ) = ε . Then by Lemma 8.8 , a b ‾ ⟶ R r e v ∗ ε \overline{ab}\mathrel{\mathop{\longrightarrow}\limits^{*}_{R_{\mathrm{rev}}}}\varepsilon ab R rev ⟶ ∗ ε . Thus by Theorem 2.23, a b ‾ ≡ ε \overline{ab}\equiv\varepsilon ab ≡ ε , so a ≡ b a\equiv b a ≡ b and by Ore localization 3.14, a ≡ + b a\equiv^{+}b a ≡ + b
Backward direction: Assume a ≡ + b a\equiv^{+}b a ≡ + b . Then by Theorem 5.13 , there is a grid with source ( a , b ) (a,b) ( a , b ) and target ( ε , ε ) (\varepsilon,\varepsilon) ( ε , ε ) . Further, by Theorem 8.11 we know that for some c , d ∈ B W + c,d\in BW^{+} c , d ∈ B W + , r + ( a , b ) = c ‾ d r^{+}(a,b)=\overline{c}d r + ( a , b ) = c d . Hence by Lemma 8.8 , a b ‾ ⟶ R r e v ∗ c ‾ d \overline{ab}\mathrel{\mathop{\longrightarrow}\limits^{*}_{R_{\mathrm{rev}}}}\overline{c}d ab R rev ⟶ ∗ c d . By Theorem 6.3 , there is a grid with source ( a , b ) (a,b) ( a , b ) and target ( c , d ) (c,d) ( c , d ) . By uniqueness of grid sinks (Theorem 5.9 ), c = ε c=\varepsilon c = ε and d = ε d=\varepsilon d = ε . Thus r + ( a , b ) = ε r^{+}(a,b)=\varepsilon r + ( a , b ) = ε and solve + ( a , b ) = t r u e \operatorname{solve}^{+}(a,b)=\mathrm{true} solve + ( a , b ) = true .
In fact, for the forward direction, there is a method which does not use Ore’s theorem, but rather works through grids. Since a b ‾ → R r e v ∗ ε ( = ε ε ) \overline{ab} \xrightarrow[\ R_{\mathrm{rev}}]{*} \varepsilon(=\varepsilon\varepsilon) ab ∗ R rev ε ( = εε ) , by Theorem 6.3 , there is a grid from ( a , b ) (a,b) ( a , b ) to ( ε , ε ) (\varepsilon,\varepsilon) ( ε , ε ) , and hence by Theorem 5.4 a ≡ + b a \equiv_{+} b a ≡ + b .
We also have an alternative proof for the backward direction, which uses a sort of restricted confluence for Semi-Thue systems over R r e v R_{\mathrm{rev}} R rev . We begin with two theorems about partial grids “nested” inside grids which share essentially the same spine (up to deletion of 1 1 1 and 1 ‾ \overline{1} 1 ), which will aid in the confluence proof:
Theorem 8.13. Let g = ⟨ a , b , c , d ⟩ ∈ G g=\langle a,b,c,d\rangle\in G g = ⟨ a , b , c , d ⟩ ∈ G and p = ⟨ a 0 , b 0 , c 0 , m 0 , d 0 ⟩ ∈ G P p=\langle a_0,b_0,c_0,m_0,d_0\rangle\in G_P p = ⟨ a 0 , b 0 , c 0 , m 0 , d 0 ⟩ ∈ G P . Recall that s 1 s^1 s 1 deletes all instances of 1 1 1 or 1 ‾ \overline{1} 1 from a braid word. If a = s 1 , + ( a 0 ‾ ) a=s^{1,+}(\overline{a_0}) a = s 1 , + ( a 0 ) , b = s 1 , + ( b 0 ) b=s^{1,+}(b_0) b = s 1 , + ( b 0 ) , and there exists c 1 , d 1 ∈ B W + c_1,d_1\in BW^+ c 1 , d 1 ∈ B W + such that c = s 1 , + ( c 0 ) ⋅ c 1 c=s^{1,+}(c_0)\cdot c_1 c = s 1 , + ( c 0 ) ⋅ c 1 and d = s 1 , + ( d 0 ‾ ) ⋅ d 1 d=s^{1,+}(\overline{d_0})\cdot d_1 d = s 1 , + ( d 0 ) ⋅ d 1 , then we have s 1 ( m 0 ) → R r e v ∗ c 1 ⋅ d 1 ‾ s^1(m_0)\xrightarrow[\ R_{\mathrm{rev}}]{*}c_1\cdot\overline{d_1} s 1 ( m 0 ) ∗ R rev c 1 ⋅ d 1 .
Here is the image to keep in mind – we claim, roughly, that the purple section rewrites under R r e v R_{\mathrm{rev}} R rev to the green section, both read from the bottom-left to the top-right:
Figure 1 (PDF p. 68).
The proof follows the strategy of Theorem 7.14 , inducting on the grid and proceeding by extensive casework in each inductive case, splitting the partial grid as appropriate, and using prefix-suffix fact (1) from Theorem 7.14 to help apply the inductive hypothesis.
From the above theorem, we can immediately deduce our second needed theorem, that the middle frontier of a partial grid reverses to the sink of the grid in which it is nested:
Theorem 8.14. Let g = ⟨ a , b , c , d ⟩ ∈ G g=\langle a,b,c,d\rangle\in G g = ⟨ a , b , c , d ⟩ ∈ G and p = ⟨ a 0 , b 0 , c 0 , m 0 , d 0 ⟩ ∈ G P p=\langle a_0,b_0,c_0,m_0,d_0\rangle\in G_P p = ⟨ a 0 , b 0 , c 0 , m 0 , d 0 ⟩ ∈ G P . If a = s 1 , + ( a 0 ‾ ) a=s^{1,+}(\overline{a_0}) a = s 1 , + ( a 0 ) and b = s 1 , + ( b 0 ) b=s^{1,+}(b_0) b = s 1 , + ( b 0 ) , then we have s 1 ( c 0 m 0 d 0 ) → R r e v ∗ c d ‾ s^1(c_0m_0d_0)\xrightarrow[\ R_{\mathrm{rev}}]{*}\overline{cd} s 1 ( c 0 m 0 d 0 ) ∗ R rev c d .
Now we are prepared to state and prove restricted confluence.
Theorem 8.15. Let a , b ∈ B W + a,b\in BW^+ a , b ∈ B W + and w 1 , w 2 ∈ B W w_1,w_2\in BW w 1 , w 2 ∈ B W . If a b ‾ → R r e v ∗ w 1 \overline{ab}\xrightarrow[\ R_{\mathrm{rev}}]{*}w_1 ab ∗ R rev w 1 and a b ‾ → R r e v ∗ w 2 \overline{ab}\xrightarrow[\ R_{\mathrm{rev}}]{*}w_2 ab ∗ R rev w 2 , then there exists some w ∈ B W w\in BW w ∈ B W such that w 1 → R r e v ∗ w w_1\xrightarrow[\ R_{\mathrm{rev}}]{*}w w 1 ∗ R rev w and w 2 → R r e v ∗ w w_2\xrightarrow[\ R_{\mathrm{rev}}]{*}w w 2 ∗ R rev w .
Proof. First consider the case of nonempty a a a and b b b . We know there are c , d ∈ B W + c,d\in BW^+ c , d ∈ B W + such that ⟨ a , b , c , d ⟩ ∈ G \langle a,b,c,d\rangle\in G ⟨ a , b , c , d ⟩ ∈ G , by existence of grids (Theorem 5.16 ). Let w = c d ‾ w=\overline{cd} w = c d . Since a b ‾ → R r e v ∗ w 1 \overline{ab}\xrightarrow[\ R_{\mathrm{rev}}]{*}w_1 ab ∗ R rev w 1 , there is a partial grid with spine ( a , b ) (a,b) ( a , b ) and total frontier t 1 t_1 t 1 such that s 1 = w 1 s^1=w_1 s 1 = w 1 , so by Theorem 8.14 , s 1 ( t 1 ) → R r e v ∗ c d ‾ s^1(t_1)\xrightarrow[\ R_{\mathrm{rev}}]{*}\overline{cd} s 1 ( t 1 ) ∗ R rev c d , and thus w 1 → R r e v ∗ c d ‾ w_1\xrightarrow[\ R_{\mathrm{rev}}]{*}\overline{cd} w 1 ∗ R rev c d as desired. We show that w 2 → R r e v ∗ c d ‾ w_2\xrightarrow[\ R_{\mathrm{rev}}]{*}\overline{cd} w 2 ∗ R rev c d in exactly the same manner.
In the case where either a a a or b b b is empty, a b ‾ \overline{ab} ab contains no open pairs, so a b ‾ = w 1 \overline{ab}=w_1 ab = w 1 and a b ‾ = w 2 \overline{ab}=w_2 ab = w 2 . Thus, we may use w 1 w_1 w 1 for w w w , and both desired derivations are instances of reflexivity.
Now we can return to our second proof of the reverse direction of the monoid solver’s correctness from Theorem 8.12 . Assume that a ≡ + b a\equiv_{+}b a ≡ + b . Then by Theorem 5.13 , there is a grid with source ( a , b ) (a,b) ( a , b ) and target ( ε , ε ) (\varepsilon,\varepsilon) ( ε , ε ) . Thus, by the forward direction of Theorem 6.3 , a b ‾ → R r e v ∗ ε \overline{ab}\xrightarrow[\ R_{\mathrm{rev}}]{*}\varepsilon ab ∗ R rev ε . Since a b ‾ → R r e v ∗ r + ( a , b ) \overline{ab}\xrightarrow[\ R_{\mathrm{rev}}]{*}r^+(a,b) ab ∗ R rev r + ( a , b ) , by Theorem 8.15 , there exists some c ∈ B W c\in BW c ∈ B W such that ε → R r e v ∗ c \varepsilon\xrightarrow[\ R_{\mathrm{rev}}]{*}c ε ∗ R rev c (and thus c = ε c=\varepsilon c = ε ) and r + ( a , b ) → R r e v ∗ c r^+(a,b)\xrightarrow[\ R_{\mathrm{rev}}]{*}c r + ( a , b ) ∗ R rev c . Since r + ( a , b ) r^+(a,b) r + ( a , b ) is in positive-negative form, we must have r + ( a , b ) = c = ε r^+(a,b)=c=\varepsilon r + ( a , b ) = c = ε as desired.
This second proof is not very different from the first, but substitutes one instance of grids for restricted confluence.
We thus have created both a solver for the braid monoid (solve+ ^{+} + ), as well as a method for reversing any word in negative-positive form (rev+ ^{+} + ).
Group Solver
We now work to implement a solver for the word problem in the braid group. This again largely relies on a method to iteratively apply reversing rewrites to a braid word, akin to rev+ ^{+} + . However, we may no longer restrict the input word to one in negative-positive form. We will still need to restrict the codomain of this new reversing function.
Definition 8.16. We define the set of braid words in positive-negative form as B W P N BW^{PN} B W P N – that is, the set of all w ∈ B W w \in BW w ∈ B W of the form c ‾ d ‾ \overline{c}\overline{d} c d for c , d ∈ B W + c,d \in BW^{+} c , d ∈ B W + .
Definition 8.17. We define the reversing function rev : B W → B W P N \operatorname{rev}:BW \to BW^{PN} rev : B W → B W P N as follows.31 Consider some w ∈ B W w \in BW w ∈ B W . We know that there must exist some u 0 , v 0 ∈ B W + u_0,v_0 \in BW^{+} u 0 , v 0 ∈ B W + , not both the empty string, and some w ′ ∈ B W w' \in BW w ′ ∈ B W such that w = u 0 ‾ v 0 ‾ w ′ w=\overline{u_0}\overline{v_0}w' w = u 0 v 0 w ′ .32 Note that w ′ w' w ′ has length strictly less than w w w .
Let c , d ∈ B W + c,d \in BW^{+} c , d ∈ B W + be such that r + ( u 0 , v 0 ) = c ‾ d ‾ r^{+}(u_0,v_0)=\overline{c}\overline{d} r + ( u 0 , v 0 ) = c d . Let our recursive call rev ( w ′ ) \operatorname{rev}(w') rev ( w ′ ) return e ‾ f ‾ \overline{e}\overline{f} e f . Then define rev ( w ) = c ‾ ⋅ r + ( d ‾ , e ‾ ) ⋅ f ‾ \operatorname{rev}(w)=\overline{c}\cdot r^{+}(\overline{d},\overline{e})\cdot\overline{f} rev ( w ) = c ⋅ r + ( d , e ) ⋅ f . Note that this is indeed in positive-negative form.
We can show that rev preserves equivalence via induction and appeals to the behavior of r + r^{+} r + :
Theorem 8.18. For any w ∈ B W w \in BW w ∈ B W , we have w ⟶ R r e v ∗ rev ( w ) w \mathrel{\mathop{\longrightarrow}\limits^{*}_{R_{\mathrm{rev}}}} \operatorname{rev}(w) w R rev ⟶ ∗ rev ( w ) .
For our Lean formalization, it is easier (but not strictly necessary) to bundle this fact into the definition of rev. Thus, we define the codomain of rev as follows:
structure ReverseResult (L : List (N × Bool)) where
result : List (N × Bool)
ordered : SignedList.PosNegData result
derivation : SemiThueData reversing L result
That is, the codomain is the set of braid words (result) in positive-negative order (ordered) such that w ⟶ R r e v ∗ rev ( w ) w \mathrel{\mathop{\longrightarrow}\limits^{*}_{R_{\mathrm{rev}}}} \operatorname{rev}(w) w R rev ⟶ ∗ rev ( w ) (derivation).
With reversing for words in B W BW B W defined, we may move on to the word problem in the braid group. Our group solver will be a bit more complex than our monoid solver – it does not suffice to check if the output of rev is the empty string.
Definition 8.19. We define a procedure solve : B W 2 → B o o l \operatorname{solve}:BW^{2} \to\mathrm{Bool} solve : B W 2 → Bool for determining equality in the braid group. Given w 1 , w 2 ∈ B W w_1,w_2 \in BW w 1 , w 2 ∈ B W , let rev ( w 1 ‾ w 2 ) = c ‾ d ‾ \operatorname{rev}(\overline{w_1}w_2)=\overline{c}\overline{d} rev ( w 1 w 2 ) = c d . Then, solve ( w 1 , w 2 ) = t r u e \operatorname{solve}(w_1,w_2)=\mathrm{true} solve ( w 1 , w 2 ) = true iff solve + ( d , c ) = t r u e \operatorname{solve}^{+}(d,c)=\mathrm{true} solve + ( d , c ) = true (that is, iff r + ( d , c ) = ε r^{+}(d,c)=\varepsilon r + ( d , c ) = ε ).
Next we show correctness of this procedure.
Theorem 8.20. For any w 1 , w 2 ∈ B W w_1,w_2 \in BW w 1 , w 2 ∈ B W , solve ( w 1 , w 2 ) = t r u e \operatorname{solve}(w_1,w_2)=\mathrm{true} solve ( w 1 , w 2 ) = true if and only if w 1 ≡ w 2 w_1 \equiv w_2 w 1 ≡ w 2 .
Proof. Forward direction : Assume solve ( w 1 , w 2 ) = t r u e \operatorname{solve}(w_1,w_2)=\mathrm{true} solve ( w 1 , w 2 ) = true . Letting rev ( w 1 ‾ w 2 ) = c ‾ d ‾ \operatorname{rev}(\overline{w_1}w_2)=\overline{c}\overline{d} rev ( w 1 w 2 ) = c d , we know we have solve + ( d , c ) = t r u e \operatorname{solve}^{+}(d,c)=\mathrm{true} solve + ( d , c ) = true . By correctness of solve + \operatorname{solve}^{+} solve + , we know that c ≡ + d c \equiv^{+} d c ≡ + d . Thus c ≡ d c \equiv d c ≡ d and c ‾ d ‾ ≡ ε \overline{c}\overline{d} \equiv\varepsilon c d ≡ ε . Returning to the fact that rev ( w 1 w 2 ‾ ) = c d ‾ \operatorname{rev}(\overline{w_1w_2})=\overline{cd} rev ( w 1 w 2 ) = c d , we know by Theorems 8.18 and 6.2 that w 1 w 2 ‾ ≡ c d ‾ \overline{w_1w_2}\equiv\overline{cd} w 1 w 2 ≡ c d , and so w 1 w 2 ‾ ≡ ε \overline{w_1w_2}\equiv\varepsilon w 1 w 2 ≡ ε as desired.
Reverse direction : Assume w 1 ≡ w 2 w_1\equiv w_2 w 1 ≡ w 2 . Then w 1 w 2 ‾ ≡ 1 \overline{w_1w_2}\equiv1 w 1 w 2 ≡ 1 . Let rev ( w 1 w 2 ‾ ) = c ‾ \operatorname{rev}(\overline{w_1w_2})=\overline{c} rev ( w 1 w 2 ) = c . Then we have w 1 w 2 ‾ ≡ c ‾ \overline{w_1w_2}\equiv\overline{c} w 1 w 2 ≡ c again by Theorems 8.18 and 6.2 , and so c ‾ ≡ 1 \overline{c}\equiv1 c ≡ 1 . Thus, c ≡ d c\equiv d c ≡ d , and so by Ore localization, c ≡ + d c\equiv^{+}d c ≡ + d . By correctness of our monoid solver, we know solve + ( d , c ) = true \operatorname{solve}^{+}(d,c)=\text{true} solve + ( d , c ) = true . As solve ( w 1 , w 2 ) = solve + ( d , c ) \operatorname{solve}(w_1,w_2)=\operatorname{solve}^{+}(d,c) solve ( w 1 , w 2 ) = solve + ( d , c ) , we have our desired conclusion. □
Et voila! Thus, we have a terminating and correct algorithm to solve the braid word problem! Given two words in the braid group, we can run braid_group_word_solver. For example,
#eval braid_word_solver [(4, false), (1, true), (2, true), (1, true)]
[(2, true), (1, true), (2, true), (4, false)]
returns true, as the two words represent equal elements in the group.
Or given two elements in the group B B B , we can use two applications of Quotient.exists_rep to build braid_solver. For example, we can run
#eval braid_solver (σi 1 * σi 2 * σi 1) (σi 2 * σi 1 * σi 2 * (σi 3)⁻¹* (σi 1 * σi 3)⁻¹)
This comes with the specification that
theorem braid_solver_correct {a b : BraidGroupInf} : braid_solver a b ↔ a = b
Results have been instantaneous using #eval on small cases (approximately .33 seconds using the #time command). Comparing two elements of B 8 B_8 B 8 each with length 500 took about 17 seconds. The runtime of the code could certainly be improved. A number of constructive definitions carry unnecessary data – data that makes proofs easier (by showing as an object is defined that a given data-carrying property holds, instead of later proving the property by structural induction), but is technically unnecessary. While Prop-valued properties are ignored by the compiler, data-carrying properties, such as SignedList.PosNegData or SemiThueData are computed, and so slow down the calculation. The main contribution of this project is the mathematical theory, and so we have not spent significant time attempting to speed up code runtime (especially as it would come at the cost of much more work to set up the proofs).
Finite Braid Group Solver
We now return at last to the case of the finite braid groups. Note that we have been able to avoid the work of implementing Ore localization and grids for finite braid groups – we haven’t even shown simple monoid properties like common multiples nor cancellativity.
The solver is incredibly simple : we cast the finite braid group words to infinite braid group words, and run our braid group solver. In this section, unlike § 2.6 , we are careful to keep track of the following casts:
Definition 8.21. Let i n i_n i n be the inclusion map from B W n BW_n B W n to B W BW B W . Let s n s_n s n map appropriately-bounded elements of B W BW B W to B W n BW_n B W n . (By abuse of notation, we also let both of these functions be used with B W + BW^{+} B W + and B W n + BW_n^{+} B W n + in place of B W BW B W and B W n BW_n B W n respectively).
Definition 8.22. We define the finite braid group word solver as solve n ( a , b ) : = solve ( i n ( a ) , i n ( b ) ) \operatorname{solve}_n(a,b):=\operatorname{solve}(i_n(a),i_n(b)) solve n ( a , b ) := solve ( i n ( a ) , i n ( b )) for a , b ∈ B W n a,b\in BW_n a , b ∈ B W n .
Termination is thus immediate. Correctness requires one main lemma about reversing derivations, shown by induction :
Lemma 8.23. Given c ∈ B W c \in BW c ∈ B W , if the index of the largest generator occurring in c c c is strictly less than n − 1 n-1 n − 1 , and c → R r e v ∗ d c \xrightarrow{R_{\mathrm{rev}}^{*}} d c R rev ∗ d , then the index of the largest generator occurring in d d d is also strictly less than n − 1 n-1 n − 1 , and moreover, s n ( c ) ≡ n s n ( d ) s_n(c) \equiv_n s_n(d) s n ( c ) ≡ n s n ( d ) .
Theorem 8.24. Given a , b ∈ B W n a,b \in BW_n a , b ∈ B W n , solve n ( a , b ) = t r u e \operatorname{solve}_n(a,b)=\mathrm{true} solve n ( a , b ) = true iff a ≡ n b a \equiv_n b a ≡ n b .
Proof. Forward direction : Assume solve n ( a , b ) = t r u e \operatorname{solve}_n(a,b)=\mathrm{true} solve n ( a , b ) = true . Then solve ( i n ( a ) , i n ( b ) ) = t r u e \operatorname{solve}(i_n(a),i_n(b))=\mathrm{true} solve ( i n ( a ) , i n ( b )) = true . Letting rev ( ( i n ( a ) , i n ( b ) ) ‾ ) = c d ‾ \operatorname{rev}(\overline{(i_n(a),i_n(b))})=\overline{cd} rev ( ( i n ( a ) , i n ( b )) ) = c d , we know we have solve + ( c , d ) = t r u e \operatorname{solve}^{+}(c,d)=\mathrm{true} solve + ( c , d ) = true . By correctness of solve + \operatorname{solve}^{+} solve + , we know we have c ≡ + d c \equiv^{+} d c ≡ + d . Returning to the fact that rev ( ( i n ( a ) , i n ( b ) ) ‾ ) = c d ‾ \operatorname{rev}(\overline{(i_n(a),i_n(b))})=\overline{cd} rev ( ( i n ( a ) , i n ( b )) ) = c d , we know that ( i n ( a ) , i n ( b ) ) ‾ → R r e v ∗ c d ‾ \overline{(i_n(a),i_n(b))} \xrightarrow{R_{\mathrm{rev}}^{*}} \overline{cd} ( i n ( a ) , i n ( b )) R rev ∗ c d .
We know that the index of the largest generator in ( i n ( a ) , i n ( b ) ) ‾ \overline{(i_n(a),i_n(b))} ( i n ( a ) , i n ( b )) must be strictly less than n − 1 n-1 n − 1 , so by Lemma 8.23, the same holds for the word c d ‾ \overline{cd} c d , and hence c c c and d d d themselves. Thus Theorem 2.32 allows us to conclude s n ( c ) ≡ n + s n ( d ) s_n(c) \equiv_n^{+} s_n(d) s n ( c ) ≡ n + s n ( d ) from c ≡ d c \equiv d c ≡ d . We obtain s n ( c d ‾ ) ≡ ε s_n(\overline{cd}) \equiv\varepsilon s n ( c d ) ≡ ε . By the second part of Lemma 8.23, we know from ( i n ( a ) , i n ( b ) ) ‾ → R r e v ∗ c d ‾ \overline{(i_n(a),i_n(b))} \xrightarrow{R_{\mathrm{rev}}^{*}} \overline{cd} ( i n ( a ) , i n ( b )) R rev ∗ c d that s n ( ( i n ( a ) , i n ( b ) ) ‾ ) ≡ n s n ( c d ‾ ) s_n(\overline{(i_n(a),i_n(b))}) \equiv_n s_n(\overline{cd}) s n ( ( i n ( a ) , i n ( b )) ) ≡ n s n ( c d ) . As s n ( c d ‾ ) ≡ ε s_n(\overline{cd}) \equiv\varepsilon s n ( c d ) ≡ ε , we have a b ‾ ≡ n ε \overline{ab} \equiv_n \varepsilon ab ≡ n ε , so we have a ≡ n b a \equiv_n b a ≡ n b as desired.
Reverse direction : Assume a ≡ n b a \equiv_n b a ≡ n b . Then i n ( a ) ≡ i n ( b ) i_n(a) \equiv i_n(b) i n ( a ) ≡ i n ( b ) and so solve ( i n ( a ) , i n ( b ) ) = t r u e \operatorname{solve}(i_n(a),i_n(b))=\mathrm{true} solve ( i n ( a ) , i n ( b )) = true . Hence solve n ( a , b ) = t r u e \operatorname{solve}_n(a,b)=\mathrm{true} solve n ( a , b ) = true as desired.
As a consequence of the correctness of this algorithm, we may now prove one elusive fact from the end of § 2.6 :
Theorem 8.25. If a , b ∈ B W a,b \in BW a , b ∈ B W have no generator with index n − 1 n-1 n − 1 or larger, and a ≡ b a \equiv b a ≡ b , then s n ( a ) ≡ n s n ( b ) s_n(a) \equiv_n s_n(b) s n ( a ) ≡ n s n ( b ) .
Proof. Assume a ≡ b a \equiv b a ≡ b . By correctness of solve, we know solve ( a , b ) = t r u e \operatorname{solve}(a,b)=\mathrm{true} solve ( a , b ) = true . We know a = i n ( s n ( a ) ) a=i_n(s_n(a)) a = i n ( s n ( a )) and the analogous property holds for b b b , so solve ( i n ( s n ( a ) ) , i n ( s n ( b ) ) ) = t r u e \operatorname{solve}(i_n(s_n(a)),i_n(s_n(b)))=\mathrm{true} solve ( i n ( s n ( a )) , i n ( s n ( b ))) = true . By correctness of solve n \operatorname{solve}_n solve n , we have s n ( a ) ≡ n s n ( b ) s_n(a) \equiv_n s_n(b) s n ( a ) ≡ n s n ( b ) as desired.
Future Work
The most tempting work to be completed is a proof of Conjecture 7.24 (any two partial grids with the same frame have the same size). On the topic of grids, another improvement would be to generalize their definition to one parametrized by a set of relations. Further, we could classify which relations lead to grid existence and/or uniqueness, following Dehornoy’s many papers which provide criteria such as right complemented presentations, the cube criterion, homogeneity, etc [9 , 11 , 14 , 17 ] . Such work could eventually lead to a generalization of the word problem solvers presented here to Garside groups and others.
There are also other algorithms to solve the word problem which rely on the results developed in this project. For example, Garside’s method of universal denominators (as mentioned in the introduction) could now be implemented fairly easily. We have also completed initial work necessary for more complex, popular, and efficient-in-practice methods such as Dehornoy’s handle reduction. A formalization of this algorithm could also be useful to other projects, such as Hurtig’s generalization of braid group for machine knitting, which uses the normal form from handle reduction as part of his algorithm to determine equivalence in a certain braided monoidal category [23 ] . (There is a plan to complete a Lean formalization of the mathematics in this paper).33 Other projects are working in the same vein of category-theoretic braids, such as Marco’s formalization project.34 It would thus be potentially useful to identify the braid group with its category-theoretic generalization, as discussed in the introduction.
A larger goal is to formalize topological definitions of the braid group (for example, one under homotopy equivalence and another under ambient isotopy), and prove that the algebraic definition matches the topological ones. (There is some emerging, unpublished activity from AI theorem provers on a related problem using the configuration-space definition of braid groups.)
Beyond formalization of proofs, I am also working on a Lean widget to visualize braids. Given a formalized algorithm, the widget can show a braid transforming as the algorithm is applied to it (such as building its fraction form). In the reverse order, moving from imagery to Lean code, the strings in the widget will be able to be clicked and dragged in order to generate proofs.
Acknowledgements
I would like to thank Jeremy Avigad for his thoughtful feedback and careful edits throughout the project. I am grateful to Patrick Massot for his advice on the formalization of Ore localization for presented monoids. I thank Jim McCann, Jenny Lin, and Nat Hurtig for their brainstorming contributions concerning the definitions of partial grids, and Bhavik Mehta for his enthusiastic, spirited discussions of alternative definitions of partial grids, which led to the inclusion of § 7.4 . I also thank the Mathlib community (especially Yaël Dillies, Johann Commelin, and numerous other maintainers) for their suggestions and assistance, particularly regarding the definitions of presented monoids and braid groups. Lastly, this project has been greatly bolstered by the congenial atmosphere of the Hoskinson Center for Formal Mathematics built by all the students and visitors who have gathered together there to talk Lean and support one another.
The first version of the codebase was completed without AI assistance. During refinements, Github’s Copilot’s line-completion tool was occasionally used (every output was immediately checked by hand). Claude Opus 5.5 was asked to search for duplicate code, summarize the contents of files, and suggest alternatives for theorem and function names.
The prose of the paper used no AI tools. ChatGPT 5 and 6 assisted in Latex formatting. Claude Opus 5.5 was sometimes used to search the codebase for formalized statements given a Latex statement (it provided the name of the theorem and the file in which it was found; the Github links were copied by me).
This work was supported in part by NSF Grant DMS-2434614 and DARPA ExpMath Grant HR0011262E028.
References
Maps
Here, we summarize the many maps used between braid structures in this project. First, we give a diagram of functions between the various infinite braid structures. In the paper, some are often left implicit, such as i + i^{+} i + , but all are carefully noted in the Lean formalization.
Figure 27.
Table 4.
Note: In Lean, the two inclusions are denoted using SignedList.is_true.
We next consider functions between the finite braid structures, as well as maps to and from infinite braid structures. We define B W b o u n d e d n BW_{\mathrm{bounded}_n} B W bounded n as the set of infinite braid group words for which the index of the largest generator is strictly less than n − 1 n-1 n − 1 .
Figure 28.
Table 5.
Note: To implement the inclusion maps in Lean, we use SignedList.bounded to define B W b o u n d e d n BW_{\mathrm{bounded}_n} B W bounded n , and hypotheses of the form ∀ x ∈ w \forall x \in w ∀ x ∈ w , x < n . p r e d x < n.\mathrm{pred} x < n . pred to discuss B W b o u n d e d n + BW^+_{\mathrm{bounded}_n} B W bounded n + .
Dependency Graph
Here is the dependency graph for the project:
Figure 1 (PDF p. 78).
The repository currently contains about 15,000 lines of code.