[Next][Prev] [Right] [Left] [Up] [Index] [Root]

The Growth Function

GrowthFunction(G) : GrpAtc -> FldFunRatElt
    Primes: SeqEnum                     Default: [ ]
Compute the growth function of the word acceptor automaton associated with G. The growth function of a DFA, A, is the quotient of two integral polynomials in a single variable x. The coefficient of xn in the Taylor expansion (about 0) of this quotient is equal to the number of words of length n accepted by A. That is, the result is a closed form for this generating function.

The algorithm is by Derek Holt. The Primes parameter is no longer used, but is kept for backward compatibility. It may be removed in future releases.


Example GrpAtc_GrowthFunction (H75E10)

We construct a dihedral group of order 10 and compute the growth function of its word acceptor. As the group is finite, the result will be a polynomial. Note here that the R!f is only necessary to get pretty printing, specifically to ensure that f is printed in the variable x.

> R<x> := RationalFunctionField(Integers());
> FG<a,b> := FreeGroup(2);
> Q := quo< FG | a^5, b^2, a^b = a^-1>;
> G := AutomaticGroup(Q);
> f := GrowthFunction(G);
> R!f;
2*x^3 + 4*x^2 + 3*x + 1
Now we take as example an infinite dihedral group. The group is infinite, so the result cannot be polynomial. We then extract the coefficients of the growth function for word lengths 0 to 14.

> FG2<d,e> := FreeGroup(2);
> Q2 := quo<FG2| e^2, d^e = d^-1>;
> G2 := AutomaticGroup(Q2);
> f2 := GrowthFunction(G2);
> R!f2;
(-x^2 - 2*x - 1)/(x - 1)
> PSR := PowerSeriesRing(Integers():Precision := 15);
> Coefficients(PSR!f2);
[ 1, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 ]
 [Next][Prev] [Right] [Left] [Up] [Index] [Root]

Version: V2.19 of Wed Apr 24 15:09:57 EST 2013