Goto Chapter: Top 1 2 3 4 5 6 7 Bib Ind
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 

3 The homology of origamis and the action of the Veech group.
 3.1 The non-tautological part of homology
 3.2 Functions for the action on homology

3 The homology of origamis and the action of the Veech group.

Important premise: We assume in this section, that all considered origamis have no nontrivial translations. This is equivalent to that the corresponding torus cover has no nontrivial deck transformations.

3.1 The non-tautological part of homology

This section contains functions which compute a basis of the homology \( H = H_1( \mathcal{O}, \mathbb{Z}) \) of an origami \(\mathcal{O} \) with \(d\) squares and the action of an affine transformation \(f\) of \( \mathcal{O}\) on \( H \). The latter is the map \(f_\ast\colon H \to H \). We consider the cellular homology with the squares \( Q_1, \dots Q_d \) of the origami as 2-cells. We call \( \sigma_i \) the bottom edge of the square \(Q_i\) and \( \xi_i\) the left edge of the square \( Q_i \). Then we can represent an element of \(H \) as a formal linear combination of the \(\sigma 's \) and the \(\xi 's \). In GAP we represent elements of \( H \) as elements of \( \mathbb{Z}^{2d} \) in the following way: \(\sigma_i \) is represented by \( e_i \) and \( \xi_i \) is represented by \( e_{i + d} \), where \( e_i \) is the \(i\)-th standard basis vector of \( \mathbb{Z}^{2d}\). Formal sums of elements in \( H \) are represented by the appropriate sums in \( \mathbb{Z}^{2d}\). One has to keep in mind that this description is not unique. More precisely, the homology \( H \) is isomorphic to a subquotient of \(\mathbb{Z}^{2d}\).

The homology has a splitting as sum of the tautological part \( H^{T} \) and the non-tautological part \( H^{NT} \) which is equivalent under the action of the affine group Aff\((\mathcal{O})\) of the origami \( \mathcal{O}\). I.e. \( H = H^{T} \oplus H^{NT} \) with \( H^{T} \) and \( H^{NT} \) both invariant under the action of Aff\((\mathcal{O})\). The sum is orthogonal with respect to the intersection form, the dimension of \( H^{T} \) is 2 and the dimension of \(H^{NT}\) is \( 2g-2\). In the part of the package described in this chapter we provide functions which compute the action of the affine group on the homology \(H\) and on the non-tautological part \( H^{NT}\) and thus obtain the shadow Veech group. For more information on this topic see for example [BKK+22].

3.2 Functions for the action on homology

3.2-1 HomologyOrigami
‣ HomologyOrigami( O )( operation )

Returns: A list of vectors in \(\mathbb{Z}^{2d}\)

This function computes a basis of the homology of O

gap> O := Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7));
Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7), 8)
gap> HomologyOrigami(O);
[ [ 0, 0, 1, 1, 1, -1, 0, 0, 1, 0, 0, -1, 0, 0, -1, 0 ], 
[ 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, -2, 0 ], 
[ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0 ], 
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0 ], 
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0 ], 
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 ] ]

3.2-2 NonTautPartOfHomologyOrigami
‣ NonTautPartOfHomologyOrigami( O, H )( operation )

Returns: A list of vectors in \(\mathbb{Z}^{2d}\)

This function computes a basis of the non-tautological part of the homology H of O.

gap> O := Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7));
Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7), 8)
gap> NonTautPartOfHomologyOrigami(O, HomologyOrigami( O ));
[ [ 0, 0, 1, 1, 1, -1, 0, -2, 1, 0, 2, -1, 0, 0, -1, -1 ], 
[ 0, 0, 0, 0, 0, 0, 1, -1, 0, -1, 1, 0, 0, 0, -2, 2 ], 
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, -1 ], 
[ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, -1 ] ]	

3.2-3 HomologyToString
‣ HomologyToString( H1 )( function )

Returns: a string

This function gives a string representation of the homology vector H1 in the homology of an origami as a formal linear combination of the \( \sigma_i 's\) (resp. s) and the \( \xi_i 's\) (resp. z).

gap> O := Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7));
Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7), 8)
gap> H1 := HomologyOrigami(O)[1];
[ 0, 0, 1, 1, 1, -1, 0, 0, 1, 0, 0, -1, 0, 0, -1, 0 ]
gap> HomologyToString( H1 );
"1s_3 + 1s_4 + 1s_5 - 1s_6 + 1z_1 - 1z_4 - 1z_7"

3.2-4 ActionOfMatrixOnHom
‣ ActionOfMatrixOnHom( O, A )( operation )

Returns: a matrix in \( Sp_{2g}(\mathbb{Z}) \)

This function computes the action of an affine homeomorphism with derivative A on the homology of O w.r.t the basis of the homology computed with HomologyOrigami (3.2-1).

