Magma

MAGMA Computational Algebra System

Magma
 •  How to get it
 •  Download
 •  Online Demo
 
Resources
 •  Online Help
 •  Discovering Mathematics with Magma
 •  Citations
 •  How to cite Magma
 •  Links
 •  Contact us
 
[Next][Prev] [Right] [Left] [Up] [Index] [Root]

The Growth Function

GrowthFunction(G) : GrpAtc -> FldFunRatElt
    Primes: SeqEnum                     Default: [32749, 32719, 32717]
Compute the rational growth function of the word acceptor automaton associated with G. The rational growth function of an automaton A is the quotient of two integral polynomials in a single variable x. The coefficient of xn in the Taylor expansion of this quotient is equal to the number of accepted words of A of length n. To avoid the danger of integer overflow, the calculations are not done over the integers, but modulo a sequence of primes. If, on lifting to the integers, different primes give different results, then the coefficients of the polynomials are too large, and the results are likely to be wrong. A warning message is printed when this happens. The code for this program was written by Laurent Bartholdi.

Setting the Primes parameter allows the specification of a list of primes over which the calculation of the rational growth function is done.


Example GrpAtc_GrowthFunction (H71E10)

We construct a cyclic group of order 5 and compute the rational growth function of its word acceptor. 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> := FreeGroup(1);
> Q := quo< FG | a^5=1>;
> G := AutomaticGroup(Q);
Running Knuth-Bendix with the following parameter values
MaxRelations  = 200
MaxStates     = 0
TidyInt       = 20
MaxWdiffs     = 512
HaltingFactor = 100
MinTime       = 5
#System is confluent.
#Halting with 4 equations.
#First word-difference machine with 5 states computed.
#Second word-difference machine with 5 states computed.
#System is confluent, or halting factor condition holds.
#Word-acceptor with 4 states computed.
#General multiplier with 8 states computed.
#Validity test on general multiplier succeeded.
#General length-2 multiplier with 14 states computed.
#Checking inverse and short relations.
#Checking relation:  _1^3 = _2^2
#Axiom checking succeeded.
> f := GrowthFunction(G);
#result modulo prime 32749:
transitions(1 + 2*x + 2*x^2)/(1);
#result modulo prime 32719: (as previous)
#result modulo prime 32717: (as previous)
Warning: The polynomials modulo the primes chosen were not 
consistent.
so the integral coefficients output are unlikely to be correct.
> print R!f;
2*x^2 + 2*x + 1
 [Next][Prev] [Right] [Left] [Up] [Index] [Root]
                       

Version: V2.16 of Mon Nov 16 15:04:45 EST 2009

Valid HTML 4.01! Valid CSS!