genus 2
   counterclockwise order at the base point: a1-, b2-, a2+, b2+, a2-, b1-, a1+, b1+
   [ok] it is the cyclic order (2.1) of the note read clockwise (the note does not fix the sense; nothing depends on it)
   [ok] regular neighbourhood of the whole wedge: one boundary curve, reading the relator (a1 b1^-1 a1^-1 b2 a2 b2^-1 a2^-1 b1)
   [ok] N(a1 v b1): one boundary curve [a1,b1] (a one-holed torus; a1,b1 are linked: True)
   [ok] delta_i- lies between b_{i-1}- and a_i-, delta_i+ between b_i- and a_{i+1}- (all i)
   [ok] the loops a_1..a_g are pairwise unlinked, and delta_i is unlinked with every a_j
   [ok] among the half-edges of the a_j, the two half-edges of each a_i are adjacent
   H_0 = N(a1 v delta1 v a2): boundary words a1 ; delta1 a1^-1 ; a2^-1 delta1^-1 ; a2
   [ok] (a) N(a_i v a_j): three boundary curves a_i, a_j, a_i a_j; classes mod 2 non-zero and distinct (all i != j)
   [ok] (b) N(a_i v delta_i): three boundary curves a_i, b_i a_i b_i^-1, [a_i,b_i] (all i)
   [ok] (c) N(a_i v delta_i v a_j): four boundary curves a_i, b_i a_i b_i^-1, a_j, [a_i,b_i] a_j, each non-zero mod 2 (all i != j); genus 0
   [ok] (e) N(a_1 v ... v a_g): g+1 boundary curves, the central one reads a_1 a_2 ... a_g in increasing order
genus 3
   counterclockwise order at the base point: a1-, b3-, a3+, b3+, a3-, b2-, a2+, b2+, a2-, b1-, a1+, b1+
   [ok] it is the cyclic order (2.1) of the note read clockwise (the note does not fix the sense; nothing depends on it)
   [ok] regular neighbourhood of the whole wedge: one boundary curve, reading the relator (a1 b1^-1 a1^-1 b3 a3 b3^-1 a3^-1 b2 a2 b2^-1 a2^-1 b1)
   [ok] N(a1 v b1): one boundary curve [a1,b1] (a one-holed torus; a1,b1 are linked: True)
   [ok] delta_i- lies between b_{i-1}- and a_i-, delta_i+ between b_i- and a_{i+1}- (all i)
   [ok] the loops a_1..a_g are pairwise unlinked, and delta_i is unlinked with every a_j
   [ok] among the half-edges of the a_j, the two half-edges of each a_i are adjacent
   [ok] (a) N(a_i v a_j): three boundary curves a_i, a_j, a_i a_j; classes mod 2 non-zero and distinct (all i != j)
   [ok] (b) N(a_i v delta_i): three boundary curves a_i, b_i a_i b_i^-1, [a_i,b_i] (all i)
   [ok] (c) N(a_i v delta_i v a_j): four boundary curves a_i, b_i a_i b_i^-1, a_j, [a_i,b_i] a_j, each non-zero mod 2 (all i != j); genus 0
   [ok] (d) N(a_i v a_j v a_l), i<j<l: four boundary curves a_i, a_j, a_l, a_i a_j a_l; classes mod 2 non-zero and distinct
   [ok] (e) N(a_1 v ... v a_g): g+1 boundary curves, the central one reads a_1 a_2 ... a_g in increasing order
genus 4
   counterclockwise order at the base point: a1-, b4-, a4+, b4+, a4-, b3-, a3+, b3+, a3-, b2-, a2+, b2+, a2-, b1-, a1+, b1+
   [ok] it is the cyclic order (2.1) of the note read clockwise (the note does not fix the sense; nothing depends on it)
   [ok] regular neighbourhood of the whole wedge: one boundary curve, reading the relator (a1 b1^-1 a1^-1 b4 a4 b4^-1 a4^-1 b3 a3 b3^-1 a3^-1 b2 a2 b2^-1 a2^-1 b1)
   [ok] N(a1 v b1): one boundary curve [a1,b1] (a one-holed torus; a1,b1 are linked: True)
   [ok] delta_i- lies between b_{i-1}- and a_i-, delta_i+ between b_i- and a_{i+1}- (all i)
   [ok] the loops a_1..a_g are pairwise unlinked, and delta_i is unlinked with every a_j
   [ok] among the half-edges of the a_j, the two half-edges of each a_i are adjacent
   [ok] (a) N(a_i v a_j): three boundary curves a_i, a_j, a_i a_j; classes mod 2 non-zero and distinct (all i != j)
   [ok] (b) N(a_i v delta_i): three boundary curves a_i, b_i a_i b_i^-1, [a_i,b_i] (all i)
   [ok] (c) N(a_i v delta_i v a_j): four boundary curves a_i, b_i a_i b_i^-1, a_j, [a_i,b_i] a_j, each non-zero mod 2 (all i != j); genus 0
   [ok] (d) N(a_i v a_j v a_l), i<j<l: four boundary curves a_i, a_j, a_l, a_i a_j a_l; classes mod 2 non-zero and distinct
   [ok] (e) N(a_1 v ... v a_g): g+1 boundary curves, the central one reads a_1 a_2 ... a_g in increasing order
genus 2: identities in pi_1(S_2)
   [ok] a1 delta1^-1 is conjugate to b1 a1 b1^-1 (in the free group)
   [ok] delta1 a2 (b2 a2 b2^-1)^-1 is the relator: delta1 a2 = b2 a2 b2^-1 in pi_1(S_2)

r2_ribbon.py: 34 checks, 0 failed