gap> O := Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7));
Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7), 8)
gap> ActionOfMatrixOnHom(O, [[1,10],[0,1]]);
[ [ 1, -2, -2, 2, 0, 0 ], [ -5, -11, -2, 2, 5, 0 ], 
[ -5, -14, -3, 4, 5, 10 ], [ -10, -26, -6, 7, 10, 10 ], 
[ -10, -26, -6, 6, 11, 0 ], [ 0, 0, 0, 0, 0, 1 ] ]

3.2-5 ActionOfMatrixOnHom
‣ ActionOfMatrixOnHom( O, A, H )( operation )

Returns: a matrix in \( Sp_{2g}(\mathbb{Z}) \)

In this method you can choose a basis H of the homology.

gap> O := Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7));
Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7), 8)
gap> H := [ [ 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
>           [ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ] ];;
gap> ActionOfMatrixOnHom(O, [[1,10],[0,1]], H);
[ [ 1, 0, 0, 2, 2, 2 ], [ 0, 1, 0, 5, 5, 0 ], [ 0, 0, 1, 10, 0, 0 ], 
[ 0, 0, 0, 1, 0, 0 ], [ 0, 0, 0, 0, 1, 0 ], [ 0, 0, 0, 0, 0, 1 ] ]

3.2-6 ActionOfMatrixOnNonTaut
‣ ActionOfMatrixOnNonTaut( O, A )( operation )

Returns: a matrix in \( Sp_{2g-2}(\mathbb{Z}) \)

This function computes the action of an affine homeomorphism with derivative A on the non-tautological part of the homology of O w.r.t the basis of the homology computed with HomologyOrigami (3.2-1) and the basis of the non-tautological part of the homology is computed with NonTautPartOfHomologyOrigami (3.2-2) .

gap> O := Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7));
Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7), 8)
gap> ActionOfMatrixOnNonTaut(O, [[1,10],[0,1]]);
[ [ 5, 0, 2, 0 ], [ -1, -9, 2, 5 ], [ -8, 0, -3, 0 ], [ 2, -20, 6, 11 ] ]

3.2-7 ActionOfMatrixOnNonTaut
‣ ActionOfMatrixOnNonTaut( O, A, H )( operation )

Returns: a matrix in \( Sp_{2g-2}(\mathbb{Z}) \)

In this method you can choose in addition a basis H of the homology.

gap> O := Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7));
Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7), 8)
gap> H := [ [ 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
>           [ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ] ];;
gap> ActionOfMatrixOnNonTaut(O, [[1,10],[0,1]], H);
[ [ 1, 0, -4, -2 ], [ 0, 1, 5, 5 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ]

3.2-8 ActionOfMatrixOnNonTaut
‣ ActionOfMatrixOnNonTaut( O, A, NT, H )( operation )

Returns: a matrix in \( Sp_{2g-2}(\mathbb{Z}) \)

In this method you can choose in addition a basis H of the homology as well as a basis NT of the non-tautological part of the homology.

gap> O := Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7));
Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7), 8)
gap> H := [ [ 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
>           [ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ] ];;
gap> NT := NonTautPartOfHomologyOrigami(O, H);;
gap> ActionOfMatrixOnNonTaut(O, [[1, 10], [0, 1]], NT, H);
[ [ 1, 0, -4, -2 ], [ 0, 1, 5, 5 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ]

3.2-9 ShadowVeechGroup
‣ ShadowVeechGroup( O )( operation )

Returns: a matrix group \( S \subseteq Sp_{2g-2}(\mathbb{Z}) \)

This function computes the image of the action of the Veech group on the non-tautological part of the homology of O . If \( A \) is in the Veech group of O and \( f\) is an affine transformation with derivative \( A \) then \( {f_\ast}_{|H^{NT}} \colon {H^{NT}} \to {H^{NT}} \) is in the Shadow Veech group of O , encoded as matrix. The basis of the homology is computed with HomologyOrigami (3.2-1) and the basis of the non-tautological part is computed with NonTautPartOfHomologyOrigami (3.2-2).

gap> O := Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7));
Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7), 8)
gap> ShadowVeechGroup(O);
<matrix group with 154 generators>

3.2-10 ShadowVeechGroup
‣ ShadowVeechGroup( O, H )( operation )

Returns: a matrix group \( S \subseteq Sp_{2g-2}(\mathbb{Z}) \)

In this method you can choose in addition a basis H of the homology, where the basis of the non-tautological part is computed with NonTautPartOfHomologyOrigami (3.2-2).

gap> O := Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7));
Origami((1,2,3,4,5)(6,7), (1,6,8)(2,7), 8)
gap> H := [ [ 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
>           [ 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0 ], 
>           [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 ] ];;	
gap> ShadowVeechGroup(O, H);
<matrix group with 154 generators>
 [Top of Book]  [Contents]   [Previous Chapter]   [Next Chapter] 
Goto Chapter: Top 1 2 3 4 5 6 7 Bib Ind

generated by GAPDoc2HTML