## Step 4 

If D$_{i}$$_{+1}$ is preordered then the algorithm stops and the compression from D$_{i}$$_{+1}$ to D is determined by composition. Otherwise fix a clasp x$_{i}$$_{+1}$ ∈ V ( D$_{i}$ ) and go back to step 1 with i replaced by i + 1. 

To study the algorithm we consider a given iteration i . Then A ( D$_{i}$$_{+1}$ ) is stable by Theorem 2.2 and D$_{i}$$_{+1}$ contains no unlocked clasps by part 2 of Lemma 3.6. This means we may repeat the algorithm as often as necessary. We must prove the algorithm stops eventually. 

In each iteration of the algorithm we are adding a new vertex but not adding any arrows other than loops. The only way this can continue indefinitely is if our algorithm forces vertices to not form arrows with any other elements. We assume every vertex of D$_{i}$ forms an arrow with some other vertex of D$_{i}$ and show every vertex of D$_{i}$$_{+1}$ forms an arrow with some other vertex of D$_{i}$$_{+1}$ . 

Suppose x,y ∈ V ( D$_{i}$ ) satisfy x ̸ = y and xy ∈ A ( D$_{i}$ ). If x ̸ = x$_{i}$ and y ̸ = x$_{i}$ then xy ∈ σ$_{i}$ so xy ∈ A ( D$_{i}$$_{+1}$ ). Note that t$_{i}$ forms an arrow with some other vertex of D$_{i}$$_{+1}$ by construction. We are left with proving x$_{i}$ forms an arrow with some other vertex of D$_{i}$$_{+1}$ . 

Assume there is not an arrow formed by x$_{i}$ and any other vertex of D$_{i}$$_{+1}$ after using construction A. There exist b,z ∈ V ( D$_{i}$ ) such that bx$_{i}$ ∈ A ( D$_{i}$ ), x$_{i}$z ∈ A ( D$_{i}$ ), and bz / ∈ A ( D$_{i}$ ) since x$_{i}$ is a clasp. Then bt$_{i}$ ∈ A ( D$_{i}$$_{+1}$ ) and t$_{i}$z ∈ A ( D$_{i}$$_{+1}$ ) by assumption so b ∈ A$_{i}$ and z ∈ B$_{i}$ . Since b ∈ A$_{i}$ there exists y ∈ V ( D$_{i}$ ) such that ( b,x$_{i}$,y ) ∈ Trans ( D$_{i}$ ). There must also exist a ∈ V ( D$_{i}$ ) such that ax$_{i}$ ∈ A ( D$_{i}$ ) and ay / ∈ A ( D$_{i}$ ) since y ∈ Y$_{i}$ . This gives at$_{i}$ ∈ A ( D$_{i}$$_{+1}$ ) by assumption so a ∈ A$_{i}$ . 

