Please note that the functions in this chapter are only implemented for endomorphisms of finite groups.
‣ IteratedReidemeisterNumberDecomposition( endo1[, endo2] ) | ( function ) |
Returns: two lists of integers.
For a finite group, the sequence of Reidemeister numbers of the iterates of endo1 and endo2, i.e. the sequence R(endo1,endo2), R(endo1^2,endo2^2), ..., is eventually periodic. Thus there exist a periodic sequence \((P_n)_{n \in \mathbb{N}}\) and an eventually zero sequence \((Q_n)_{n \in \mathbb{N}}\) such that
\[\forall n \in \mathbb{N}: R(\varphi^n,\psi^n) = P_n + Q_n.\]
This function returns two lists: the first list contains one period of the sequence \((P_n)_{n \in \mathbb{N}}\), the second list contains \((Q_n)_{n \in \mathbb{N}}\) up to the part where it becomes the constant zero sequence.
gap> G := PcGroupCode( 3913, 12 );; gap> phi := GroupHomomorphismByImages( G, G, [ G.1, G.3 ], [ One(G), One(G) ] );; gap> psi := GroupHomomorphismByImages( G, G, [ G.1, G.3 ], [ G.2, One(G) ] );; gap> IteratedReidemeisterNumberDecomposition( phi ); [ [ 1 ], [ ] ] gap> IteratedReidemeisterNumberDecomposition( phi, psi ); [ [ 12 ], [ -6 ] ]
Let \(\varphi,\psi\colon G \to G\) be endomorphisms such that \(R(\varphi^n,\psi^n) < \infty\) for all \(n \in \mathbb{N}\). Then the Reidemeister zeta function \(Z_{\varphi,\psi}(s)\) of the pair \((\varphi,\psi)\) is defined as
\[Z_{\varphi,\psi}(s) := \exp \sum_{n=1}^\infty \frac{R(\varphi^n,\psi^n)}{n} s^n.\]
‣ IsRationalReidemeisterZetaFunction( endo1[, endo2] ) | ( function ) |
Returns: true if the Reidemeister zeta function of endo1 and endo2 is rational, otherwise false.
‣ ReidemeisterZetaFunction( endo1[, endo2] ) | ( function ) |
Returns: the Reidemeister zeta function of endo1 and endo2 if it is rational, otherwise fail.
‣ PrintReidemeisterZetaFunction( endo1[, endo2] ) | ( function ) |
Returns: a string describing the Reidemeister zeta function of endo1 and endo2.
This is often more readable than evaluating ReidemeisterZetaFunction (6.2-2) in an indeterminate, and does not require rationality.
gap> IsRationalReidemeisterZetaFunction( phi ); true gap> IsRationalReidemeisterZetaFunction( phi, psi ); false gap> s := Indeterminate( Rationals, "s" );; gap> ReidemeisterZetaFunction( phi )(s); (1)/(-s+1) gap> PrintReidemeisterZetaFunction( phi, psi ); "exp(-6*s)*(1-s)^(-12)"
Let \(\varphi,\psi\colon G \to G\) be endomorphisms such that \(R(\varphi^n,\psi^n) < \infty\) for all \(n \in \mathbb{N}\). Then the Reidemeister generating function \(Z^*_{\varphi,\psi}(s)\) of the pair \((\varphi,\psi)\) is defined as
\[Z^*_{\varphi,\psi}(s) := \sum_{n=1}^\infty R(\varphi^n,\psi^n) s^n.\]
‣ IsRationalReidemeisterGeneratingFunction( endo1[, endo2] ) | ( function ) |
Returns: true if the Reidemeister generating function of endo1 and endo2 is rational, otherwise false.
‣ ReidemeisterGeneratingFunction( endo1[, endo2] ) | ( function ) |
Returns: the Reidemeister generating function of endo1 and endo2 if it is rational, otherwise fail.
‣ PrintReidemeisterGeneratingFunction( endo1[, endo2] ) | ( function ) |
Returns: a string describing the Reidemeister generating function of endo1 and endo2.
This is often more readable than evaluating ReidemeisterGeneratingFunction (6.3-2) in an indeterminate, and does not require rationality.
gap> IsRationalReidemeisterGeneratingFunction( phi, psi ); true gap> ReidemeisterGeneratingFunction( phi, psi )( 2 ); -36 gap> PrintReidemeisterGeneratingFunction( phi, psi ); "(6*s^2+6*s)/(-s+1)"
generated by GAPDoc2HTML