Mock Version: 1.4.2 ENTER ['do'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/gap-pkg-automata.spec'], chrootPath='/var/lib/mock/565363-epel-7-x86_64/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8'}shell=Falselogger=timeout=0uid=1001gid=135user='mockbuild'nspawn_args=[]printOutput=True) Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', '65dd79edbcf44a85ba122a715f50e52b', '-D', '/var/lib/mock/565363-epel-7-x86_64/root', '-a', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=en_US.UTF-8', '-u', 'mockbuild', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bs --target x86_64 --nodeps /builddir/build/SPECS/gap-pkg-automata.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8'} and shell False warning: Could not canonicalize hostname: 65dd79edbcf44a85ba122a715f50e52b Building target platforms: x86_64 Building for target x86_64 Wrote: /builddir/build/SRPMS/gap-pkg-automata-1.13-0.3.el7.centos.src.rpm Child return code was: 0 ENTER ['do'](['bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/gap-pkg-automata.spec'], chrootPath='/var/lib/mock/565363-epel-7-x86_64/root'env={'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8'}shell=Falselogger=timeout=0uid=1001gid=135user='mockbuild'nspawn_args=['--private-network']printOutput=True) Executing command: ['/usr/bin/systemd-nspawn', '-q', '-M', 'a4c715c30673488f8d616f3da2bfd6f7', '-D', '/var/lib/mock/565363-epel-7-x86_64/root', '-a', '--private-network', '--setenv=TERM=vt100', '--setenv=SHELL=/bin/bash', '--setenv=HOME=/builddir', '--setenv=HOSTNAME=mock', '--setenv=PATH=/usr/bin:/bin:/usr/sbin:/sbin', '--setenv=PROMPT_COMMAND=printf "\\033]0;\\007"', '--setenv=PS1= \\s-\\v\\$ ', '--setenv=LANG=en_US.UTF-8', '-u', 'mockbuild', 'bash', '--login', '-c', '/usr/bin/rpmbuild -bb --target x86_64 --nodeps /builddir/build/SPECS/gap-pkg-automata.spec'] with env {'TERM': 'vt100', 'SHELL': '/bin/bash', 'HOME': '/builddir', 'HOSTNAME': 'mock', 'PATH': '/usr/bin:/bin:/usr/sbin:/sbin', 'PROMPT_COMMAND': 'printf "\\033]0;\\007"', 'PS1': ' \\s-\\v\\$ ', 'LANG': 'en_US.UTF-8'} and shell False Building target platforms: x86_64 Building for target x86_64 Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.L0cO76 + umask 022 + cd /builddir/build/BUILD + cd /builddir/build/BUILD + rm -rf automata + /usr/bin/gzip -dc /builddir/build/SOURCES/automata-1.13.tar.gz + /usr/bin/tar -xf - + STATUS=0 + '[' 0 -ne 0 ']' + cd automata + /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w . + echo 'Patch #0 (gap-pkg-automata-viewer.patch):' Patch #0 (gap-pkg-automata-viewer.patch): + /usr/bin/cat /builddir/build/SOURCES/gap-pkg-automata-viewer.patch + /usr/bin/patch -p0 --fuzz=0 patching file gap/drawgraph.gd + mv PackageInfo.g PackageInfo.g.orig + iconv -f ISO8859-1 -t UTF-8 PackageInfo.g.orig + fixtimestamp PackageInfo.g + touch -r PackageInfo.g.orig PackageInfo.g + rm -f PackageInfo.g.orig + sed -i.orig 's/\r//' README + fixtimestamp README + touch -r README.orig README + rm -f README.orig + rm -f doc/gapdoc.css doc/gapdoc.dtd + exit 0 Executing(%build): /bin/sh -e /var/tmp/rpm-tmp.xATv4L + umask 022 + cd /builddir/build/BUILD + cd automata + ln -s /usr/lib/gap/doc ../../doc + mkdir ../pkg + ln -s ../automata ../pkg/automata + gap -l '/builddir/build/BUILD/automata/..;/usr/lib/gap' ********* GAP 4.8.7, 24-Mar-2017, build of 2017-06-14 16:30:42 (UTC) * GAP * https://www.gap-system.org ********* Architecture: x86_64-redhat-linux-gnu-gcc-default64 Libs used: gmp, readline Loading the library and packages ... #I autpgrp package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') #I alnuth package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') #I crisp package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') #I ctbllib package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') #I factint package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') #I fga package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') #I irredsol package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') #I laguna package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') #I polenta package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') #I polycyclic package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') #I resclasses package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') #I sophus package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') #I tomlib package is not available. Check that the name is correct #I and it is present in one of the GAP root directories (see '??RootPaths') Components: trans 1.0, prim 2.1, small* 1.0, id* 1.0 Packages: GAPDoc 1.5.1 Try '??help' for help. See also '?copyright', '?cite' and '?authors' gap> ---------------------------------------------------------------- Loading Automata 1.13 For help, type: ?Automata: ---------------------------------------------------------------- true gap> #I #I Composing XML document . . . #I #I Parsing XML document . . . #I #I Checking XML structure . . . #I #I Text version (also produces labels for hyperlinks): #I #I First run, collecting cross references, index, toc, bib and so on . . . #I #I Table of contents complete. #I #I Producing the index . . . #I #I Reading bibliography data files . . . #I #I BibTeX format: AutMan #I #I checking and translating to BibXMLext . . . #I #I Writing bibliography . . . #I #I Second run through document . . . #I #I Producing simplified search strings and labels for hyperlinks . . . #I #I Constructing LaTeX version and calling pdflatex: #I #I Writing LaTeX file, #I 3 x pdflatex with bibtex and makeindex, #I #W WARNING: Something wrong, don't find log file doc/AutMan.log #I #I ERROR: no .pdf file produced (and no .six file) #I #I Finally the HTML version . . . #I #I First run, collecting cross references, index, toc, bib and so on . . . #I #I Table of contents complete. #I #I Producing the index . . . #I #I Writing bibliography . . . #I #I Second run through document . . . #I #I - also HTML version for MathJax . . . #I #I First run, collecting cross references, index, toc, bib and so on . . . #I #I Table of contents complete. #I #I Producing the index . . . #I #I Writing bibliography . . . #I #I Second run through document . . . rec( Name := "Automata", attributes := rec( ), bibdata := "AutMan", bibentries := [ , , , , , ], bibkeys := [ "AHU:74", "KoutsofiosNorth:2002", "HU:69", "KM:2002", "MSW:2001", "AMORE:95" ], biblabels := [ "AHU74", "DEGKNW02", "HU69", "KM02", "MSW01", "MMPTV95" ], bibpath := dir("doc/"), bibstrings := [ [ 0, 0 ] ], bibtext := "\n

\n

\n[AHU74] Aho, A.\ V., Hopcroft, J. E. and Ullman, J. D.,\n The Design a\ nd Analisys of Computer Algorithms,\n Addison-W\ esley,\n Reading, Mass.\n (1974).\n

\n\n\n

\n

\n[DEGKNW02] Dobkin, D., Ellson, J., Gansner, E\ ., Koutsofios, E., North, S. and Woodhull, G.,\n Graph\ viz - Graph Drawing Programs,\n AT\\&T R\ esearch and Lucent Bell Labs\n (2002)
\n((http://www.research.att.com/sw/tools/graphviz)).\n

\n\n\n

\n

\n[HU69] Hopcroft, \ J. E. and Ullman, J. D.,\n Formal Languages and their \ Relation to Automata,\n Addison-Wesley,\ \n Reading, Mass.\n (196\ 9).\n

\n\n\n

\n\n[KM02] \ Kapovich, I. and Myasnikov, A.,\n Stallings foldings a\ nd subgroups of free groups,\n J. of Algebra,\n 248\n (2002),\n \ 608--668.\n

\n\n\n

\n

\n[MSW01\ ] Margolis, S., Sapir, M. and Weil, P.,\n Closed subgroups in pro-V topologies and the extension probl\ em\n for\n inverse automata,\n Int. J. of A\ lgebra and Computation,\n 11\n (2001),\n 405--445.\n

\n\n\n<\ p>

\n

\n[\ MMPTV95] Matz, O., Miller, \ A., Potthoff, A., Thomas, W. and Valkema, E.,\n Report\ on the program AMoRe,\n Christian Albrechts\ Universit{\\\"a}t, Kiel (9507)\n (1995).\n

\n\n", bookname := "Automata", chapsectlinks := rec( 1 := "\n", 2 := "\n", 3 := "
3 Rational languages\n
 3.1 Rational Expression\ s\n\n
\n  3.1-1 RationalExpression\n
  
3.1-2 RatExpOnnLetters\n
  3.\ 1-3 RandomRatExp
\n
  3.1-4 SizeRa\ tExp
\n
 &nbs\ p;3.1-5 IsRationalExpressio\ n
\n
  <\ /span>3.1-6 AlphabetOfRatExp\n
  <\ a href=\"chap3_mj.html#X84B9922B7C006158\">3.1-7 AlphabetOfRatExpAsList\n
  3.1-8 CopyRatExp
\n
<\ /div>\n\n\n
\n", 4 := "\n", 6 := "\n", A := "\n", B := "
B \n Drawing automata\n \n
 <\ a href=\"chapB_mj.html#X7988DBAB78EA0C06\">B.1 \n \ Installing some external programs\n \n\n
\n B.2 \n \ Functions to draw automata\n \n\n
\n\n\n
\n", C := "\n" ), chapsectlinkstext := rec( 1 := "\n", 2 := "\n", 3 := "
3 Rational languages\n
 3.1 Rational Expression\ s\n\n
\n  3.1-1 RationalExpression\n
  
3.1-2 RatExpOnnLetters\n
  3.\ 1-3 RandomRatExp
\n
  3.1-4 SizeRa\ tExp
\n
 &nbs\ p;3.1-5 IsRationalExpressio\ n
\n
  <\ /span>3.1-6 AlphabetOfRatExp\n
  <\ a href=\"chap3_mj.html#X84B9922B7C006158\">3.1-7 AlphabetOfRatExpAsList\n
  3.1-8 CopyRatExp
\n
<\ /div>\n\n\n
\n", 4 := "\n", 6 := "\n", A := "\n", B := "
B \n Drawing automata\n \n
 <\ a href=\"chapB_mj.html#X7988DBAB78EA0C06\">B.1 \n \ Installing some external programs\n \n\n
\n B.2 \n \ Functions to draw automata\n \n\n
\n\n\n
\n", C := "\n" ), chaptitle := rec( 1 := "\n Introduction\n ", 2 := "Finite Automata", 3 := "Rational languages", 4 := "Automata versus rational expressi\ ons", 5 := "Some functions involving automata", 6 := "Finite regular languages", A := "Directed graphs", B := "\n Drawing automata\n ", C := "Inverse automata and subgroups of the free\ group" ), content := [ rec( content := "xml version=\"1.0\" encoding=\"UTF-8\"", count := [ 0, 0, 0, 1 ], name := "XMLPI", root := ~ ), rec( content := "Book SYSTEM \"gapdoc.dtd\"", count := [ 0, 0, 0, 1 ], name := "XMLDOCTYPE", root := ~ ), rec( content := "LaTeX ExtraPreamble=\"\\usepackage{graphicx}\"", count := [ 0, 0, 0, 1 ], name := "XMLPI", root := ~ ), rec( attributes := rec( Name := "Automata" ), content := [ rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Automata", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 0, 1 ], name := "Title", next := 191, root := ~, start := 168, stop := 190 ), rec( attributes := rec( ), content := [ rec( content := "( Version \n1.13\n\n\n )\n ", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 0, 1 ], name := "Version", next := 236, root := ~, start := 194, stop := 235 ), rec( attributes := rec( ), content := [ rec( content := " Manuel Delgado \n ", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "mdelgado@fc.up.pt", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "Email", next := 300, root := ~, start := 268, stop := 299 ), rec( content := "\n ", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "http://www.fc.up.pt/cmup/\ mdelgado", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "Homepage", next := 359, root := ~, start := 305, stop := 358 ), rec( content := "\n ", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 0, 1 ], name := "Author", next := 371, root := ~, start := 239, stop := 370 ), rec( attributes := rec( ), content := [ rec( content := " Steve Linton\n ", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "sal@cs.st-andrews.ac.uk" , count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "Email", next := 440, root := ~, start := 402, stop := 439 ), rec( content := "\n ", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "http://www-circa.mcs.st-a\ nd.ac.uk/~sal/", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "Homepage", next := 505, root := ~, start := 445, stop := 504 ), rec( content := "\n ", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 0, 1 ], name := "Author", next := 517, root := ~, start := 376, stop := 516 ), rec( attributes := rec( ), content := [ rec( content := " José Joäo Morais \n ", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := " josejoao@fc.up.pt", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( content := "\n ", count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 0, 1 ], name := "Author", next := 604, root := ~, start := 520, stop := 603 ), rec( attributes := rec( ), content := [ rec( content := " © 2004 by Manuel Delgado, Steve\ Linton and José Morais ", count := [ 0, 0, 1, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 0, 0, 1, 2 ], mathmode := "Text", name := "P", next := 689, root := ~, start := 685, stop := 688 ), rec( content := "\n We adopt the cop\ yright regulations of ", count := [ 0, 0, 1, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "GAP", count := [ 0, 0, 1, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 1, 2 ], mathmode := "Text", name := "Package", next := 23, root := ~, start := 1, stop := 22 ), rec( content := " as detailed in the \n \ copyright notice in the ", count := [ 0, 0, 1, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "GAP", count := [ 0, 0, 1, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 1, 2 ], mathmode := "Text", name := "Package", next := 23, root := ~, start := 1, stop := 22 ), rec( content := " manual. ", count := [ 0, 0, 1, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 1, 1 ], name := "Copyright", next := 832, root := ~, start := 607, stop := 831 ), rec( attributes := rec( ), content := [ rec( content := "\n\nThis work started in 1998, wh\ en the first author was in the\nLIAFA at the University of Paris 7, in a post-\ doc. \nEncouraged by J. E. Pin, he began the implementation in ", count := [ 0, 0, 2, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "GAP", count := [ 0, 0, 2, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 2, 1 ], mathmode := "Text", name := "Package", next := 23, root := ~, start := 1, stop := 22 ), rec( content := "3 of\nan algorithm obtained some\ time before to answer a question from the realm \nof Finite Semigroups propos\ ed by J. Almeida. It is now part of a separate \npackage: ", count := [ 0, 0, 2, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "finsemi", count := [ 0, 0, 2, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 2, 1 ], mathmode := "Text", name := "C", next := 1198, root := ~, start := 1184, stop := 1197 ), rec( content := ". ", count := [ 0, 0, 2, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 0, 0, 2, 2 ], mathmode := "Text", name := "P", next := 1204, root := ~, start := 1200, stop := 1203 ), rec( content := "\n\nThe first version of this pa\ ckage on automata was prepared by the first author \nwho gave it the form of a\ ", count := [ 0, 0, 2, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) , rec( attributes := rec( ), content := [ rec( content := "GAP", count := [ 0, 0, 2, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 2, 2 ], mathmode := "Text", name := "Package", next := 23, root := ~, start := 1, stop := 22 ), rec( content := " share package.\nIn a second ver\ sion, prepared by the first and third authors, \nmany functions have been adde\ d and the performance of many of the existing \nones has been improved. Furthe\ r important improvements, specially concerning performance,\nhave been achieve\ d when the second author joined the group.\n", count := [ 0, 0, 2, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 0, 0, 2, 3 ], mathmode := "Text", name := "P", next := 1626, root := ~, start := 1622, stop := 1625 ), rec( content := "\n\nSince Version 1.12, the pack\ age is maintained by the first two authors.\n\nBug reports, suggestions and co\ mments are, of course, welcome. Please use our\nemail addresses to this effect\ .\n\n", count := [ 0, 0, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 2, 1 ], name := "Colophon", next := 1823, root := ~, start := 834, stop := 1822 ), rec( attributes := rec( ), content := [ rec( content := "\n\nThe first author wishes to ac\ knowledge Cyril Nicaud and Paulo Varandas for \ntheir help in programming some\ functions of the very first version of this \npackage. He wishes also to ackn\ owledge useful discussions and comments by \nCyril Nicaud, Vítor H. Fernandes\ , Jean-Eric Pin and Jorge Almeida.\n", count := [ 0, 0, 3, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 0, 0, 3, 2 ], mathmode := "Text", name := "P", next := 2144, root := ~, start := 2140, stop := 2143 ), rec( content := "\nThe first author also acknowle\ dges support of FCT through CMUP \nand the FCT and POCTI Project POCTI/32817/M\ AT/2000 which is funded in\ncooperation with the European Community Fund FEDER\ .\n", count := [ 0, 0, 3, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 0, 0, 3, 3 ], mathmode := "Text", name := "P", next := 2335, root := ~, start := 2331, stop := 2334 ), rec( content := "\nThe third author acknowledges \ financial support of FCT and the POCTI program \nthrough a scholarship given b\ y Centro de Matemática da Universidade do Porto.\n", count := [ 0, 0, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 0, 0, 3, 4 ], mathmode := "Text", name := "P", next := 2497, root := ~, start := 2493, stop := 2496 ), rec( content := "\n\nThe authors would like to th\ ank Mark Kambites for his contribution in finding bugs and making suggestions \ for the improvement of this package.\n", count := [ 0, 0, 3, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 0, 0, 3, 5 ], mathmode := "Text", name := "P", next := 2646, root := ~, start := 2642, stop := 2645 ), rec( content := "\n", count := [ 0, 0, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 0, 0, 3, 6 ], mathmode := "Text", name := "P", next := 2651, root := ~, start := 2647, stop := 2650 ), rec( content := "\n", count := [ 0, 0, 3, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 0, 0, 3, 7 ], mathmode := "Text", name := "P", next := 2656, root := ~, start := 2652, stop := 2655 ), rec( content := "\nConcerning the mantainment:\n" , count := [ 0, 0, 3, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 0, 0, 3, 8 ], mathmode := "Text", name := "P", next := 2689, root := ~, start := 2685, stop := 2688 ), rec( content := "\n", count := [ 0, 0, 3, 8 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 0, 0, 3, 9 ], mathmode := "Text", name := "P", next := 2694, root := ~, start := 2690, stop := 2693 ), rec( content := "\nThe first author was/is (parti\ ally) supported by the FCT project PTDC/MAT/65481/2006 and also by the\n", count := [ 0, 0, 3, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "Centro de Matemática da \ Universidade do\nPorto", count := [ 0, 0, 3, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 3, 9 ], mathmode := "Text", name := "E", next := 2849, root := ~, start := 2796, stop := 2848 ), rec( content := " (CMUP), funded by the European \ Regional Development Fund through the program COMPETE and by the Portuguese Go\ vernment through the FCT - Fundaèäo para a Ciência e a Tecnologia under the\ project PEst-C/MAT/UI0144/2011.\n", count := [ 0, 0, 3, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 3, 1 ], name := "Acknowledgements", next := 3089, root := ~, start := 1825, stop := 3088 ) ], count := [ 0, 0, 0, 1 ], mathmode := "Text", name := "TitlePage", next := 3103, root := ~, start := 154, stop := 3102 ), rec( attributes := rec( ), content := 0, count := [ 0, 0, 4, 1 ], mathmode := "Text", name := "TableOfContents", next := 3123, root := ~, start := 3105, stop := 3122 ), rec( attributes := rec( ), content := [ rec( content := "\n\n", count := [ 0, 0, 4, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := "xml version=\"1.0\" encoding=\"UTF-8\"" , count := [ 0, 0, 4, 1 ], mathmode := "Text", name := "XMLPI", root := ~ ), rec( content := "\n ", count := [ 0, 0, 4, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := " $Id: introduction.xml,v 1.13 Exp $ ", count := [ 0, 0, 4, 1 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( content := "\n ", count := [ 0, 0, 4, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n ", count := [ 1, 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n Introduction\n \ ", count := [ 1, 0, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 2 ], mathmode := "Text", name := "Heading", next := 3278, root := ~, start := 3235, stop := 3277 ), rec( content := "\n In many situations an auto\ maton is conveniently described through a diagram like the following\n ", count := [ 1, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 1, 0, 0, 4 ], mathmode := "Text", name := "P", next := 3387, root := ~, start := 3382, stop := 3386 ), rec( content := "\n ", count := [ 1, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "LaTeX" ), content := [ rec( content := "\n \\begin{figure}[h\ tbp] \\begin{center} \\leavevmode \\includegraphics[bb=0 0 132 279]{aut1} \\en\ d{center} \\label{fig:aut1} \\end{figure}\n ", count := [ 1, 0, 0, 4 ], name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 4 ], mathmode := "Text", name := "Alt", next := 3557, root := ~, start := 3392, stop := 3556 ), rec( content := "\n ", count := [ 1, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "HTML" ), content := [ rec( HTML := true, content := "\n

\n ", count := [ 1, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 4 ], name := "Alt", next := 3690, root := ~, start := 3562, stop := 3689 ), rec( content := "\n ", count := [ 1, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "P", next := 3700, root := ~, start := 3695, stop := 3699 ), rec( content := "\n This diagram describes a (\ deterministic) automaton with\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n 3\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "M", next := 3785, root := ~, start := 3765, stop := 3784 ), rec( content := "\n states (the elements of th\ e set\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n \\{1,2,3\\}).\n \ ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "M", next := 3856, root := ~, start := 3826, stop := 3855 ), rec( content := "\n The arrow pointing to the \ state\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n 1\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "M", next := 3917, root := ~, start := 3897, stop := 3916 ), rec( content := "\n indicates that\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n 1\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "M", next := 3961, root := ~, start := 3941, stop := 3960 ), rec( content := "\n is the initial state and t\ he two circles around state\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n 3\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "M", next := 4044, root := ~, start := 4024, stop := 4043 ), rec( content := "\n indicate that\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n 3\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "M", next := 4087, root := ~, start := 4067, stop := 4086 ), rec( content := "\n is a final or accepting st\ ate. The set\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n \\{a,b\\}\n " , count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "M", next := 4161, root := ~, start := 4135, stop := 4160 ), rec( content := "\n is the ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "alphabet", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "E", next := 4188, root := ~, start := 4173, stop := 4187 ), rec( content := " of the automaton; its elements \ are called ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "letters", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "E", next := 4245, root := ~, start := 4231, stop := 4244 ), rec( content := " and are the labels of the edges\ of the diagram. The words\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n a\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "M", next := 4328, root := ~, start := 4308, stop := 4327 ), rec( content := "\n ,\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n ab^2\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "M", next := 4362, root := ~, start := 4339, stop := 4361 ), rec( content := "\n ,\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n b^5a^3b\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "M", next := 4399, root := ~, start := 4373, stop := 4398 ), rec( content := "\n are examples of words reco\ gnized by the automaton since they are labels of paths from the initial to the\ final state.\n ", count := [ 1, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 1, 0, 0, 6 ], mathmode := "Text", name := "P", next := 4531, root := ~, start := 4526, stop := 4530 ), rec( content := "\n The set of words recognize\ d by an automaton is called the ", count := [ 1, 0, 0, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "language", count := [ 1, 0, 0, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 6 ], mathmode := "Text", name := "E", next := 4609, root := ~, start := 4594, stop := 4608 ), rec( content := " of the automaton. It is a ratio\ nal language and may be represented through a rational expression. For instanc\ e, ", count := [ 1, 0, 0, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "(aUb)(a(aUb)Ub(aUb))*", count := [ 1, 0, 0, 7 ], name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 7 ], mathmode := "Text", name := "Log", next := 4754, root := ~, start := 4722, stop := 4753 ), rec( content := " is a rational expression repres\ enting the language of the above automaton. \n ", count := [ 1, 0, 0, 8 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 1, 0, 0, 9 ], mathmode := "Text", name := "P", next := 4840, root := ~, start := 4835, stop := 4839 ), rec( content := "\nKleene's Theorem states that a\ language is rational if and only if it is the language of a finite automaton.\ \nBoth directions of Kleene's Theorem can be proved constructively, and these \ algorithms, to go from an automaton to a rational expression and ", count := [ 1, 0, 0, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "vice-versa", count := [ 1, 0, 0, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 9 ], mathmode := "Text", name := "E", next := 5108, root := ~, start := 5091, stop := 5107 ), rec( content := ", are implemented in this packag\ e.\n ", count := [ 1, 0, 0, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 1, 0, 0, 10 ], mathmode := "Text", name := "P", next := 5152, root := ~, start := 5147, stop := 5151 ), rec( content := "\nOf course, one has to pay atte\ ntion to the size of the output produced. When producing a deterministic autom\ aton equivalent to a given rational expression one can obtain an optimal solut\ ion (the minimal automaton) using standard algorithms ", count := [ 1, 0, 0, 10 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Key := "AHU:74" ), content := 0, count := [ 1, 0, 0, 10 ], mathmode := "Text", name := "Cite", next := 5413, root := ~, start := 5393, stop := 5412 ), rec( content := ".\n ", count := [ 1, 0, 0, 10 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 1, 0, 0, 11 ], mathmode := "Text", name := "P", next := 5424, root := ~, start := 5419, stop := 5423 ), rec( content := "\nWhen producing a rational expr\ ession for the language of an automaton, and taking into account some reasonab\ le measure for the size of a rational expression, to determine a minimal one i\ s apparently computationally difficult. We use here some heuristic methods (to\ be published elsewhere) which in practice lead to very reasonable results.\n \ ", count := [ 1, 0, 0, 11 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 1, 0, 0, 12 ], mathmode := "Text", name := "P", next := 5774, root := ~, start := 5769, stop := 5773 ), rec( content := "\nThe development of this work h\ as benefited from the existence of AMoRE ", count := [ 1, 0, 0, 12 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Key := "AMORE:95" ), content := 0, count := [ 1, 0, 0, 12 ], mathmode := "Text", name := "Cite", next := 5869, root := ~, start := 5846, stop := 5868 ), rec( content := ", a package written in ", count := [ 1, 0, 0, 12 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "C", count := [ 1, 0, 0, 12 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 12 ], mathmode := "Text", name := "C", next := 5900, root := ~, start := 5892, stop := 5899 ), rec( content := " to handle Automata, Monoids and\ Regular Expressions. In fact, its manual has been very useful and some of the\ algorithms implemented here are those implemented in AMoRE. In this package, \ unlike what happened with AMoRE, we do not have to worry about the monoid part\ in order to make it useful to semigroup theorists, since monoids are already \ implemented in ", count := [ 1, 0, 0, 12 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "GAP", count := [ 1, 0, 0, 12 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 12 ], mathmode := "Text", name := "Package", next := 23, root := ~, start := 1, stop := 22 ), rec( content := " and we may take advantage of th\ is fact. We just need a function to compute the transition semigroup of an aut\ omaton.\n\n ", count := [ 1, 0, 0, 12 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 1, 0, 0, 13 ], mathmode := "Text", name := "P", next := 6393, root := ~, start := 6388, stop := 6392 ), rec( content := "\n ", count := [ 1, 0, 0, 13 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 1, 0, 0, 14 ], mathmode := "Text", name := "P", next := 6404, root := ~, start := 6399, stop := 6403 ), rec( content := "\nThe parts of this package that\ have not so directly to do with automata or rational expressions are put into\ appendices in this manual. Some words about these appendices follow.\n ", count := [ 1, 0, 0, 14 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 1, 0, 0, 15 ], mathmode := "Text", name := "P", next := 6593, root := ~, start := 6588, stop := 6592 ), rec( content := "\nUsing the external program Gra\ phviz ", count := [ 1, 0, 0, 15 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Key := "KoutsofiosNorth:2002" ), content := 0, count := [ 1, 0, 0, 15 ], mathmode := "Text", name := "Cite", next := 6665, root := ~, start := 6630, stop := 6664 ), rec( content := " to graph visualization, one can\ visualize automata. This very convenient tool presently works easily under LI\ NUX.\n ", count := [ 1, 0, 0, 15 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 1, 0, 0, 16 ], mathmode := "Text", name := "P", next := 6790, root := ~, start := 6785, stop := 6789 ), rec( content := "\nGiven a finitely generated sub\ group of the free group it is possible to compute a flower automaton and perfo\ rm Stallings foldings over it in order to obtain an inverse automaton correspo\ nding to the given subgroup.\n ", count := [ 1, 0, 0, 16 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 1, 0, 0, 17 ], mathmode := "Text", name := "P", next := 7016, root := ~, start := 7011, stop := 7015 ), rec( content := "\n ", count := [ 1, 0, 0, 17 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 1, 0, 0, 1 ], mathmode := "Text", name := "Chapter", next := 7029, root := ~, start := 3221, stop := 7028 ), rec( content := "\n\n", count := [ 1, 0, 0, 17 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := "xml version=\"1.0\" encoding=\"UTF-8\"" , count := [ 1, 0, 0, 17 ], mathmode := "Text", name := "XMLPI", root := ~ ), rec( content := "\n", count := [ 1, 0, 0, 17 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := " $Id: automata.xml,v 1.13 Exp $ ", count := [ 1, 0, 0, 17 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( content := "\n\n", count := [ 1, 0, 0, 17 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Finite Automata", count := [ 2, 0, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 2 ], mathmode := "Text", name := "Heading", next := 7155, root := ~, start := 7121, stop := 7154 ), rec( content := "\n\nThis chapter describes the r\ epresentations used in this package for\nfinite automata and some functions to\ determine information about them.\n", count := [ 2, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "P", next := 7301, root := ~, start := 7297, stop := 7300 ), rec( content := "\n We have to remark that the st\ ates of an automaton are always named\n", count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "1,2,3,\\ldots;", count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "M", next := 7390, root := ~, start := 7370, stop := 7389 ), rec( content := " the alphabet may be given by th\ e user. By default \nit is ", count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\{a,b,c,\\ldots\\}", count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "M", next := 7471, root := ~, start := 7448, stop := 7470 ), rec( content := " (or ", count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\{a_1,a_2,a_3,\\ldots\\\ }", count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "M", next := 7505, root := ~, start := 7476, stop := 7504 ), rec( content := " in the \ncase of alphabets with\ more than ", count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "26", count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "M", next := 7556, root := ~, start := 7547, stop := 7555 ), rec( content := " letters). \n", count := [ 2, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "P", next := 7572, root := ~, start := 7568, stop := 7571 ), rec( content := "\nThe transition function of an \ automaton with ", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "q", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "M", next := 7626, root := ~, start := 7618, stop := 7625 ), rec( content := " states over an alphabet with " , count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := " n", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "M", next := 7666, root := ~, start := 7657, stop := 7665 ), rec( content := " \nletters is represented by a (\ not necessarily dense) ", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "n\\times q", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "M", next := 7736, root := ~, start := 7720, stop := 7735 ), rec( content := " \n matrix. Each row of the matr\ ix describes the action of the corresponding\nletter on the states.\nIn the ca\ se of a ", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "deterministic automaton" , count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "Emph", next := 7887, root := ~, start := 7851, stop := 7886 ), rec( content := " (DFA) the entries of the\n matr\ ix are non-negative integers. \nWhen all entries of the transition table \nare\ positive integers, the automaton is said to be \n", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "dense", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "Emph", next := 8061, root := ~, start := 8043, stop := 8060 ), rec( content := " or ", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "complete", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "Emph", next := 8086, root := ~, start := 8065, stop := 8085 ), rec( content := ".\n", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := "automaton!completeautomaton!dense", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( content := "\n\nIn the case of a ", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "non deterministic automat\ on", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "Emph", next := 8217, root := ~, start := 8177, stop := 8216 ), rec( content := " (NFA) the entries of the\n matr\ ix may be lists of non-negative integers. \n\n", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "Automata with ", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\epsilon", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "M", next := 8327, root := ~, start := 8312, stop := 8326 ), rec( content := "-transitions", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "Emph", next := 8346, root := ~, start := 8292, stop := 8345 ), rec( content := " are also allowed: the \nlast le\ tter of the alphabet is assumed to be ", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\epsilon", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "M", next := 8431, root := ~, start := 8416, stop := 8430 ), rec( content := " and is represented by @.\n\n", count := [ 2, 0, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Automata generati\ on", count := [ 2, 1, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 0, 2 ], mathmode := "Text", name := "Heading", next := 8505, root := ~, start := 8467, stop := 8504 ), rec( content := " \n", count := [ 2, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := " In the case of no\ n\n deterministic automata the entries of the matrix are lists of \nnon\ -negative integers. ", count := [ 2, 1, 0, 3 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( content := "\n\nThe way to create an\ automaton in ", count := [ 2, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "GAP", count := [ 2, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 0, 3 ], mathmode := "Text", name := "Package", next := 23, root := ~, start := 1, stop := 22 ), rec( content := " is the following \n ", count := [ 2, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "Type, Size, Alph\ abet,TransitionTable, \nInitial, Accepting", Name := "Automaton" ), content := 0, count := [ 2, 1, 1, 2 ], mathmode := "Text", name := "Func", next := 8797, root := ~, start := 8709, stop := 8796 ), rec( attributes := rec( ), content := [ rec( content := "\n", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := " The nam\ es chosen for the arguments describe their meaning.", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "XMLCOMMENT" , root := ~ ), rec( content := "\n", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "T\ ype", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "C", next := 8890, root := ~, start := 8879, stop := 8889 ), rec( content := " may be \ \n", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ "det\"", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "C", next := 8911, root := ~, start := 8899, stop := 8910 ), rec( content := ", ", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ "nondet\"", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "C", next := 8928, root := ~, start := 8913, stop := 8927 ), rec( content := " or ", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ "epsilon\"", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "C", next := 8948, root := ~, start := 8932, stop := 8947 ), rec( content := " accordi\ ng to whether \nthe automaton is deterministic, non deterministic or an automa\ ton with \n", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \epsilon", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "M", next := 9058, root := ~, start := 9043, stop := 9057 ), rec( content := "-transit\ ions. \n", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "S\ ize", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "C", next := 9084, root := ~, start := 9073, stop := 9083 ), rec( content := " is a po\ sitive integer representing the\nnumber of states of the automaton. ", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ lphabet", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "C", next := 9174, root := ~, start := 9159, stop := 9173 ), rec( content := " is the \ number of\nletters of the alphabet or a list with the letters of the ordered a\ lphabet. \n", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "T\ ransitionTable", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA" , root := ~ ) ], count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "C", next := 9291, root := ~, start := 9269, stop := 9290 ), rec( content := " is the \ transition matrix. The\nentries are non-negative integers not greater than the\ size of the automaton.\nIn the case of non deterministic automata, lists of n\ on-negative integers not \ngreater than the size of the automaton are also all\ owed. ", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "I\ nitial", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "C", next := 9550, root := ~, start := 9536, stop := 9549 ), rec( content := "\nand ", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ccepting", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "C", next := 9571, root := ~, start := 9555, stop := 9570 ), rec( content := " are, re\ spectively, the lists of initial and accepting\nstates. \n", count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ n\ngap> aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,4]],[1],[4]);\n< determini\ stic automaton on 2 letters with 4 states >\ngap> Display(aut);\n | 1 2 3\ 4\n-----------------\n a | 3 3 4\n b | 3 4 4\nInitial state: [\ 1 ]\nAccepting state: [ 4 ]\n\n", count := [ 2, 1, 1, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 4 ], mathmode := "Text", name := "Example", next := 9920, root := ~, start := 9636, stop := 9919 ), rec( content := "\nThe al\ phabet of the automaton may be specified:\n", count := [ 2, 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut:=Automaton(\"det\",4,\"01\",[[3,,3,4],[3,4,0,4]],[1],[4]);\n< determ\ inistic automaton on 2 letters with 4 states >\ngap> Display(aut);\n | 1 2\ 3 4\n-----------------\n 0 | 3 3 4\n 1 | 3 4 4\nInitial state: \ [ 1 ]\nAccepting state: [ 4 ]\n", count := [ 2, 1, 1, 6 ], name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 6 ], mathmode := "Text", name := "Example", next := 10254, root := ~, start := 9969, stop := 10253 ), rec( content := "\nInstea\ d of leaving a hole in the transition matrix, we may write a ", count := [ 2, 1, 1, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "0\ ", count := [ 2, 1, 1, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 7 ], mathmode := "Text", name := "C", next := 10330, root := ~, start := 10322, stop := 10329 ), rec( content := "\n to me\ an that no transition is present. \nNon deterministic automata may be given th\ e same way.\n", count := [ 2, 1, 1, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> ndaut:=Automaton(\"nondet\",4,2,[[3,[1,2],3,0],[3,4,0,[2,3]]],[1],[4]);\ \n< non deterministic automaton on 2 letters with 4 states >\ngap> Display(nda\ ut);\n | 1 2 3 4\n------------------------------------\ -----\n a | [ 3 ] [ 1, 2 ] [ 3 ]\n b | [ 3 ] [ 4 ] [ 2, 3 ]\ \nInitial state: [ 1 ]\nAccepting state: [ 4 ]\n", count := [ 2, 1, 1, 8 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 1, 1, 8 ], mathmode := "Text", name := "Example", next := 10807, root := ~, start := 10426, stop := 10806 ), rec( content := "\nAlso i\ n the same way can be given ", count := [ 2, 1, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \epsilon", count := [ 2, 1, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 9 ], mathmode := "Text", name := "M", next := 10857, root := ~, start := 10842, stop := 10856 ), rec( content := "-automat\ a. The letter ", count := [ 2, 1, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \epsilon", count := [ 2, 1, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 9 ], mathmode := "Text", name := "M", next := 10894, root := ~, start := 10879, stop := 10893 ), rec( content := " is writ\ ten ", count := [ 2, 1, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "@\ ", count := [ 2, 1, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 9 ], mathmode := "Text", name := "C", next := 10914, root := ~, start := 10906, stop := 10913 ), rec( content := " instead\ .\n", count := [ 2, 1, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"epsilon\",3,\"01@\",[[,[2],[3]],[[1,3],,[1]],[[1],[2],\n>\ [2]]],[2],[2,3]);\n< epsilon automaton on 3 letters with 3 states >\ngap> Dis\ play(x);\n | 1 2 3\n------------------------------\n 0 | \ [ 2 ] [ 3 ]\n 1 | [ 1, 3 ] [ 1 ]\n @ | [ 1 ] [ 2 ] \ [ 2 ]\nInitial state: [ 2 ]\nAccepting states: [ 2, 3 ]\n", count := [ 2, 1, 1, 10 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 1, 1, 10 ], mathmode := "Text", name := "Example", next := 11312, root := ~, start := 10924, stop := 11311 ), rec( content := "\nBigger\ automata are displayed in another form:\n", count := [ 2, 1, 1, 11 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut:=Automaton(\"det\",16,2,[[4,0,0,6,3,1,4,8,7,4,3,0,6,1,6,0],\n> [3,4,\ 0,0,6,1,0,6,1,6,1,6,6,4,8,7,4,5]],[1],[4]);\n< deterministic automaton on 2 le\ tters with 16 states >\ngap> Display(aut);\n1 a 4\n1 b 3\n2 b 4\ \n ... some more lines\n15 a 6\n15 b 8\n16 b 7\nInitial state: \ [ 1 ]\nAccepting state: [ 4 ]\n", count := [ 2, 1, 1, 12 ], name := "PCDATA" , root := ~ ) ], count := [ 2, 1, 1, 12 ], mathmode := "Text", name := "Example", next := 11721, root := ~, start := 11360, stop := 11720 ), rec( content := "\n", count := [ 2, 1, 1, 13 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 1, 3 ], mathmode := "Text", name := "Description", next := 11736, root := ~, start := 8798, stop := 11735 ) ], count := [ 2, 1, 1, 1 ], mathmode := "Text", name := "ManSection", next := 11750, root := ~, start := 8696, stop := 11749 ), rec( content := "\n\n", count := [ 2, 1, 1, 13 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "O", Name := "IsAutomaton" ), content := 0, count := [ 2, 1, 2, 2 ], mathmode := "Text", name := "Func", next := 11799, root := ~, start := 11765, stop := 11798 ), rec( attributes := rec( ), content := [ rec( content := "\nIn the \ presence of an object ", count := [ 2, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "O\ ", count := [ 2, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 2, 3 ], mathmode := "Text", name := "A", next := 11851, root := ~, start := 11843, stop := 11850 ), rec( content := ", one ma\ y want to test whether \n", count := [ 2, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "O\ ", count := [ 2, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 2, 3 ], mathmode := "Text", name := "C", next := 11891, root := ~, start := 11883, stop := 11890 ), rec( content := " is an a\ utomaton. This may be done using the function ", count := [ 2, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "I\ sAutomaton", count := [ 2, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 2, 3 ], mathmode := "Text", name := "C", next := 11963, root := ~, start := 11945, stop := 11962 ), rec( content := ".\n", count := [ 2, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",3,2,[ [ 0, 2, 0 ], [ 0, 1, 0 ] ],[ 3 ],[ 2 ]);;\nga\ p> IsAutomaton(x);\ntrue\n", count := [ 2, 1, 2, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 1, 2, 4 ], mathmode := "Text", name := "Example", next := 12095, root := ~, start := 11965, stop := 12094 ), rec( content := "\n", count := [ 2, 1, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 2, 3 ], mathmode := "Text", name := "Description", next := 12110, root := ~, start := 11800, stop := 12109 ) ], count := [ 2, 1, 2, 1 ], mathmode := "Text", name := "ManSection", next := 12124, root := ~, start := 11752, stop := 12123 ), rec( content := "\n\n", count := [ 2, 1, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "IsDeterministic\ Automaton" ), content := 0, count := [ 2, 1, 3, 2 ], mathmode := "Text", name := "Func", next := 12188, root := ~, start := 12139, stop := 12187 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns\ ", count := [ 2, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) , rec( attributes := rec( ), content := [ rec( content := "t\ rue", count := [ 2, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 3, 3 ], mathmode := "Text", name := "K", next := 12222, root := ~, start := 12211, stop := 12221 ), rec( content := " when ", count := [ 2, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 3, 3 ], mathmode := "Text", name := "C", next := 12238, root := ~, start := 12228, stop := 12237 ), rec( content := " is a de\ terministic automaton and ", count := [ 2, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "f\ alse", count := [ 2, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 3, 3 ], mathmode := "Text", name := "K", next := 12284, root := ~, start := 12272, stop := 12283 ), rec( content := " otherwi\ se. \n", count := [ 2, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",3,2,[ [ 0, 2, 0 ], [ 0, 1, 0 ] ],[ 3 ],[ 2 ]);;\nga\ p> IsDeterministicAutomaton(x);\ntrue\n", count := [ 2, 1, 3, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 1, 3, 4 ], mathmode := "Text", name := "Example", next := 12440, root := ~, start := 12297, stop := 12439 ), rec( content := "\n", count := [ 2, 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 3, 3 ], mathmode := "Text", name := "Description", next := 12455, root := ~, start := 12189, stop := 12454 ) ], count := [ 2, 1, 3, 1 ], mathmode := "Text", name := "ManSection", next := 12469, root := ~, start := 12126, stop := 12468 ), rec( content := "\n", count := [ 2, 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := " silentius ", count := [ 2, 1, 3, 5 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( content := "\n", count := [ 2, 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "IsNonDeterminis\ ticAutomaton" ), content := 0, count := [ 2, 1, 4, 2 ], mathmode := "Text", name := "Func", next := 12554, root := ~, start := 12502, stop := 12553 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns\ ", count := [ 2, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) , rec( attributes := rec( ), content := [ rec( content := "t\ rue", count := [ 2, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 4, 3 ], mathmode := "Text", name := "K", next := 12588, root := ~, start := 12577, stop := 12587 ), rec( content := " when ", count := [ 2, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 4, 3 ], mathmode := "Text", name := "C", next := 12604, root := ~, start := 12594, stop := 12603 ), rec( content := " is a no\ n deterministic automaton and ", count := [ 2, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "f\ alse", count := [ 2, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 4, 3 ], mathmode := "Text", name := "K", next := 12654, root := ~, start := 12642, stop := 12653 ), rec( content := " otherwi\ se. \n", count := [ 2, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> y:=Automaton(\"nondet\",3,2,[[,[1,3],],[,[2,3],[1,3]]],[1,2],[1,3]);;\ng\ ap> IsNonDeterministicAutomaton(y);\ntrue\n", count := [ 2, 1, 4, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 1, 4, 4 ], mathmode := "Text", name := "Example", next := 12814, root := ~, start := 12667, stop := 12813 ), rec( content := "\n", count := [ 2, 1, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 4, 3 ], mathmode := "Text", name := "Description", next := 12829, root := ~, start := 12555, stop := 12828 ) ], count := [ 2, 1, 4, 1 ], mathmode := "Text", name := "ManSection", next := 12843, root := ~, start := 12489, stop := 12842 ), rec( content := "\n\n", count := [ 2, 1, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "IsEpsilonAutoma\ ton" ), content := 0, count := [ 2, 1, 5, 2 ], mathmode := "Text", name := "Func", next := 12901, root := ~, start := 12858, stop := 12900 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns\ ", count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) , rec( attributes := rec( ), content := [ rec( content := "t\ rue", count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "K", next := 12935, root := ~, start := 12924, stop := 12934 ), rec( content := " when ", count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "C", next := 12951, root := ~, start := 12941, stop := 12950 ), rec( content := " is an " , count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \epsilon", count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "M", next := 12973, root := ~, start := 12958, stop := 12972 ), rec( content := "-automat\ on and ", count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "f\ alse", count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "K", next := 13000, root := ~, start := 12988, stop := 12999 ), rec( content := " otherwi\ se. \n", count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> z:=Automaton(\"epsilon\",2,2,[[[1,2],],[[2],[1]]],[1,2],[1,2]);;\ngap> I\ sEpsilonAutomaton(z);\ntrue\n", count := [ 2, 1, 5, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 1, 5, 4 ], mathmode := "Text", name := "Example", next := 13146, root := ~, start := 13013, stop := 13145 ), rec( content := "\n", count := [ 2, 1, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 5, 3 ], mathmode := "Text", name := "Description", next := 13161, root := ~, start := 12902, stop := 13160 ) ], count := [ 2, 1, 5, 1 ], mathmode := "Text", name := "ManSection", next := 13175, root := ~, start := 12845, stop := 13174 ), rec( content := "\n", count := [ 2, 1, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "String" ), content := 0, count := [ 2, 1, 6, 2 ], mathmode := "Text", name := "Func", next := 13220, root := ~, start := 13189, stop := 13219 ), rec( attributes := rec( ), content := [ rec( content := "\n\nThe w\ ay ", count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "G\ AP", count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "Package", next := 23, root := ~, start := 1, stop := 22 ), rec( content := " display\ s an automaton is quite natural, but when one wants to \ndo small changes, for\ example using ", count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "c\ opy/paste", count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "E", next := 13367, root := ~, start := 13350, stop := 13366 ), rec( content := ", the us\ e of the function \n", count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "S\ tring", count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "C", next := 13407, root := ~, start := 13394, stop := 13406 ), rec( content := " (possib\ ly followed by ", count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "P\ rint", count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "C", next := 13442, root := ~, start := 13430, stop := 13441 ), rec( content := ") may be\ usefull.\n", count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",3,2,[ [ 0, 2, 0 ], [ 0, 1, 0 ] ],[ 3 ],[ 2 ]);;\nga\ p> String(x);\n\"Automaton(\\\"det\\\",3,\\\"ab\\\",[ [ 0, 2, 0 ], [ 0, 1, 0 ]\ ],[ 3 ],[ 2 ]);;\"\ngap> Print(String(x));\nAutomaton(\"det\",3,\"ab\",[ [ 0,\ 2, 0 ], [ 0, 1, 0 ] ],[ 3 ],[ 2 ]);;\n", count := [ 2, 1, 6, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 1, 6, 4 ], mathmode := "Text", name := "Example", next := 13743, root := ~, start := 13460, stop := 13742 ), rec( content := "\n", count := [ 2, 1, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> z:=Automaton(\"epsilon\",2,2,[[[1,2],],[[2],[1]]],[1,2],[1,2]);;\ngap> P\ rint(String(z));\nAutomaton(\"epsilon\",2,\"a@\",[ [ [ 1, 2 ], [ ] ], [ [ 2 ],\ [ 1 ] ] ],[ 1, 2 ],[ \\\n1, 2 ]);;\n", count := [ 2, 1, 6, 6 ], name := "PCDA\ TA", root := ~ ) ], count := [ 2, 1, 6, 6 ], mathmode := "Text", name := "Example", next := 13957, root := ~, start := 13744, stop := 13956 ), rec( content := "\n", count := [ 2, 1, 6, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 6, 3 ], mathmode := "Text", name := "Description", next := 13972, root := ~, start := 13221, stop := 13971 ) ], count := [ 2, 1, 6, 1 ], mathmode := "Text", name := "ManSection", next := 13986, root := ~, start := 13176, stop := 13985 ), rec( content := "\n\n", count := [ 2, 1, 6, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "Type, Size, Alph\ abet", Name := "RandomAutomaton" ), content := 0, count := [ 2, 1, 7, 2 ], mathmode := "Text", name := "Func", next := 14058, root := ~, start := 14001, stop := 14057 ), rec( attributes := rec( ), content := [ rec( content := "\nGiven t\ he ", count := [ 2, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "T\ ype", count := [ 2, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 7, 3 ], mathmode := "Text", name := "A", next := 14094, root := ~, start := 14083, stop := 14093 ), rec( content := ", the ", count := [ 2, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "S\ ize", count := [ 2, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 7, 3 ], mathmode := "Text", name := "A", next := 14111, root := ~, start := 14100, stop := 14110 ), rec( content := " (i.e. t\ he number of states) and the ", count := [ 2, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ lphabet", count := [ 2, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 7, 3 ], mathmode := "Text", name := "A", next := 14163, root := ~, start := 14148, stop := 14162 ), rec( content := " (a posi\ tive integer\nor a list), returns a pseudo random automaton with \nthese param\ eters.\n", count := [ 2, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> RandomAutomaton(\"det\",5,\"ac\");\n< deterministic automaton on 2 lette\ rs with 5 states >\ngap> Display(last);\n | 1 2 3 4 5\n----------------\ ----\n a | 2 3\n c | 2 3\nInitial state: [ 4 ]\nAccepting states: [ \ 3, 4 ]\n\ngap> RandomAutomaton(\"nondet\",3,[\"a\",\"b\",\"c\"]);\n< non deter\ ministic automaton on 3 letters with 3 states >\n\ngap> RandomAutomaton(\"epsi\ lon\",2,\"abc\");\n< epsilon automaton on 4 letters with 2 states >\n\ngap> Ra\ ndomAutomaton(\"epsilon\",2,2);\n< epsilon automaton on 3 letters with 2 state\ s >\ngap> Display(last);\n | 1 2\n----------------------\n a | [ 1\ , 2 ]\n b | [ 2 ] [ 1 ]\n @ | [ 1, 2 ]\nInitial state: [ 2 ]\nAcceptin\ g states: [ 1, 2 ]\n\ngap> a:=RandomTransformation(3);;\ngap> b:=RandomTransfo\ rmation(3);;\ngap> aut:=RandomAutomaton(\"det\",4,[a,b]);\n< deterministic aut\ omaton on 2 letters with 4 states >\n", count := [ 2, 1, 7, 4 ], name := "PCDA\ TA", root := ~ ) ], count := [ 2, 1, 7, 4 ], mathmode := "Text", name := "Example", next := 15129, root := ~, start := 14254, stop := 15128 ), rec( content := "\n", count := [ 2, 1, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 7, 3 ], mathmode := "Text", name := "Description", next := 15144, root := ~, start := 14059, stop := 15143 ) ], count := [ 2, 1, 7, 1 ], mathmode := "Text", name := "ManSection", next := 15158, root := ~, start := 13988, stop := 15157 ), rec( content := "\n\n", count := [ 2, 1, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 1, 0, 1 ], mathmode := "Text", name := "Section", next := 15170, root := ~, start := 8458, stop := 15169 ), rec( content := "\n\n\n", count := [ 2, 1, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Automata internal\ s", count := [ 2, 2, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 0, 2 ], mathmode := "Text", name := "Heading", next := 15219, root := ~, start := 15182, stop := 15218 ), rec( content := "\nIn this section we des\ cribe the functions used to access the internals of an automaton.\n\n", count := [ 2, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "AlphabetOfAutom\ aton" ), content := 0, count := [ 2, 2, 1, 2 ], mathmode := "Text", name := "Func", next := 15367, root := ~, start := 15323, stop := 15366 ), rec( attributes := rec( ), content := [ rec( content := "\n\nRetur\ ns the number of symbols in the alphabet of automaton ", count := [ 2, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 1, 3 ], mathmode := "Text", name := "C", next := 15452, root := ~, start := 15442, stop := 15451 ), rec( content := ".\n", count := [ 2, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],[4]);;\ngap> Alphabet\ OfAutomaton(aut);\n2\n", count := [ 2, 2, 1, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 2, 1, 4 ], mathmode := "Text", name := "Example", next := 15580, root := ~, start := 15454, stop := 15579 ), rec( content := "\n", count := [ 2, 2, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 1, 3 ], mathmode := "Text", name := "Description", next := 15595, root := ~, start := 15368, stop := 15594 ) ], count := [ 2, 2, 1, 1 ], mathmode := "Text", name := "ManSection", next := 15609, root := ~, start := 15309, stop := 15608 ), rec( content := "\n\n\n", count := [ 2, 2, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "AlphabetOfAutom\ atonAsList" ), content := 0, count := [ 2, 2, 2, 2 ], mathmode := "Text", name := "Func", next := 15676, root := ~, start := 15626, stop := 15675 ), rec( attributes := rec( ), content := [ rec( content := "\n\nRetur\ ns the alphabet of automaton ", count := [ 2, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 2, 3 ], mathmode := "Text", name := "C", next := 15736, root := ~, start := 15726, stop := 15735 ), rec( content := " always\\ nas a list.\n\n Note that when the alphabet of the automaton is given as an in\ teger \n(meaning the number of symbols) \nnot greater than 26 it returns the l\ ist ", count := [ 2, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ "abcd....\"", count := [ 2, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 2, 3 ], mathmode := "Text", name := "C", next := 15916, root := ~, start := 15899, stop := 15915 ), rec( content := ".\nIf th\ e alphabet is given by means of an integer greater than 26, the \nfunction ret\ urns ", count := [ 2, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "[\ \"a1\", \"a2\", \"a3\", \"a4\", ... ]", count := [ 2, 2, 2, 3 ], mathmode := \ "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 2, 3 ], mathmode := "Text", name := "C", next := 16043, root := ~, start := 16005, stop := 16042 ), rec( content := ".\n", count := [ 2, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> a:=RandomAutomaton(\"det\",5,\"cat\");\n< deterministic automaton on 3 l\ etters with 5 states >\ngap> AlphabetOfAutomaton(a);\n3\ngap> AlphabetOfAutoma\ tonAsList(a);\n\"cat\"\ngap> a:=RandomAutomaton(\"det\",5,20);\n< deterministi\ c automaton on 20 letters with 5 states >\ngap> AlphabetOfAutomaton(a);\n20\ng\ ap> AlphabetOfAutomatonAsList(a);\n\"abcdefghijklmnopqrst\"\ngap> a:=RandomAut\ omaton(\"det\",5,30);\n< deterministic automaton on 30 letters with 5 states >\ \ngap> AlphabetOfAutomaton(a);\n30\ngap> AlphabetOfAutomatonAsList(a);\n[ \"a1\ \", \"a2\", \"a3\", \"a4\", \"a5\", \"a6\", \"a7\", \"a8\", \"a9\", \"a10\", \ \"a11\", \n \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a17\", \"a18\", \"\ a19\", \"a20\", \"a21\",\n \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\ \", \"a28\", \"a29\", \"a30\" ]\n", count := [ 2, 2, 2, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 2, 2, 4 ], mathmode := "Text", name := "Example", next := 16796, root := ~, start := 16045, stop := 16795 ), rec( content := "\n", count := [ 2, 2, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 2, 3 ], mathmode := "Text", name := "Description", next := 16811, root := ~, start := 15677, stop := 16810 ) ], count := [ 2, 2, 2, 1 ], mathmode := "Text", name := "ManSection", next := 16825, root := ~, start := 15612, stop := 16824 ), rec( content := "\n\n\n\n", count := [ 2, 2, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "TransitionMatri\ xOfAutomaton" ), content := 0, count := [ 2, 2, 3, 2 ], mathmode := "Text", name := "Func", next := 16895, root := ~, start := 16843, stop := 16894 ), rec( attributes := rec( ), content := [ rec( content := "\n\nRetur\ ns the transition matrix of automaton ", count := [ 2, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 3, 3 ], mathmode := "Text", name := "C", next := 16964, root := ~, start := 16954, stop := 16963 ), rec( content := ".\n", count := [ 2, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],[4]);;\ngap> Transiti\ onMatrixOfAutomaton(aut);\n[ [ 3, 0, 3, 4 ], [ 3, 4, 0, 0 ] ]\n", count := [ 2, 2, 3, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 2, 3, 4 ], mathmode := "Text", name := "Example", next := 17133, root := ~, start := 16966, stop := 17132 ), rec( content := "\n", count := [ 2, 2, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 3, 3 ], mathmode := "Text", name := "Description", next := 17148, root := ~, start := 16896, stop := 17147 ) ], count := [ 2, 2, 3, 1 ], mathmode := "Text", name := "ManSection", next := 17162, root := ~, start := 16829, stop := 17161 ), rec( content := "\n\n\n", count := [ 2, 2, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "InitialStatesOf\ Automaton" ), content := 0, count := [ 2, 2, 4, 2 ], mathmode := "Text", name := "Func", next := 17228, root := ~, start := 17179, stop := 17227 ), rec( attributes := rec( ), content := [ rec( content := "\n\nRetur\ ns the initial states of automaton ", count := [ 2, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 4, 3 ], mathmode := "Text", name := "C", next := 17294, root := ~, start := 17284, stop := 17293 ), rec( content := ".\n", count := [ 2, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],[4]);;\ngap> InitialS\ tatesOfAutomaton(aut);\n[ 1 ]\n", count := [ 2, 2, 4, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 2, 4, 4 ], mathmode := "Text", name := "Example", next := 17431, root := ~, start := 17296, stop := 17430 ), rec( content := "\n", count := [ 2, 2, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 4, 3 ], mathmode := "Text", name := "Description", next := 17446, root := ~, start := 17229, stop := 17445 ) ], count := [ 2, 2, 4, 1 ], mathmode := "Text", name := "ManSection", next := 17460, root := ~, start := 17165, stop := 17459 ), rec( content := "\n\n\n", count := [ 2, 2, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut, I", Name := "SetInitialState\ sOfAutomaton" ), content := 0, count := [ 2, 2, 5, 2 ], mathmode := "Text", name := "Func", next := 17532, root := ~, start := 17477, stop := 17531 ), rec( attributes := rec( ), content := [ rec( content := "\n\nSets \ the initial states of automaton ", count := [ 2, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 5, 3 ], mathmode := "Text", name := "C", next := 17595, root := ~, start := 17585, stop := 17594 ), rec( content := ".\n", count := [ 2, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "I\ ", count := [ 2, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 5, 3 ], mathmode := "Text", name := "C", next := 17605, root := ~, start := 17597, stop := 17604 ), rec( content := " may be \ a positive integer or a list of positive integers.\n", count := [ 2, 2, 5, 3 ] , mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],[4]);;\ngap> SetIniti\ alStatesOfAutomaton(aut,4);\ngap> InitialStatesOfAutomaton(aut);\n[ 4 ]\ngap> \ SetInitialStatesOfAutomaton(aut,[2,3]);\ngap> InitialStatesOfAutomaton(aut);\n\ [ 2, 3 ]\n", count := [ 2, 2, 5, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 2, 5, 4 ], mathmode := "Text", name := "Example", next := 17930, root := ~, start := 17664, stop := 17929 ), rec( content := "\n", count := [ 2, 2, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 5, 3 ], mathmode := "Text", name := "Description", next := 17945, root := ~, start := 17533, stop := 17944 ) ], count := [ 2, 2, 5, 1 ], mathmode := "Text", name := "ManSection", next := 17959, root := ~, start := 17463, stop := 17958 ), rec( content := "\n\n\n", count := [ 2, 2, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "FinalStatesOfAu\ tomaton" ), content := 0, count := [ 2, 2, 6, 2 ], mathmode := "Text", name := "Func", next := 18023, root := ~, start := 17976, stop := 18022 ), rec( attributes := rec( ), content := [ rec( content := "\n\nRetur\ ns the final states of automaton ", count := [ 2, 2, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 2, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 6, 3 ], mathmode := "Text", name := "C", next := 18087, root := ~, start := 18077, stop := 18086 ), rec( content := ".\n", count := [ 2, 2, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],[4]);;\ngap> FinalSta\ tesOfAutomaton(aut);\n[ 4 ]\n", count := [ 2, 2, 6, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 2, 6, 4 ], mathmode := "Text", name := "Example", next := 18222, root := ~, start := 18089, stop := 18221 ), rec( content := "\n", count := [ 2, 2, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 6, 3 ], mathmode := "Text", name := "Description", next := 18237, root := ~, start := 18024, stop := 18236 ) ], count := [ 2, 2, 6, 1 ], mathmode := "Text", name := "ManSection", next := 18251, root := ~, start := 17962, stop := 18250 ), rec( content := "\n\n\n", count := [ 2, 2, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut, F", Name := "SetFinalStatesO\ fAutomaton" ), content := 0, count := [ 2, 2, 7, 2 ], mathmode := "Text", name := "Func", next := 18321, root := ~, start := 18268, stop := 18320 ), rec( attributes := rec( ), content := [ rec( content := "\n\nSets \ the final states of automaton ", count := [ 2, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 7, 3 ], mathmode := "Text", name := "C", next := 18382, root := ~, start := 18372, stop := 18381 ), rec( content := ".\n", count := [ 2, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "F\ ", count := [ 2, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 7, 3 ], mathmode := "Text", name := "C", next := 18392, root := ~, start := 18384, stop := 18391 ), rec( content := " may be \ a positive integer or a list of positive integers.\n", count := [ 2, 2, 7, 3 ] , mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],[4]);;\ngap> FinalSta\ tesOfAutomaton(aut);\n[ 4 ]\ngap> SetFinalStatesOfAutomaton(aut,2);\ngap> Fina\ lStatesOfAutomaton(aut);\n[ 2 ]\n", count := [ 2, 2, 7, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 2, 7, 4 ], mathmode := "Text", name := "Example", next := 18663, root := ~, start := 18451, stop := 18662 ), rec( content := "\n", count := [ 2, 2, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 7, 3 ], mathmode := "Text", name := "Description", next := 18678, root := ~, start := 18322, stop := 18677 ) ], count := [ 2, 2, 7, 1 ], mathmode := "Text", name := "ManSection", next := 18692, root := ~, start := 18254, stop := 18691 ), rec( content := "\n\n\n", count := [ 2, 2, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "NumberStatesOfA\ utomaton" ), content := 0, count := [ 2, 2, 8, 2 ], mathmode := "Text", name := "Func", next := 18757, root := ~, start := 18709, stop := 18756 ), rec( attributes := rec( ), content := [ rec( content := "\n\nRetur\ ns the number of states of automaton ", count := [ 2, 2, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 2, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 8, 3 ], mathmode := "Text", name := "C", next := 18825, root := ~, start := 18815, stop := 18824 ), rec( content := ".\n", count := [ 2, 2, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],[4]);;\ngap> NumberSt\ atesOfAutomaton(aut);\n4\n", count := [ 2, 2, 8, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 2, 8, 4 ], mathmode := "Text", name := "Example", next := 18957, root := ~, start := 18827, stop := 18956 ), rec( content := "\n", count := [ 2, 2, 8, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 8, 3 ], mathmode := "Text", name := "Description", next := 18972, root := ~, start := 18758, stop := 18971 ) ], count := [ 2, 2, 8, 1 ], mathmode := "Text", name := "ManSection", next := 18986, root := ~, start := 18695, stop := 18985 ), rec( content := "\n\n", count := [ 2, 2, 8, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 2, 0, 1 ], mathmode := "Text", name := "Section", next := 18998, root := ~, start := 15173, stop := 18997 ), rec( content := "\n\n\n\n", count := [ 2, 2, 8, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Comparison of aut\ omata", count := [ 2, 3, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 3, 0, 2 ], mathmode := "Text", name := "Heading", next := 19052, root := ~, start := 19011, stop := 19051 ), rec( content := "\nAlthough there is no s\ tandard way to compare automata it is usefull to be able to do some kind of co\ mparison. Doing so, one can consider sets of automata.\n We just compare the s\ trings of the automata.\n", count := [ 2, 3, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> x:=Automat\ on(\"det\",3,2,[ [ 0, 2, 0 ], [ 0, 1, 0 ] ],[ 3 ],[ 2 ]);;\ngap> y:=Automaton(\ \"det\",3,2,[ [ 2, 0, 0 ], [ 1, 3, 0 ] ],[ 3 ],[ 2, 3 ]);;\ngap> x=y;\nfalse\n\ gap> Size(Set([y,x,x]));\n2\n", count := [ 2, 3, 0, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 3, 0, 4 ], mathmode := "Text", name := "Log", next := 19456, root := ~, start := 19254, stop := 19455 ), rec( content := "\n", count := [ 2, 3, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 3, 0, 1 ], mathmode := "Text", name := "Section", next := 19467, root := ~, start := 19002, stop := 19466 ), rec( content := "\n", count := [ 2, 3, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Tests involving a\ utomata", count := [ 2, 4, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 0, 2 ], mathmode := "Text", name := "Heading", next := 19520, root := ~, start := 19477, stop := 19519 ), rec( content := "\n\nThis section describ\ es some useful tests involving automata.\n\n", count := [ 2, 4, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "IsDenseAutomato\ n" ), content := 0, count := [ 2, 4, 1, 2 ], mathmode := "Text", name := "Func", next := 19639, root := ~, start := 19598, stop := 19638 ), rec( attributes := rec( ), content := [ rec( content := "\n\nTests\ whether a deterministic automaton ", count := [ 2, 4, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 4, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 1, 3 ], mathmode := "Text", name := "C", next := 19705, root := ~, start := 19695, stop := 19704 ), rec( content := " is comp\ lete. \n(See also ", count := [ 2, 4, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Func := "NullCom\ pletionAutomaton" ), content := 0, count := [ 2, 4, 1, 3 ], mathmode := "Text", name := "Ref", next := 19767, root := ~, start := 19730, stop := 19766 ), rec( content := ".) \n", count := [ 2, 4, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],[4]);;\ngap> IsDenseA\ utomaton(aut); \nfalse\n", count := [ 2, 4, 1, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 4, 1, 4 ], mathmode := "Text", name := "Example", next := 19932, root := ~, start := 19772, stop := 19931 ), rec( content := "\n", count := [ 2, 4, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 1, 3 ], mathmode := "Text", name := "Description", next := 19947, root := ~, start := 19640, stop := 19946 ) ], count := [ 2, 4, 1, 1 ], mathmode := "Text", name := "ManSection", next := 19961, root := ~, start := 19584, stop := 19960 ), rec( content := "\n\n", count := [ 2, 4, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A,w", Name := "IsRecognizedByA\ utomaton" ), content := 0, count := [ 2, 4, 2, 2 ], mathmode := "Text", name := "Func", next := 20025, root := ~, start := 19977, stop := 20024 ), rec( attributes := rec( ), content := [ rec( content := "\nThe arg\ uments are: an automaton ", count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "A", next := 20080, root := ~, start := 20072, stop := 20079 ), rec( content := " and a s\ tring (i.e. a word) ", count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "w\ ", count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "A", next := 20116, root := ~, start := 20108, stop := 20115 ), rec( content := " in the \ alphabet of the automaton. \nReturns ", count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "t\ rue", count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "C", next := 20171, root := ~, start := 20160, stop := 20170 ), rec( content := " if the \ word is recognized by the automaton \n and ", count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "f\ alse", count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "C", next := 20233, root := ~, start := 20221, stop := 20232 ), rec( content := " otherwi\ se. \n\n", count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut:=Automaton(\"det\",3,2,[[1,2,1],[2,1,3]],[1],[2]);;\ngap> IsRecogniz\ edByAutomaton(aut,\"bbb\");\ntrue\n\ngap> aut:=Automaton(\"det\",3,\"01\",[[1,\ 2,1],[2,1,3]],[1],[2]);;\ngap> IsRecognizedByAutomaton(aut,\"111\");\ntrue\n", count := [ 2, 4, 2, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 4, 2, 4 ], mathmode := "Text", name := "Example", next := 20493, root := ~, start := 20247, stop := 20492 ), rec( content := "\n", count := [ 2, 4, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 2, 3 ], mathmode := "Text", name := "Description", next := 20508, root := ~, start := 20026, stop := 20507 ) ], count := [ 2, 4, 2, 1 ], mathmode := "Text", name := "ManSection", next := 20522, root := ~, start := 19963, stop := 20521 ), rec( content := "\n\n\n", count := [ 2, 4, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "IsPermutationAu\ tomaton" ), content := 0, count := [ 2, 4, 3, 2 ], mathmode := "Text", name := "Func", next := 20585, root := ~, start := 20538, stop := 20584 ), rec( attributes := rec( ), content := [ rec( content := "\nThe arg\ ument is a deterministic automaton. Returns ", count := [ 2, 4, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "t\ rue", count := [ 2, 4, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 3, 3 ], mathmode := "Text", name := "K", next := 20662, root := ~, start := 20651, stop := 20661 ), rec( content := " when ea\ ch letter of the alphabet induces a permutation on the vertices and ", count := [ 2, 4, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "f\ alse", count := [ 2, 4, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 3, 3 ], mathmode := "Text", name := "K", next := 20750, root := ~, start := 20738, stop := 20749 ), rec( content := " otherwi\ se. ", count := [ 2, 4, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",3,2,[ [ 1, 2, 3 ], [ 1, 2, 3 ] ],[ 1 ],[ 2, 3 ]);;\ \ngap> IsPermutationAutomaton(x);\ntrue\n", count := [ 2, 4, 3, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 4, 3, 4 ], mathmode := "Text", name := "Example", next := 20906, root := ~, start := 20762, stop := 20905 ), rec( content := "\n", count := [ 2, 4, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 3, 3 ], mathmode := "Text", name := "Description", next := 20921, root := ~, start := 20586, stop := 20920 ) ], count := [ 2, 4, 3, 1 ], mathmode := "Text", name := "ManSection", next := 20935, root := ~, start := 20525, stop := 20934 ), rec( content := "\n\n", count := [ 2, 4, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "IsInverseAutoma\ ton" ), content := 0, count := [ 2, 4, 4, 2 ], mathmode := "Text", name := "Func", next := 20993, root := ~, start := 20950, stop := 20992 ), rec( attributes := rec( ), content := [ rec( content := "\nThe arg\ ument is a deterministic automaton. Returns ", count := [ 2, 4, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "t\ rue", count := [ 2, 4, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 4, 3 ], mathmode := "Text", name := "K", next := 21070, root := ~, start := 21059, stop := 21069 ), rec( content := " when ea\ ch letter of the alphabet induces an injective partial function on the vertice\ s and ", count := [ 2, 4, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "f\ alse", count := [ 2, 4, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 4, 3 ], mathmode := "Text", name := "K", next := 21174, root := ~, start := 21162, stop := 21173 ), rec( content := " otherwi\ se. ", count := [ 2, 4, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",3,2,[ [ 0, 1, 3 ], [ 0, 1, 2 ] ],[ 2 ],[ 1 ]);;\nga\ p> IsInverseAutomaton(x);\ntrue\n", count := [ 2, 4, 4, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 4, 4, 4 ], mathmode := "Text", name := "Example", next := 21323, root := ~, start := 21186, stop := 21322 ), rec( content := "\n\nFreq\ uently an inverse automaton is thought as if the inverse edges (labeled by for\ mal inverses of the letters of the alphabet) were present, although they are u\ sually not explicited. They can be made explicit using the function ", count := [ 2, 4, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ddInverseEdgesToInverseAutomaton", count := [ 2, 4, 4, 5 ], mathmode := "Text" , name := "PCD\ ATA", root := ~ ) ], count := [ 2, 4, 4, 5 ], mathmode := "Text", name := "C", next := 21593, root := ~, start := 21553, stop := 21592 ), rec( content := "\n", count := [ 2, 4, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 4, 3 ], mathmode := "Text", name := "Description", next := 21608, root := ~, start := 20994, stop := 21607 ) ], count := [ 2, 4, 4, 1 ], mathmode := "Text", name := "ManSection", next := 21622, root := ~, start := 20937, stop := 21621 ), rec( content := "\n\n", count := [ 2, 4, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "AddInverseEdges\ ToInverseAutomaton" ), content := 0, count := [ 2, 4, 5, 2 ], mathmode := "Text", name := "Func", next := 21695, root := ~, start := 21637, stop := 21694 ), rec( attributes := rec( ), content := [ rec( content := "\nThe arg\ ument is an inverse automaton over the alphabet ", count := [ 2, 4, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \{a,b,c,\\ldots\\}", count := [ 2, 4, 5, 3 ], mathmode := "Text", name := "PCD\ ATA", root := ~ ) ], count := [ 2, 4, 5, 3 ], mathmode := "Text", name := "M", next := 21788, root := ~, start := 21765, stop := 21787 ), rec( content := ". Return\ s an automaton with the inverse edges added. (The formal inverse of a letter i\ s represented by the corresponding capital letter.)\n ", count := [ 2, 4, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",3,2,[[ 0, 1, 3 ],[ 0, 1, 2 ]],[ 2 ],[ 1 ]);;Display\ (x);\n | 1 2 3\n--------------\n a | 1 3\n b | 1 2\nInitial sta\ te: [ 2 ]\nAccepting state: [ 1 ]\ngap> AddInverseEdgesToInverseAutomaton(x)\ ;Display(x);\n | 1 2 3\n--------------\n a | 1 3\n b | 1 2\n A \ | 2 3\n B | 2 3\nInitial state: [ 2 ]\nAccepting state: [ 1 ]\n", count := [ 2, 4, 5, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 4, 5, 4 ], mathmode := "Text", name := "Example", next := 22324, root := ~, start := 21927, stop := 22323 ), rec( content := "\n", count := [ 2, 4, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 5, 3 ], mathmode := "Text", name := "Description", next := 22339, root := ~, start := 21696, stop := 22338 ) ], count := [ 2, 4, 5, 1 ], mathmode := "Text", name := "ManSection", next := 22353, root := ~, start := 21624, stop := 22352 ), rec( content := "\n\n", count := [ 2, 4, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "IsReversibleAut\ omaton" ), content := 0, count := [ 2, 4, 6, 2 ], mathmode := "Text", name := "Func", next := 22414, root := ~, start := 22368, stop := 22413 ), rec( attributes := rec( ), content := [ rec( content := "\nThe arg\ ument is a deterministic automaton. \nReturns ", count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "t\ rue", count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "K", next := 22492, root := ~, start := 22481, stop := 22491 ), rec( content := " when ", count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "A", next := 22508, root := ~, start := 22498, stop := 22507 ), rec( content := " is a re\ versible automaton, i.e. the automaton obtained by reversing all edges and swi\ tching the initial and final states \n(see also ", count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Func := "Reverse\ dAutomaton" ), content := 0, count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "Ref", next := 22672, root := ~, start := 22641, stop := 22671 ), rec( content := ") is det\ erministic. Returns ", count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "f\ alse", count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "K", next := 22712, root := ~, start := 22700, stop := 22711 ), rec( content := " otherwi\ se.\n", count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",3,2,[ [ 0, 1, 2 ], [ 0, 1, 3 ] ],[ 2 ],[ 2 ]);;\nga\ p> IsReversibleAutomaton(x);\ntrue\n", count := [ 2, 4, 6, 4 ], name := "PCDAT\ A", root := ~ ) ], count := [ 2, 4, 6, 4 ], mathmode := "Text", name := "Example", next := 22864, root := ~, start := 22724, stop := 22863 ), rec( content := "\n", count := [ 2, 4, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 6, 3 ], mathmode := "Text", name := "Description", next := 22879, root := ~, start := 22415, stop := 22878 ) ], count := [ 2, 4, 6, 1 ], mathmode := "Text", name := "ManSection", next := 22893, root := ~, start := 22355, stop := 22892 ), rec( content := "\n\n", count := [ 2, 4, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 4, 0, 1 ], mathmode := "Text", name := "Section", next := 22905, root := ~, start := 19468, stop := 22904 ), rec( content := "\n\n", count := [ 2, 4, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Basic operations" , count := [ 2, 5, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 0, 2 ], mathmode := "Text", name := "Heading", next := 22951, root := ~, start := 22916, stop := 22950 ), rec( content := "\n\n\n", count := [ 2, 5, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "CopyAutomaton" ), content := 0, count := [ 2, 5, 1, 2 ], mathmode := "Text", name := "Func", next := 23005, root := ~, start := 22967, stop := 23004 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns\ a new automaton, which is a copy of automaton ", count := [ 2, 5, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 5, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 1, 3 ], mathmode := "Text", name := "A", next := 23084, root := ~, start := 23074, stop := 23083 ), rec( content := ".\n ", count := [ 2, 5, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 1, 3 ], mathmode := "Text", name := "Description", next := 23101, root := ~, start := 23006, stop := 23100 ) ], count := [ 2, 5, 1, 1 ], mathmode := "Text", name := "ManSection", next := 23115, root := ~, start := 22954, stop := 23114 ), rec( content := " \n\n\n ", count := [ 2, 5, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "NullCompletionA\ utomaton" ), content := 0, count := [ 2, 5, 2, 2 ], mathmode := "Text", name := "Func", next := 23183, root := ~, start := 23135, stop := 23182 ), rec( attributes := rec( ), content := [ rec( content := "\n\n", count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "C", next := 23209, root := ~, start := 23199, stop := 23208 ), rec( content := " is a de\ terministic automaton. If it is complete returns ", count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "A", next := 23276, root := ~, start := 23266, stop := 23275 ), rec( content := ",\nother\ wise returns the completion (with a null state) of ", count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "A", next := 23344, root := ~, start := 23334, stop := 23343 ), rec( content := ". Notice\ that the words recognized by ", count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "A", next := 23393, root := ~, start := 23383, stop := 23392 ), rec( content := " and its\ completion are the same.\n", count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut:=Automaton(\"det\",4,2,[[3,,3,4],[2,4,4,]],[1],[4]);;\ngap> IsDenseA\ utomaton(aut);\nfalse\ngap> y:=NullCompletionAutomaton(aut);;Display(y);\n |\ 1 2 3 4 5\n--------------------\n a | 3 5 3 4 5\n b | 2 4 4 5 \ 5\nInitial state: [ 1 ]\nAccepting state: [ 4 ]\n", count := [ 2, 5, 2, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 5, 2, 4 ], mathmode := "Text", name := "Example", next := 23731, root := ~, start := 23427, stop := 23730 ), rec( content := "\n\nThe \ state added is a ", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "s\ ink state", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "Emph", next := 23777, root := ~, start := 23754, stop := 23776 ), rec( content := " i.e. it\ is a state ", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "q\ ", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "M", next := 23805, root := ~, start := 23797, stop := 23804 ), rec( content := " which i\ s not initial nor accepting and for all letter ", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "M", next := 23868, root := ~, start := 23860, stop := 23867 ), rec( content := " in the \ alphabet of the automaton, ", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "q\ ", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "M", next := 23911, root := ~, start := 23903, stop := 23910 ), rec( content := " is the \ result of the action of ", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "M", next := 23951, root := ~, start := 23943, stop := 23950 ), rec( content := " in ", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "q\ ", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "M", next := 23964, root := ~, start := 23956, stop := 23963 ), rec( content := ". (Notic\ e that reading \na word, one does not go out of a sink state.) \n ", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 2, 3 ], mathmode := "Text", name := "Description", next := 24050, root := ~, start := 23184, stop := 24049 ) ], count := [ 2, 5, 2, 1 ], mathmode := "Text", name := "ManSection", next := 24064, root := ~, start := 23121, stop := 24063 ), rec( content := " \n\n", count := [ 2, 5, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "ListSinkStatesA\ ut" ), content := 0, count := [ 2, 5, 3, 2 ], mathmode := "Text", name := "Func", next := 24123, root := ~, start := 24081, stop := 24122 ), rec( attributes := rec( ), content := [ rec( content := "\nCompute\ s the list of all sink states of the automaton ", count := [ 2, 5, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 5, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 3, 3 ], mathmode := "Text", name := "A", next := 24202, root := ~, start := 24192, stop := 24201 ), rec( content := ".\n", count := [ 2, 5, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",3,2,[ [ 2, 3, 3 ], [ 1, 2, 3 ] ],[ 1 ],[ 2, 3 ]);;\ \ngap> ListSinkStatesAut(x);\n[ ]\ngap> y:=Automaton(\"det\",3,2,[ [ 2, 3, 3 \ ], [ 1, 2, 3 ] ],[ 1 ],[ 2 ]);;\ngap> ListSinkStatesAut(y);\n[ 3 ]\n", count := [ 2, 5, 3, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 5, 3, 4 ], mathmode := "Text", name := "Example", next := 24448, root := ~, start := 24204, stop := 24447 ), rec( content := "\n ", count := [ 2, 5, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 3, 3 ], mathmode := "Text", name := "Description", next := 24464, root := ~, start := 24124, stop := 24463 ) ], count := [ 2, 5, 3, 1 ], mathmode := "Text", name := "ManSection", next := 24478, root := ~, start := 24068, stop := 24477 ), rec( content := " \n\n", count := [ 2, 5, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "RemovedSinkStat\ es" ), content := 0, count := [ 2, 5, 4, 2 ], mathmode := "Text", name := "Func", next := 24537, root := ~, start := 24495, stop := 24536 ), rec( attributes := rec( ), content := [ rec( content := "\nRemoves\ all sink states of the automaton ", count := [ 2, 5, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 5, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 4, 3 ], mathmode := "Text", name := "A", next := 24603, root := ~, start := 24593, stop := 24602 ), rec( content := ".\n", count := [ 2, 5, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> y:=Automaton(\"det\",3,2,[[ 2, 3, 3 ],[ 1, 2, 3 ]],[ 1 ],[ 2 ]);;Display\ (y);\n | 1 2 3\n--------------\n a | 2 3 3\n b | 1 2 3\nInitial sta\ te: [ 1 ]\nAccepting state: [ 2 ]\ngap> x := RemovedSinkStates(y);Display(x)\ ;\n< deterministic automaton on 2 letters with 2 states >\n | 1 2\n-------\ ----\n a | 2\n b | 1 2\nInitial state: [ 1 ]\nAccepting state: [ 2 ]\n", count := [ 2, 5, 4, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 5, 4, 4 ], mathmode := "Text", name := "Example", next := 25006, root := ~, start := 24605, stop := 25005 ), rec( content := "\n ", count := [ 2, 5, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 4, 3 ], mathmode := "Text", name := "Description", next := 25022, root := ~, start := 24538, stop := 25021 ) ], count := [ 2, 5, 4, 1 ], mathmode := "Text", name := "ManSection", next := 25036, root := ~, start := 24482, stop := 25035 ), rec( content := " \n\n", count := [ 2, 5, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "ReversedAutomat\ on" ), content := 0, count := [ 2, 5, 5, 2 ], mathmode := "Text", name := "Func", next := 25095, root := ~, start := 25053, stop := 25094 ), rec( attributes := rec( ), content := [ rec( content := "\nInverts\ the arrows of the automaton ", count := [ 2, 5, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 5, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 5, 3 ], mathmode := "Text", name := "A", next := 25156, root := ~, start := 25146, stop := 25155 ), rec( content := ".\n", count := [ 2, 5, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> y:=Automaton(\"det\",3,2,[ [ 2, 3, 3 ], [ 1, 2, 3 ] ],[ 1 ],[ 2 ]);;\nga\ p> z:=ReversedAutomaton(y);;Display(z);\n | 1 2 3\n------------\ ------------------\n a | [ 1 ] [ 2, 3 ]\n b | [ 1 ] [ 2 ] [ 3 ]\ \nInitial state: [ 2 ]\nAccepting state: [ 1 ]\n", count := [ 2, 5, 5, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 5, 5, 4 ], mathmode := "Text", name := "Example", next := 25462, root := ~, start := 25158, stop := 25461 ), rec( content := "\n ", count := [ 2, 5, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 5, 3 ], mathmode := "Text", name := "Description", next := 25478, root := ~, start := 25096, stop := 25477 ) ], count := [ 2, 5, 5, 1 ], mathmode := "Text", name := "ManSection", next := 25492, root := ~, start := 25040, stop := 25491 ), rec( content := " \n\n\n", count := [ 2, 5, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut, p", Name := "PermutedAutomat\ on" ), content := 0, count := [ 2, 5, 6, 2 ], mathmode := "Text", name := "Func", next := 25555, root := ~, start := 25510, stop := 25554 ), rec( attributes := rec( ), content := [ rec( content := "\nGiven a\ n automaton ", count := [ 2, 5, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 5, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 6, 3 ], mathmode := "Text", name := "A", next := 25599, root := ~, start := 25589, stop := 25598 ), rec( content := " and a l\ ist ", count := [ 2, 5, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "p\ ", count := [ 2, 5, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 6, 3 ], mathmode := "Text", name := "A", next := 25619, root := ~, start := 25611, stop := 25618 ), rec( content := " represe\ nting a permutation of the states,\noutputs the equivalent permuted automaton.\ \n", count := [ 2, 5, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> y:=Automaton(\"det\",4,2,[[2,3,4,2],[0,0,0,1]],[1],[3]);;Display(y);\n \ | 1 2 3 4\n-----------------\n a | 2 3 4 2\n b | 1\nInitial\ state: [ 1 ]\nAccepting state: [ 3 ]\ngap> Display(PermutedAutomaton(y, [3,\ 2,4,1]));\n | 1 2 3 4\n-----------------\n a | 2 4 2 1\n b | 3\nIni\ tial state: [ 3 ]\nAccepting state: [ 4 ]\n", count := [ 2, 5, 6, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 5, 6, 4 ], mathmode := "Text", name := "Example", next := 26077, root := ~, start := 25705, stop := 26076 ), rec( content := "\n ", count := [ 2, 5, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 6, 3 ], mathmode := "Text", name := "Description", next := 26093, root := ~, start := 25556, stop := 26092 ) ], count := [ 2, 5, 6, 1 ], mathmode := "Text", name := "ManSection", next := 26107, root := ~, start := 25497, stop := 26106 ), rec( content := " \n\n\n\n", count := [ 2, 5, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "ListPermutedAut\ omata" ), content := 0, count := [ 2, 5, 7, 2 ], mathmode := "Text", name := "Func", next := 26171, root := ~, start := 26126, stop := 26170 ), rec( attributes := rec( ), content := [ rec( content := "\nGiven a\ n automaton ", count := [ 2, 5, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 5, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 7, 3 ], mathmode := "Text", name := "A", next := 26215, root := ~, start := 26205, stop := 26214 ), rec( content := ", return\ s a list of automata with permuted states\n", count := [ 2, 5, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",3,2,[ [ 0, 2, 3 ], [ 1, 2, 3 ] ],[ 1 ],[ 2, 3 ]);;\ \ngap> ListPermutedAutomata(x);\n[ < deterministic automaton on 2 letters with\ 3 states >, \n < deterministic automaton on 2 letters with 3 states >, \n <\ deterministic automaton on 2 letters with 3 states >, \n < deterministic aut\ omaton on 2 letters with 3 states >, \n < deterministic automaton on 2 letter\ s with 3 states >, \n < deterministic automaton on 2 letters with 3 states > \ ]\n", count := [ 2, 5, 7, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 5, 7, 4 ], mathmode := "Text", name := "Example", next := 26756, root := ~, start := 26265, stop := 26755 ), rec( content := "\n ", count := [ 2, 5, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 7, 3 ], mathmode := "Text", name := "Description", next := 26772, root := ~, start := 26172, stop := 26771 ) ], count := [ 2, 5, 7, 1 ], mathmode := "Text", name := "ManSection", next := 26786, root := ~, start := 26113, stop := 26785 ), rec( content := " \n \n\n", count := [ 2, 5, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "NormalizedAutom\ aton" ), content := 0, count := [ 2, 5, 8, 2 ], mathmode := "Text", name := "Func", next := 26846, root := ~, start := 26804, stop := 26845 ), rec( attributes := rec( ), content := [ rec( content := "\nProduce\ s an equivalent automaton but in which the initial state is numbered 1 and the\ accepting states have the greatest numbers.\n", count := [ 2, 5, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",3,2,[[ 1, 2, 0 ],[ 0, 1, 2 ]],[2],[1, 2]);;Display(\ x);\n | 1 2 3\n--------------\n a | 1 2\n b | 1 2\nInitial state: \ [ 2 ]\nAccepting states: [ 1, 2 ]\ngap> Display(NormalizedAutomaton(x));\n \ | 1 2 3\n--------------\n a | 1 3\n b | 3 1\nInitial state: [ 1\ ]\nAccepting states: [ 3, 1 ]\n", count := [ 2, 5, 8, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 5, 8, 4 ], mathmode := "Text", name := "Example", next := 27350, root := ~, start := 26991, stop := 27349 ), rec( content := "\n ", count := [ 2, 5, 8, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 8, 3 ], mathmode := "Text", name := "Description", next := 27366, root := ~, start := 26847, stop := 27365 ) ], count := [ 2, 5, 8, 1 ], mathmode := "Text", name := "ManSection", next := 27380, root := ~, start := 26791, stop := 27379 ), rec( content := " \n\n", count := [ 2, 5, 8, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A,B", Name := "UnionAutomata" ), content := 0, count := [ 2, 5, 9, 2 ], mathmode := "Text", name := "Func", next := 27435, root := ~, start := 27397, stop := 27434 ), rec( attributes := rec( ), content := [ rec( content := "\nProduce\ s the disjoint union of the deterministic or non deterministic automata ", count := [ 2, 5, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 2, 5, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 9, 3 ], mathmode := "Text", name := "C", next := 27537, root := ~, start := 27529, stop := 27536 ), rec( content := " and ", count := [ 2, 5, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "B\ ", count := [ 2, 5, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 9, 3 ], mathmode := "Text", name := "C", next := 27550, root := ~, start := 27542, stop := 27549 ), rec( content := ". The ou\ tput is a non-deterministic automaton.\n", count := [ 2, 5, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",3,2,[ [ 1, 2, 0 ], [ 0, 1, 2 ] ],[ 2 ],[ 1, 2 ]);;\ \ngap> y:=Automaton(\"det\",3,2,[ [ 0, 1, 3 ], [ 0, 0, 0 ] ],[ 1 ],[ 1, 2, 3 ]\ );;\ngap> UnionAutomata(x,y);\n< non deterministic automaton on 2 letters with\ 6 states >\ngap> Display(last);\n | 1 2 3 4 5 6\ \n------------------------------------------------\n a | [ 1 ] [ 2 ] \ [ 4 ] [ 6 ]\n b | [ 1 ] [ 2 ]\nInitial states: [ 2, 4 ]\ \nAccepting states: [ 1, 2, 4, 5, 6 ]\n", count := [ 2, 5, 9, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 5, 9, 4 ], mathmode := "Text", name := "Example", next := 28118, root := ~, start := 27597, stop := 28117 ), rec( content := "\n ", count := [ 2, 5, 9, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 9, 3 ], mathmode := "Text", name := "Description", next := 28134, root := ~, start := 27436, stop := 28133 ) ], count := [ 2, 5, 9, 1 ], mathmode := "Text", name := "ManSection", next := 28148, root := ~, start := 27384, stop := 28147 ), rec( content := " \n\n", count := [ 2, 5, 9, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A1,A2", Name := "ProductAutomato\ n" ), content := 0, count := [ 2, 5, 10, 2 ], mathmode := "Text", name := "Func", next := 28209, root := ~, start := 28166, stop := 28208 ), rec( attributes := rec( ), content := [ rec( content := "\nThe arg\ uments must be deterministic automata. Returns the product of ", count := [ 2, 5, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ 1", count := [ 2, 5, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 10, 3 ], mathmode := "Text", name := "A", next := 28302, root := ~, start := 28293, stop := 28301 ), rec( content := " and ", count := [ 2, 5, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ 2", count := [ 2, 5, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 10, 3 ], mathmode := "Text", name := "A", next := 28316, root := ~, start := 28307, stop := 28315 ), rec( content := ". \n", count := [ 2, 5, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 2, 5, 10, 4 ], mathmode := "Text", name := "P", next := 28323, root := ~, start := 28319, stop := 28322 ), rec( content := "\n Note:\ ", count := [ 2, 5, 10, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "(\ p,q)->(p-1)m+q", count := [ 2, 5, 10, 4 ], mathmode := "Text", name := "PCDATA\ ", root := ~ ) ], count := [ 2, 5, 10, 4 ], mathmode := "Text", name := "M", next := 28353, root := ~, start := 28331, stop := 28352 ), rec( content := " is a bi\ jection from ", count := [ 2, 5, 10, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \{1,\\ldots, n\\}\\times \\{1,\\ldots, m\\}", count := [ 2, 5, 10, 4 ], mathmode := \ "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 10, 4 ], mathmode := "Text", name := "M", next := 28418, root := ~, start := 28374, stop := 28417 ), rec( content := " to ", count := [ 2, 5, 10, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \{1,\\ldots,mn\\}", count := [ 2, 5, 10, 4 ], mathmode := "Text", name := "PCD\ ATA", root := ~ ) ], count := [ 2, 5, 10, 4 ], mathmode := "Text", name := "M", next := 28444, root := ~, start := 28422, stop := 28443 ), rec( content := ".\n", count := [ 2, 5, 10, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=RandomAutomaton(\"det\",3,2);;Display(x);\n | 1 2 3\n-----------\ ---\n a | 2 3\n b | 1\nInitial state: [ 3 ]\nAccepting states: [ 1, 2\ , 3 ]\ngap> y:=RandomAutomaton(\"det\",3,2);;Display(y);\n | 1 2 3\n-----\ ---------\n a | 1\n b | 1 3\nInitial state: [ 3 ]\nAccepting states: \ [ 1, 3 ]\ngap> z:=ProductAutomaton(x, y);;Display(z);\n | 1 2 3 4 5 6 \ 7 8 9\n--------------------------------\n a | 4 7\n b | \ 1 3\nInitial state: [ 9 ]\nAccepting states: [ 1, 3, 4, 6, 7, 9 ]\n", count := [ 2, 5, 10, 5 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 5, 10, 5 ], mathmode := "Text", name := "Example", next := 28993, root := ~, start := 28446, stop := 28992 ), rec( content := "\n", count := [ 2, 5, 10, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 10, 3 ], mathmode := "Text", name := "Description", next := 29008, root := ~, start := 28210, stop := 29007 ) ], count := [ 2, 5, 10, 1 ], mathmode := "Text", name := "ManSection", next := 29023, root := ~, start := 28152, stop := 29022 ), rec( content := " \n\n\n", count := [ 2, 5, 10, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A1,A2", Name := "ProductOfLangua\ ges" ), content := 0, count := [ 2, 5, 11, 2 ], mathmode := "Text", name := "Func", next := 29086, root := ~, start := 29041, stop := 29085 ), rec( attributes := rec( ), content := [ rec( content := "\nGiven t\ wo regular languages (as automata or rational expressions),\nreturns an automa\ ton that recognizes the concatenation of the given \nlanguages, that is, the s\ et of words ", count := [ 2, 5, 11, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "u\ v", count := [ 2, 5, 11, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 11, 3 ], mathmode := "Text", name := "M", next := 29283, root := ~, start := 29274, stop := 29282 ), rec( content := " such th\ at\n", count := [ 2, 5, 11, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "u\ ", count := [ 2, 5, 11, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 11, 3 ], mathmode := "Text", name := "M", next := 29302, root := ~, start := 29294, stop := 29301 ), rec( content := " belongs\ to the first language and ", count := [ 2, 5, 11, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "v\ ", count := [ 2, 5, 11, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 11, 3 ], mathmode := "Text", name := "M", next := 29345, root := ~, start := 29337, stop := 29344 ), rec( content := "\nbelong\ s to the second language.\n", count := [ 2, 5, 11, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> a1:=ListOfWordsToAutomaton(\"ab\",[\"aa\",\"bb\"]);\n< deterministic aut\ omaton on 2 letters with 5 states >\ngap> a2:=ListOfWordsToAutomaton(\"ab\",[\ \"a\",\"b\"]);\n< deterministic automaton on 2 letters with 3 states >\ngap> P\ roductOfLanguages(a1,a2);\n< deterministic automaton on 2 letters with 5 state\ s >\ngap> FAtoRatExp(last);\n(bbUaa)(aUb)\n", count := [ 2, 5, 11, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 5, 11, 4 ], mathmode := "Text", name := "Example", next := 29743, root := ~, start := 29378, stop := 29742 ), rec( content := "\n", count := [ 2, 5, 11, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 11, 3 ], mathmode := "Text", name := "Description", next := 29758, root := ~, start := 29087, stop := 29757 ) ], count := [ 2, 5, 11, 1 ], mathmode := "Text", name := "ManSection", next := 29773, root := ~, start := 29027, stop := 29772 ), rec( content := " \n\n\n", count := [ 2, 5, 11, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 5, 0, 1 ], mathmode := "Text", name := "Section", next := 29787, root := ~, start := 22907, stop := 29786 ), rec( content := "\n", count := [ 2, 5, 11, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Links with Semigr\ oups", count := [ 2, 6, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 6, 0, 2 ], mathmode := "Text", name := "Heading", next := 29837, root := ~, start := 29797, stop := 29836 ), rec( content := "\n\nEach letter of the a\ lphabet of an automaton induces a partial transformation in its set of \nstate\ s. The semigroup generated by these transformations is\ncalled the ", count := [ 2, 6, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "transition semigr\ oup", count := [ 2, 6, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 6, 0, 3 ], mathmode := "Text", name := "E", next := 30029, root := ~, start := 30002, stop := 30028 ), rec( content := " of the automaton.\n\n" , count := [ 2, 6, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "TransitionSemig\ roup" ), content := 0, count := [ 2, 6, 1, 2 ], mathmode := "Text", name := "Func", next := 30107, root := ~, start := 30063, stop := 30106 ), rec( attributes := rec( ), content := [ rec( content := "\n\nRetur\ ns the transition semigroup of the deterministic automaton ", count := [ 2, 6, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 6, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 6, 1, 3 ], mathmode := "Text", name := "A", next := 30197, root := ~, start := 30187, stop := 30196 ), rec( content := ".\n", count := [ 2, 6, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> aut := Automaton(\"det\",10,2,[[7,5,7,5,4,9,10,9,10,9],\n> [8,6,8,9,9,1,\ 3,1,9,9]],[2],[6,7,8,9,10]);;\ngap> s := TransitionSemigroup(aut);; \nga\ p> Size(s); \ \n30\n", count := [ 2, 6, 1, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 6, 1, 4 ], mathmode := "Text", name := "Example", next := 30462, root := ~, start := 30199, stop := 30461 ), rec( content := "\n\nThe \ transition semigroup of the minimal automaton recognizing a language is\nthe {\ \\it syntactic semigroup} of that language.\n\n ", count := [ 2, 6, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 6, 1, 3 ], mathmode := "Text", name := "Description", next := 30604, root := ~, start := 30108, stop := 30603 ) ], count := [ 2, 6, 1, 1 ], mathmode := "Text", name := "ManSection", next := 30618, root := ~, start := 30049, stop := 30617 ), rec( content := " \n", count := [ 2, 6, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut", Name := "SyntacticSemigr\ oupAut" ), content := 0, count := [ 2, 6, 2, 2 ], mathmode := "Text", name := "Func", next := 30681, root := ~, start := 30635, stop := 30680 ), rec( attributes := rec( ), content := [ rec( content := "\n\nRetur\ ns the syntactic semigroup of the deterministic automaton ", count := [ 2, 6, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 2, 6, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 6, 2, 3 ], mathmode := "Text", name := "A", next := 30771, root := ~, start := 30761, stop := 30770 ), rec( content := " (i.e. t\ he transition semigroup of the equivalent minimal automaton)\nwhen it is non e\ mpty and returns ", count := [ 2, 6, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "f\ ail", count := [ 2, 6, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 6, 2, 3 ], mathmode := "Text", name := "K", next := 30884, root := ~, start := 30873, stop := 30883 ), rec( content := " otherwi\ se. \n", count := [ 2, 6, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",3,2,[ [ 1, 2, 0 ], [ 0, 1, 2 ] ],[ 2 ],[ 1, 2 ]);;\ \ngap> S:=SyntacticSemigroupAut(x);;\ngap> Size(S);\n3\n", count := [ 2, 6, 2, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 2, 6, 2, 4 ], mathmode := "Text", name := "Example", next := 31055, root := ~, start := 30897, stop := 31054 ), rec( content := "\n", count := [ 2, 6, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 6, 2, 3 ], mathmode := "Text", name := "Description", next := 31070, root := ~, start := 30682, stop := 31069 ) ], count := [ 2, 6, 2, 1 ], mathmode := "Text", name := "ManSection", next := 31084, root := ~, start := 30621, stop := 31083 ), rec( content := " \n", count := [ 2, 6, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "rat", Name := "SyntacticSemigr\ oupLang" ), content := 0, count := [ 2, 6, 3, 2 ], mathmode := "Text", name := "Func", next := 31147, root := ~, start := 31100, stop := 31146 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns\ the syntactic semigroup of the language given by the rational expression ", count := [ 2, 6, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "r\ at", count := [ 2, 6, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 6, 3, 3 ], mathmode := "Text", name := "A", next := 31253, root := ~, start := 31243, stop := 31252 ), rec( content := ".\n", count := [ 2, 6, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> rat := RationalExpression(\"a*ba*ba*(@Ub)\");;\ngap> S:=SyntacticSemigro\ upLang(rat);;\ngap> Size(S);\n7\n", count := [ 2, 6, 3, 4 ], name := "PCDATA", root := ~ ) ], count := [ 2, 6, 3, 4 ], mathmode := "Text", name := "Example", next := 31391, root := ~, start := 31255, stop := 31390 ), rec( content := "\n", count := [ 2, 6, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 6, 3, 3 ], mathmode := "Text", name := "Description", next := 31406, root := ~, start := 31148, stop := 31405 ) ], count := [ 2, 6, 3, 1 ], mathmode := "Text", name := "ManSection", next := 31420, root := ~, start := 31086, stop := 31419 ), rec( content := " \n", count := [ 2, 6, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 6, 0, 1 ], mathmode := "Text", name := "Section", next := 31432, root := ~, start := 29788, stop := 31431 ), rec( content := "\n ", count := [ 2, 6, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 2, 0, 0, 1 ], mathmode := "Text", name := "Chapter", next := 31445, root := ~, start := 7112, stop := 31444 ), rec( content := "\n\n\n\n", count := [ 2, 6, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := "xml version=\"1.0\" encoding=\"UTF-8\"" , count := [ 2, 6, 3, 5 ], mathmode := "Text", name := "XMLPI", root := ~ ), rec( content := "\n", count := [ 2, 6, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := " $Id: rational.xml,v 1.13 Exp $ ", count := [ 2, 6, 3, 5 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( content := "\n\n", count := [ 2, 6, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Rational languages", count := [ 3, 0, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 0, 0, 2 ], mathmode := "Text", name := "Heading", next := 31576, root := ~, start := 31539, stop := 31575 ), rec( content := "\nRational languages are conveni\ ently represented through rational expressions. These are finite expressions i\ nvolving letters of the alphabet; ", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "concatenation", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "C", next := 31739, root := ~, start := 31719, stop := 31738 ), rec( content := ", corresponding to the ", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "product", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "E", next := 31776, root := ~, start := 31762, stop := 31775 ), rec( content := "; the symbol ", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "U", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "C", next := 31797, root := ~, start := 31789, stop := 31796 ), rec( content := ", corresponding to the ", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "union", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "E", next := 31832, root := ~, start := 31820, stop := 31831 ), rec( content := "; and the symbol ", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "*", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "C", next := 31858, root := ~, start := 31850, stop := 31857 ), rec( content := ", corresponding to the Kleene's \ star.\n", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "rational expressions", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "Index", next := 31931, root := ~, start := 31896, stop := 31930 ), rec( content := "\n\n", count := [ 3, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Rational Expressi\ ons", count := [ 3, 1, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 0, 2 ], mathmode := "Text", name := "Heading", next := 31981, root := ~, start := 31942, stop := 31980 ), rec( content := "\nThe expressions ", count := [ 3, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "@", count := [ 3, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 0, 3 ], mathmode := "Text", name := "C", next := 32006, root := ~, start := 31998, stop := 32005 ), rec( content := " and ", count := [ 3, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\"empty\\_set\"", count := [ 3, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 0, 3 ], mathmode := "Text", name := "C", next := 32030, root := ~, start := 32011, stop := 32029 ), rec( content := " are used to represent t\ he empty word and the empty set respectively.\n\n\n ", count := [ 3, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := " expr[, alph] ", Name := "RationalExpress\ ion" ), content := 0, count := [ 3, 1, 1, 2 ], mathmode := "Text", name := "Func", next := 32171, root := ~, start := 32117, stop := 32170 ), rec( attributes := rec( ), content := [ rec( content := "\nA ratio\ nal expression can be created using the function ", count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "R\ ationalExpression", count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "PCDA\ TA", root := ~ ) ], count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "C", next := 32267, root := ~, start := 32242, stop := 32266 ), rec( content := ". ", count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "e\ xpr", count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "A", next := 32280, root := ~, start := 32269, stop := 32279 ), rec( content := " is a st\ ring representing the desired expression literally and ", count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ lph", count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "A", next := 32354, root := ~, start := 32343, stop := 32353 ), rec( content := " (may or\ may not be present) is the alphabet of the expression. Of course ", count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ lph", count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "A", next := 32439, root := ~, start := 32428, stop := 32438 ), rec( content := " must no\ t contain the symbols '@', '(', ')', '*' nor 'U'. When ", count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ lph", count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "A", next := 32513, root := ~, start := 32502, stop := 32512 ), rec( content := " is not \ present, the alphabet of the rational expression is the set of symbols (other \ than '\"', etc...) occurring in the expression. (The alphabet is then ordered \ with the alphabetical order.)\n", count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> RationalExpression(\"abUc\");\nabUc\ngap> RationalExpression(\"ab*Uc\");\ \nab*Uc\ngap> RationalExpression(\"001U1*\");\n001U1*\ngap> RationalExpression\ (\"001U1*\",\"012\");\n001U1*\n", count := [ 3, 1, 1, 4 ], name := "PCDATA", root := ~ ) ], count := [ 3, 1, 1, 4 ], mathmode := "Text", name := "Example", next := 32906, root := ~, start := 32706, stop := 32905 ), rec( content := "\n", count := [ 3, 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 1, 3 ], mathmode := "Text", name := "Description", next := 32921, root := ~, start := 32172, stop := 32920 ) ], count := [ 3, 1, 1, 1 ], mathmode := "Text", name := "ManSection", next := 32935, root := ~, start := 32103, stop := 32934 ), rec( content := "\n\n\n ", count := [ 3, 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := " n, operation, l\ ist ", Name := "RatExpOnnLetters" ), content := 0, count := [ 3, 1, 2, 2 ], mathmode := "Text", name := "Func", next := 33011, root := ~, start := 32953, stop := 33010 ), rec( attributes := rec( ), content := [ rec( content := "\nThis is\ another way to construct a rational expression over an alphabet. The user may\ specify the alphabet or just give the number ", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "n\ ", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "M", next := 33165, root := ~, start := 33157, stop := 33164 ), rec( content := " of lett\ ers (in this case the alphabet ", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \{a,b,c,\\ldots\\}", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCD\ ATA", root := ~ ) ], count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "M", next := 33227, root := ~, start := 33204, stop := 33226 ), rec( content := " is cons\ idered). ", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "o\ peration", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "A", next := 33261, root := ~, start := 33245, stop := 33260 ), rec( content := " is the \ name of an operation, the possibilities\nbeing: ", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "p\ roduct", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "C", next := 33330, root := ~, start := 33316, stop := 33329 ), rec( content := ", ", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "u\ nion", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "C", next := 33344, root := ~, start := 33332, stop := 33343 ), rec( content := " or ", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "s\ tar", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "C", next := 33359, root := ~, start := 33348, stop := 33358 ), rec( content := ". ", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "l\ ist", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "A", next := 33372, root := ~, start := 33361, stop := 33371 ), rec( content := " is a li\ st\n of rational expressions, a rational expression in the case of\n``star'', \ or a \nlist consisting of an integer when the rational expression is a single\ \nletter. The empty list ", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "[\ ]", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "C", next := 33567, root := ~, start := 33556, stop := 33566 ), rec( content := " and ", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "e\ mpty\\_set", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "C", next := 33589, root := ~, start := 33572, stop := 33588 ), rec( content := " are oth\ er possibilities for\n", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "l\ ist", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "C", next := 33629, root := ~, start := 33618, stop := 33628 ), rec( content := ". \n\nAn\ example follows\n", count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> RatExpOnnLetters(2,\"star\",RatExpOnnLetters(2,\"product\",\n> [RatExpOn\ nLetters(2,[],[1]),RatExpOnnLetters(2,\"union\",\n> [RatExpOnnLetters(2,[],[1]\ ),RatExpOnnLetters(2,[],[2])])])); \n(a(aUb))*\n", count := [ 3, 1, 2, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 3, 1, 2, 4 ], mathmode := "Text", name := "Example", next := 33882, root := ~, start := 33652, stop := 33881 ), rec( content := "\n \nThe\ empty word and the empty set are the rational expressions:\n", count := [ 3, 1, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> RatExpOnnLetters(2,[],[]); \n@\ngap> RatExpOnnLetters(2,[],\"emp\ ty_set\");\nempty_set\n", count := [ 3, 1, 2, 6 ], name := "PCDATA", root := ~ ) ], count := [ 3, 1, 2, 6 ], mathmode := "Text", name := "Example", next := 34074, root := ~, start := 33948, stop := 34073 ), rec( content := "\n ", count := [ 3, 1, 2, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 2, 3 ], mathmode := "Text", name := "Description", next := 34090, root := ~, start := 33012, stop := 34089 ) ], count := [ 3, 1, 2, 1 ], mathmode := "Text", name := "ManSection", next := 34103, root := ~, start := 32939, stop := 34102 ), rec( content := " \n\n", count := [ 3, 1, 2, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "arg", Name := "RandomRatExp" ) , content := 0, count := [ 3, 1, 3, 2 ], mathmode := "Text", name := "Func", next := 34157, root := ~, start := 34120, stop := 34156 ), rec( attributes := rec( ), content := [ rec( content := "\nGiven t\ he number of symbols of the alphabet and (possibly) a factor ", count := [ 3, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "m\ ", count := [ 3, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 3, 3 ], mathmode := "Text", name := "M", next := 34248, root := ~, start := 34240, stop := 34247 ), rec( content := " which i\ s intended to increase the randomality of the expression,\nreturns a pseudo ra\ ndom rational expression over that alphabet.\n", count := [ 3, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> RandomRatExp(2);\nb*(@Ua)\ngap> RandomRatExp(\"01\");\nempty_set\ngap> R\ andomRatExp(\"01\");\n(0U1)*\ngap> RandomRatExp(\"01\",7);\n0*1(@U0U1)\n", count := [ 3, 1, 3, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 3, 1, 3, 4 ], mathmode := "Text", name := "Example", next := 34545, root := ~, start := 34378, stop := 34544 ), rec( content := "\n", count := [ 3, 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 3, 3 ], mathmode := "Text", name := "Description", next := 34560, root := ~, start := 34158, stop := 34559 ) ], count := [ 3, 1, 3, 1 ], mathmode := "Text", name := "ManSection", next := 34575, root := ~, start := 34106, stop := 34574 ), rec( content := " \n\n", count := [ 3, 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "r", Name := "SizeRatExp" ), content := 0, count := [ 3, 1, 4, 2 ], mathmode := "Text", name := "Func", next := 34625, root := ~, start := 34592, stop := 34624 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns\ the size, i.e. the number of symbols of the alphabet, of the rational express\ ion ", count := [ 3, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "r\ ", count := [ 3, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 4, 3 ], mathmode := "Text", name := "A", next := 34737, root := ~, start := 34729, stop := 34736 ), rec( content := ".\n", count := [ 3, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> a:=RationalExpression(\"0*1(@U0U1)\");\n0*1(@U0U1)\ngap> SizeRatExp(a);\ \n5\n", count := [ 3, 1, 4, 4 ], name := "PCDATA", root := ~ ) ], count := [ 3, 1, 4, 4 ], mathmode := "Text", name := "Example", next := 34846, root := ~, start := 34739, stop := 34845 ), rec( content := "\n", count := [ 3, 1, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 4, 3 ], mathmode := "Text", name := "Description", next := 34861, root := ~, start := 34626, stop := 34860 ) ], count := [ 3, 1, 4, 1 ], mathmode := "Text", name := "ManSection", next := 34876, root := ~, start := 34578, stop := 34875 ), rec( content := " \n\n", count := [ 3, 1, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "r", Name := "IsRationalExpre\ ssion" ), content := 0, count := [ 3, 1, 5, 2 ], mathmode := "Text", name := "Func", next := 34936, root := ~, start := 34893, stop := 34935 ), rec( attributes := rec( ), content := [ rec( content := "\nTests w\ hether an object is a rational expression.\n", count := [ 3, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> r := RandomRatExp(\"01\",7);\n1(0U1)U@\ngap> IsRatExpOnnLettersObj(r) an\ d IsRationalExpressionRep(r);\ntrue\ngap> IsRationalExpression(RandomRatExp(\"\ 01\"));\ntrue\n", count := [ 3, 1, 5, 4 ], name := "PCDATA", root := ~ ) ], count := [ 3, 1, 5, 4 ], mathmode := "Text", name := "Example", next := 35193, root := ~, start := 35001, stop := 35192 ), rec( content := "\n", count := [ 3, 1, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 5, 3 ], mathmode := "Text", name := "Description", next := 35208, root := ~, start := 34937, stop := 35207 ) ], count := [ 3, 1, 5, 1 ], mathmode := "Text", name := "ManSection", next := 35223, root := ~, start := 34879, stop := 35222 ), rec( content := " \n\n", count := [ 3, 1, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "R", Name := "AlphabetOfRatEx\ p" ), content := 0, count := [ 3, 1, 6, 2 ], mathmode := "Text", name := "Func", next := 35279, root := ~, start := 35240, stop := 35278 ), rec( attributes := rec( ), content := [ rec( content := "\n\nRetur\ ns the number of symbols in the alphabet of the rational expression ", count := [ 3, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "R\ ", count := [ 3, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 6, 3 ], mathmode := "Text", name := "C", next := 35376, root := ~, start := 35368, stop := 35375 ), rec( content := ".\n", count := [ 3, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> r:=RandomRatExp(2);\na*(ba*U@)\ngap> AlphabetOfRatExp(r);\n2\ngap> r:=Ra\ ndomRatExp(\"01\");\n1*(01*U@)\ngap> AlphabetOfRatExp(r);\n2\ngap> a:=RandomTr\ ansformation(3);;\ngap> b:=RandomTransformation(3);;\ngap> r:=RandomRatExp([a,\ b]);\n(Transformation( [ 1, 1, 3 ] )UTransformation( [ 1, 1, 2 ] ))*\ngap> Alp\ habetOfRatExp(r);\n2\n", count := [ 3, 1, 6, 4 ], name := "PCDATA", root := ~ ) ], count := [ 3, 1, 6, 4 ], mathmode := "Text", name := "Example", next := 35727, root := ~, start := 35378, stop := 35726 ), rec( content := "\n", count := [ 3, 1, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 6, 3 ], mathmode := "Text", name := "Description", next := 35742, root := ~, start := 35280, stop := 35741 ) ], count := [ 3, 1, 6, 1 ], mathmode := "Text", name := "ManSection", next := 35756, root := ~, start := 35226, stop := 35755 ), rec( content := "\n\n\n", count := [ 3, 1, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "R", Name := "AlphabetOfRatEx\ pAsList" ), content := 0, count := [ 3, 1, 7, 2 ], mathmode := "Text", name := "Func", next := 35818, root := ~, start := 35773, stop := 35817 ), rec( attributes := rec( ), content := [ rec( content := "\n\nRetur\ ns the alphabet of the rational expression ", count := [ 3, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "R\ ", count := [ 3, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 7, 3 ], mathmode := "Text", name := "C", next := 35890, root := ~, start := 35882, stop := 35889 ), rec( content := " always\\ nas a list.\nIf the alphabet of the rational expression is given by means of a\ n integer\nless than 27 it returns the list ", count := [ 3, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ "abcd....\"", count := [ 3, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 7, 3 ], mathmode := "Text", name := "C", next := 36034, root := ~, start := 36017, stop := 36033 ), rec( content := ",\nother\ wise returns ", count := [ 3, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "[\ \"a1\", \"a2\", \"a3\", \"a4\", ... ]", count := [ 3, 1, 7, 3 ], mathmode := \ "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 7, 3 ], mathmode := "Text", name := "C", next := 36092, root := ~, start := 36054, stop := 36091 ), rec( content := ".\n", count := [ 3, 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> r:=RandomRatExp(2);\n(aUb)((aUb)(bU@)U@)U@\ngap> AlphabetOfRatExpAsList(\ r);\n\"ab\"\ngap> r:=RandomRatExp(\"01\");\n1*(0U@)\ngap> AlphabetOfRatExpAsLi\ st(r);\n\"01\"\ngap> r:=RandomRatExp(30);;\ngap> AlphabetOfRatExpAsList(r);\n[\ \"a1\", \"a2\", \"a3\", \"a4\", \"a5\", \"a6\", \"a7\", \"a8\", \"a9\", \"a10\ \", \"a11\", \n\"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a17\", \"a18\", \ \"a19\", \"a20\", \"a21\", \n\"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a2\ 7\", \"a28\", \"a29\", \"a30\" ]\n", count := [ 3, 1, 7, 4 ], name := "PCDATA" , root := ~ ) ], count := [ 3, 1, 7, 4 ], mathmode := "Text", name := "Example", next := 36548, root := ~, start := 36094, stop := 36547 ), rec( content := "\n", count := [ 3, 1, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 7, 3 ], mathmode := "Text", name := "Description", next := 36563, root := ~, start := 35819, stop := 36562 ) ], count := [ 3, 1, 7, 1 ], mathmode := "Text", name := "ManSection", next := 36577, root := ~, start := 35759, stop := 36576 ), rec( content := "\n\n\n", count := [ 3, 1, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "R", Name := "CopyRatExp" ), content := 0, count := [ 3, 1, 8, 2 ], mathmode := "Text", name := "Func", next := 36627, root := ~, start := 36594, stop := 36626 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns\ a new rational expression, which is a copy of ", count := [ 3, 1, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "R\ ", count := [ 3, 1, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 8, 3 ], mathmode := "Text", name := "C", next := 36704, root := ~, start := 36696, stop := 36703 ), rec( content := ".\n", count := [ 3, 1, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> r:=RandomRatExp(2);\na*(bU@)\ngap> CopyRatExp(r);\na*(bU@)\n", count := [ 3, 1, 8, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 3, 1, 8, 4 ], mathmode := "Text", name := "Example", next := 36799, root := ~, start := 36706, stop := 36798 ), rec( content := "\n", count := [ 3, 1, 8, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 8, 3 ], mathmode := "Text", name := "Description", next := 36814, root := ~, start := 36628, stop := 36813 ) ], count := [ 3, 1, 8, 1 ], mathmode := "Text", name := "ManSection", next := 36828, root := ~, start := 36580, stop := 36827 ), rec( content := "\n\n ", count := [ 3, 1, 8, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 1, 0, 1 ], mathmode := "Text", name := "Section", next := 36844, root := ~, start := 31933, stop := 36843 ), rec( content := "\n\n", count := [ 3, 1, 8, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Comparison of rat\ ional expressions", count := [ 3, 2, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 0, 2 ], mathmode := "Text", name := "Heading", next := 36908, root := ~, start := 36855, stop := 36907 ), rec( content := "\nThe way two rational e\ xpressions ", count := [ 3, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "r1", count := [ 3, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 0, 3 ], mathmode := "Text", name := "C", next := 36951, root := ~, start := 36942, stop := 36950 ), rec( content := " and ", count := [ 3, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "r2", count := [ 3, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 0, 3 ], mathmode := "Text", name := "C", next := 36965, root := ~, start := 36956, stop := 36964 ), rec( content := " are compared through th\ e\n", count := [ 3, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "LaTeX" ) , content := [ rec( content := "\n$<$\n", count := [ 3, 2, 0, 3 ], name := "PCDATA", root := ~ ) ], count := [ 3, 2, 0, 3 ], mathmode := "Text", name := "Alt", next := 37032, root := ~, start := 36991, stop := 37031 ), rec( content := "\n", count := [ 3, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "HTML" ) , content := [ rec( HTML := true, content := "\n<\n", count := [ 3, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 0, 3 ], name := "Alt", next := 37062, root := ~, start := 37033, stop := 37061 ), rec( content := " operator is the followi\ ng:\nthe empty set is lesser than everything else;\nif r1 and r2 are letters, \ then the lesser is taken from the order in the alphabet;\nif r1 is a letter an\ r2 a product, union or star, then r1 is lesser than r2;\na star expression is\ considered to be lesser than a product or union expression\nand a product les\ ser than a union;\nto compare two star expressions we compare the expressions \ under the stars;\nto compare two product or union expressions we compare the s\ ubexpressions of\neach expression from left to right;\n", count := [ 3, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 2, 0, 1 ], mathmode := "Text", name := "Section", next := 37610, root := ~, start := 36846, stop := 37609 ), rec( content := "\n\n\n", count := [ 3, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Operations with r\ ational languages", count := [ 3, 3, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 2 ], mathmode := "Text", name := "Heading", next := 37675, root := ~, start := 37622, stop := 37674 ), rec( content := "\n\nOnly operations with\ rational languages over the same alphabet are allowed.\n", count := [ 3, 3, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "P", next := 37757, root := ~, start := 37753, stop := 37756 ), rec( content := "\nWe may compute express\ ions for the \n", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "product", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "C", next := 37808, root := ~, start := 37794, stop := 37807 ), rec( content := ", ", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "union", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "C", next := 37822, root := ~, start := 37810, stop := 37821 ), rec( content := " and ", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "star", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "C", next := 37838, root := ~, start := 37827, stop := 37837 ), rec( content := " (i.e.,\nsubmonoid gener\ ated by) of rational sets. In some cases,\nsimpler expressions representing th\ e same set are returned. \nNote that that two simplifications are always ma\ de, namely,\n", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "LaTeX" ) , content := [ rec( content := "\n$r\\cup\"empty_\ set\" = r$\n", count := [ 3, 3, 0, 4 ], name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "Alt", next := 38075, root := ~, start := 38027, stop := 38074 ), rec( content := "\n", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "HTML" ) , content := [ rec( HTML := true, content := "\nrU\"empty_set\ \" = r\n", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], name := "Alt", next := 38118, root := ~, start := 38076, stop := 38117 ), rec( content := "\n and \n", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "LaTeX" ) , content := [ rec( content := "\n$r\\epsilon = r\ $\n", count := [ 3, 3, 0, 4 ], name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "Alt", next := 38166, root := ~, start := 38125, stop := 38165 ), rec( content := "\n", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "HTML" ) , content := [ rec( HTML := true, content := "\nr@ = r\n", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], name := "Alt", next := 38198, root := ~, start := 38167, stop := 38197 ), rec( content := ".\n\n\nOf course, these \ operations may be used to construct more complex\nexpressions. \n\nFor rationa\ l expressions we have the functions ", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "UnionRatExp", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "C", next := 38348, root := ~, start := 38330, stop := 38347 ), rec( content := ", ", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "ProductRatExp", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "C", next := 38370, root := ~, start := 38350, stop := 38369 ), rec( content := ", ", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "StarRatExp", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "C", next := 38389, root := ~, start := 38372, stop := 38388 ), rec( content := ", that return respective\ ly rational expressions for the ", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "union", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "E", next := 38457, root := ~, start := 38445, stop := 38456 ), rec( content := " and ", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "product", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "E", next := 38476, root := ~, start := 38462, stop := 38475 ), rec( content := " of \nthe languages give\ n by the rational expressions ", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "r", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "C", next := 38537, root := ~, start := 38529, stop := 38536 ), rec( content := " and ", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "s", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "C", next := 38550, root := ~, start := 38542, stop := 38549 ), rec( content := " and the ", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "star", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "C", next := 38570, root := ~, start := 38559, stop := 38569 ), rec( content := " of\nthe language given \ by the rational expression ", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "r", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "C", next := 38628, root := ~, start := 38620, stop := 38627 ), rec( content := ".\n", count := [ 3, 3, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "r,s", Name := "UnionRatExp" ), content := 0, count := [ 3, 3, 1, 2 ], mathmode := "Text", name := "Func", next := 38680, root := ~, start := 38644, stop := 38679 ) ], count := [ 3, 3, 1, 1 ], mathmode := "Text", name := "ManSection", next := 38695, root := ~, start := 38630, stop := 38694 ), rec( content := " \n\n ", count := [ 3, 3, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "r,s", Name := "ProductRatExp" ), content := 0, count := [ 3, 3, 2, 2 ], mathmode := "Text", name := "Func", next := 38751, root := ~, start := 38713, stop := 38750 ) ], count := [ 3, 3, 2, 1 ], mathmode := "Text", name := "ManSection", next := 38766, root := ~, start := 38699, stop := 38765 ), rec( content := " \n\n ", count := [ 3, 3, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "r", Name := " StarRatExp" ), content := 0, count := [ 3, 3, 3, 2 ], mathmode := "Text", name := "Func", next := 38818, root := ~, start := 38784, stop := 38817 ), rec( attributes := rec( ), content := [ rec( content := "\n\n\nThe\ expression ", count := [ 3, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "(\ a(aUb))*", count := [ 3, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 3, 3 ], mathmode := "Text", name := "C", next := 38866, root := ~, start := 38850, stop := 38865 ), rec( content := " may be \ produced in the following way\n", count := [ 3, 3, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> r1 := RatExpOnnLetters(2,[],[1]); \na\ngap> r2 := RatExpOnnLetters(2,[],\ [2]);\nb\ngap> r3 := UnionRatExp(r1,r2);\naUb\ngap> r4 := ProductRatExp(r1,r3)\ ;\na(aUb)\ngap> r5 := StarRatExp(r4);\n(a(aUb))*\n", count := [ 3, 3, 3, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 3, 3, 3, 4 ], mathmode := "Text", name := "Example", next := 39131, root := ~, start := 38904, stop := 39130 ), rec( content := "\n", count := [ 3, 3, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 3, 3 ], mathmode := "Text", name := "Description", next := 39146, root := ~, start := 38819, stop := 39145 ) ], count := [ 3, 3, 3, 1 ], mathmode := "Text", name := "ManSection", next := 39159, root := ~, start := 38770, stop := 39158 ), rec( content := " \n", count := [ 3, 3, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 3, 0, 1 ], mathmode := "Text", name := "Section", next := 39171, root := ~, start := 37613, stop := 39170 ), rec( content := "\n ", count := [ 3, 3, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 3, 0, 0, 1 ], mathmode := "Text", name := "Chapter", next := 39184, root := ~, start := 31530, stop := 39183 ), rec( content := "\n\n\n", count := [ 3, 3, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := "xml version=\"1.0\" encoding=\"UTF-8\"" , count := [ 3, 3, 3, 5 ], mathmode := "Text", name := "XMLPI", root := ~ ), rec( content := "\n", count := [ 3, 3, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := " $Id: aut-vs-rat.xml,v 1.13 Exp $ ", count := [ 3, 3, 3, 5 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( content := "\n\n", count := [ 3, 3, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Automata ", count := [ 4, 0, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "versus", count := [ 4, 0, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 0, 0, 2 ], mathmode := "Text", name := "Emph", next := 39316, root := ~, start := 39297, stop := 39315 ), rec( content := " rational expressions", count := [ 4, 0, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 0, 0, 2 ], mathmode := "Text", name := "Heading", next := 39347, root := ~, start := 39279, stop := 39346 ), rec( content := "\n\n\nA remarkable theorem due t\ o Kleene shows that a language is recognized by a finite automaton precisely w\ hen it may be given by means of a rational expression, i.e. is a rational lang\ uage.\n", count := [ 4, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 4, 0, 0, 4 ], mathmode := "Text", name := "P", next := 39542, root := ~, start := 39538, stop := 39541 ), rec( content := "\nAn automaton and a rational ex\ pression are said to be ", count := [ 4, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "equivalent", count := [ 4, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 0, 0, 4 ], mathmode := "Text", name := "E", next := 39614, root := ~, start := 39597, stop := 39613 ), rec( content := " when both represent the same la\ nguage.\nIn this chapter we describe functions to go from automata to equivale\ nt rational expressions and ", count := [ 4, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "vice-versa", count := [ 4, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 0, 0, 4 ], mathmode := "Text", name := "E", next := 39768, root := ~, start := 39751, stop := 39767 ), rec( content := ".\n\n", count := [ 4, 0, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "From automata to \ rational expressions", count := [ 4, 1, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 1, 0, 2 ], mathmode := "Text", name := "Heading", next := 39836, root := ~, start := 39780, stop := 39835 ), rec( content := "\n\n\n", count := [ 4, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "AutomatonToRatE\ xp " ), content := 0, count := [ 4, 1, 1, 2 ], mathmode := "Text", name := "Func", next := 39894, root := ~, start := 39853, stop := 39893 ), rec( attributes := rec( Arg := "A", Name := "AutToRatExp" ), content := 0, count := [ 4, 1, 1, 4 ], mathmode := "Text", name := "Func", next := 39929, root := ~, start := 39895, stop := 39928 ), rec( attributes := rec( Arg := "A", Name := "FAtoRatExp" ), content := 0, count := [ 4, 1, 1, 6 ], mathmode := "Text", name := "Func", next := 39963, root := ~, start := 39930, stop := 39962 ), rec( attributes := rec( ), content := [ rec( content := "\n From a\ finite automaton, ", count := [ 4, 1, 1, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "F\ AtoRatExp", count := [ 4, 1, 1, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 1, 1, 7 ], mathmode := "Text", name := "C", next := 40021, root := ~, start := 40004, stop := 40020 ), rec( content := ", ", count := [ 4, 1, 1, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ utToRatExp", count := [ 4, 1, 1, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 1, 1, 7 ], mathmode := "Text", name := "C", next := 40041, root := ~, start := 40023, stop := 40040 ), rec( content := " and ", count := [ 4, 1, 1, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ utomatonToRatExp", count := [ 4, 1, 1, 7 ], mathmode := "Text", name := "PCDAT\ A", root := ~ ) ], count := [ 4, 1, 1, 7 ], mathmode := "Text", name := "C", next := 40071, root := ~, start := 40047, stop := 40070 ), rec( content := ", which \ are synonyms, compute one equivalent rational expression,\nusing the state eli\ mination algorithm.\n", count := [ 4, 1, 1, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=Automaton(\"det\",4,2,[[ 0, 1, 2, 3 ],[ 0, 1, 2, 3 ]],[ 3 ],[ 1, 3, 4\ ]);;\ngap> FAtoRatExp(x);\n(aUb)(aUb)U@\ngap> aut:=Automaton(\"det\",4,\"xy\"\ ,[[ 0, 1, 2, 3 ],[ 0, 1, 2, 3 ]],[ 3 ],[ 1, 3, 4 ]);;\ngap> FAtoRatExp(aut);\n\ (xUy)(xUy)U@\n", count := [ 4, 1, 1, 8 ], name := "PCDATA", root := ~ ) ], count := [ 4, 1, 1, 8 ], mathmode := "Text", name := "Example", next := 40431, root := ~, start := 40176, stop := 40430 ), rec( content := "\n", count := [ 4, 1, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 1, 1, 7 ], mathmode := "Text", name := "Description", next := 40446, root := ~, start := 39964, stop := 40445 ) ], count := [ 4, 1, 1, 1 ], mathmode := "Text", name := "ManSection", next := 40461, root := ~, start := 39839, stop := 40460 ), rec( content := " \n", count := [ 4, 1, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 1, 0, 1 ], mathmode := "Text", name := "Section", next := 40473, root := ~, start := 39771, stop := 40472 ), rec( content := "\n", count := [ 4, 1, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "From rational exp\ ression to automata", count := [ 4, 2, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 2, 0, 2 ], mathmode := "Text", name := "Heading", next := 40538, root := ~, start := 40483, stop := 40537 ), rec( content := "\n\n", count := [ 4, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "R", Name := "RatExpToNDAut" ), content := 0, count := [ 4, 2, 1, 2 ], mathmode := "Text", name := "Func", next := 40590, root := ~, start := 40554, stop := 40589 ), rec( attributes := rec( ), content := [ rec( content := "\nGiven a\ rational expression ", count := [ 4, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "R\ ", count := [ 4, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 2, 1, 3 ], mathmode := "Text", name := "A", next := 40641, root := ~, start := 40633, stop := 40640 ), rec( content := ", comput\ es the equivalent NFA\n", count := [ 4, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> r:=RationalExpression(\"aUab\");\naUab\ngap> Display(RatExpToNDAut(r));\ \n | 1 2 3 4\n--------------------------------\n a | \ [ 1, 2 ]\n b | [ 3 ]\nInitial state: [ 4 ]\nAccepting states: \ [ 1, 3 ]\ngap> r:=RationalExpression(\"xUxy\"); \nxUxy\ngap> Display(RatExpToN\ DAut(r)); \n | 1 2 3 4\n--------------------------------\n x\ | [ 1, 2 ] \n y | [ 3 ] \nInitial \ state: [ 4 ]\nAccepting states: [ 1, 3 ]\n", count := [ 4, 2, 1, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 4, 2, 1, 4 ], mathmode := "Text", name := "Example", next := 41180, root := ~, start := 40671, stop := 41179 ), rec( content := "\n", count := [ 4, 2, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 2, 1, 3 ], mathmode := "Text", name := "Description", next := 41195, root := ~, start := 40591, stop := 41194 ) ], count := [ 4, 2, 1, 1 ], mathmode := "Text", name := "ManSection", next := 41210, root := ~, start := 40540, stop := 41209 ), rec( content := " \n\n", count := [ 4, 2, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "R", Name := "RatExpToAutomat\ on" ), content := 0, count := [ 4, 2, 2, 2 ], mathmode := "Text", name := "Func", next := 41267, root := ~, start := 41227, stop := 41266 ), rec( attributes := rec( Arg := "R", Name := "RatExpToAut" ), content := 0, count := [ 4, 2, 2, 4 ], mathmode := "Text", name := "Func", next := 41302, root := ~, start := 41268, stop := 41301 ), rec( attributes := rec( ), content := [ rec( content := "\n Given \ a rational expression ", count := [ 4, 2, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "R\ ", count := [ 4, 2, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 2, 2, 5 ], mathmode := "Text", name := "A", next := 41354, root := ~, start := 41346, stop := 41353 ), rec( content := ", these \ functions, which are synonyms, use ", count := [ 4, 2, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Func := "RatExpT\ oNDAut" ), content := 0, count := [ 4, 2, 2, 5 ], mathmode := "Text", name := "Ref", next := 41424, root := ~, start := 41397, stop := 41423 ), rec( content := ") to com\ pute the equivalent NFA and then returns the equivalent minimal DFA\n", count := [ 4, 2, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> r:=RationalExpression(\"@U(aUb)(aUb)\");\n@U(aUb)(aUb)\ngap> Display(Rat\ ExpToAut(r));\n | 1 2 3 4\n-----------------\n a | 3 1 3 2\n b | 3 \ 1 3 2\nInitial state: [ 4 ]\nAccepting states: [ 1, 4 ]\ngap> r:=Rationa\ lExpression(\"@U(0U1)(0U1)\");\n@U(0U1)(0U1)\ngap> Display(RatExpToAut(r)); \ \n | 1 2 3 4 \n-----------------\n 0 | 3 1 3 2 \n 1 | \ 3 1 3 2 \nInitial state: [ 4 ]\nAccepting states: [ 1, 4 ]\n", count := [ 4, 2, 2, 6 ], name := "PCD\ ATA", root := ~ ) ], count := [ 4, 2, 2, 6 ], mathmode := "Text", name := "Example", next := 41954, root := ~, start := 41500, stop := 41953 ), rec( content := "\n", count := [ 4, 2, 2, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 2, 2, 5 ], mathmode := "Text", name := "Description", next := 41969, root := ~, start := 41303, stop := 41968 ) ], count := [ 4, 2, 2, 1 ], mathmode := "Text", name := "ManSection", next := 41984, root := ~, start := 41213, stop := 41983 ), rec( content := " \n\n", count := [ 4, 2, 2, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 2, 0, 1 ], mathmode := "Text", name := "Section", next := 41997, root := ~, start := 40474, stop := 41996 ), rec( content := "\n ", count := [ 4, 2, 2, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n ", count := [ 4, 3, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n Some test\ s on automata\n ", count := [ 4, 3, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 3, 0, 2 ], mathmode := "Text", name := "Heading", next := 42066, root := ~, start := 42013, stop := 42065 ), rec( content := "\n This section descr\ ibes functions that perform tests on automata, rational expressions and their \ accepted languages.\n ", count := [ 4, 3, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "R", Name := "IsEmptyLang" ), content := 0, count := [ 4, 3, 1, 2 ], mathmode := "Text", name := "Func", next := 42249, root := ~, start := 42214, stop := 42248 ), rec( attributes := rec( ), content := [ rec( content := "\n \ This function tests if the language given through a rational expression or \ an automaton\n ", count := [ 4, 3, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ n R\n ", count := [ 4, 3, 1, 3 ], mathmode := "Text", name := "PCD\ ATA", root := ~ ) ], count := [ 4, 3, 1, 3 ], mathmode := "Text", name := "Arg", next := 42416, root := ~, start := 42380, stop := 42415 ), rec( content := "\n \ is the empty language.\n", count := [ 4, 3, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> r:=RandomRatExp(2);\nempty_set\ngap> IsEmptyLang(r);\ntrue\ngap> r:=Rand\ omRatExp(2);\naUb\ngap> IsEmptyLang(r);\nfalse\n", count := [ 4, 3, 1, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 4, 3, 1, 4 ], mathmode := "Text", name := "Example", next := 42587, root := ~, start := 42450, stop := 42586 ), rec( content := "\n \ ", count := [ 4, 3, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 3, 1, 3 ], mathmode := "Text", name := "Description", next := 42610, root := ~, start := 42258, stop := 42609 ) ], count := [ 4, 3, 1, 1 ], mathmode := "Text", name := "ManSection", next := 42630, root := ~, start := 42193, stop := 42629 ), rec( content := "\n ", count := [ 4, 3, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "R", Name := "IsFullLang" ), content := 0, count := [ 4, 3, 2, 2 ], mathmode := "Text", name := "Func", next := 42692, root := ~, start := 42658, stop := 42691 ), rec( attributes := rec( ), content := [ rec( content := "\n \ This function tests if the language given through a rational expression or \ an automaton\n ", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ n R\n ", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCD\ ATA", root := ~ ) ], count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "Arg", next := 42859, root := ~, start := 42823, stop := 42858 ), rec( content := "\n \ represents the Kleene closure of the alphabet of\n ", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ n R\n ", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCD\ ATA", root := ~ ) ], count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "A", next := 42961, root := ~, start := 42929, stop := 42960 ), rec( content := "\n \ .\n", count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> r:=RationalExpression(\"aUb\");\naUb\ngap> IsFullLang(r);\nfalse\ngap> r\ :=RationalExpression(\"(aUb)*\");\n(aUb)*\ngap> IsFullLang(r);\ntrue\n", count := [ 4, 3, 2, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 4, 3, 2, 4 ], mathmode := "Text", name := "Example", next := 43129, root := ~, start := 42974, stop := 43128 ), rec( content := "\n \ ", count := [ 4, 3, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 3, 2, 3 ], mathmode := "Text", name := "Description", next := 43152, root := ~, start := 42701, stop := 43151 ) ], count := [ 4, 3, 2, 1 ], mathmode := "Text", name := "ManSection", next := 43172, root := ~, start := 42637, stop := 43171 ), rec( content := "\n\n\n", count := [ 4, 3, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A1, A2", Name := "AreEqualLang" ) , content := 0, count := [ 4, 3, 3, 2 ], mathmode := "Text", name := "Func", next := 43238, root := ~, start := 43197, stop := 43237 ), rec( attributes := rec( Arg := "A1,A2 ", Name := "AreEquivAut" ), content := 0, count := [ 4, 3, 3, 4 ], mathmode := "Text", name := "Func", next := 43278, root := ~, start := 43239, stop := 43277 ), rec( attributes := rec( ), content := [ rec( content := "\n These \ functions, which are synonyms, test if the automata or rational expressions ", count := [ 4, 3, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ 1", count := [ 4, 3, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 3, 3, 5 ], mathmode := "Text", name := "A", next := 43385, root := ~, start := 43376, stop := 43384 ), rec( content := " and ", count := [ 4, 3, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ 2", count := [ 4, 3, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 3, 3, 5 ], mathmode := "Text", name := "A", next := 43399, root := ~, start := 43390, stop := 43398 ), rec( content := " are equ\ ivalent, i.e. represent the same language. \nThis is performed by checking tha\ t the corresponding minimal automata are isomorphic. Note hat this cannot happ\ en if the alphabets are different.\n", count := [ 4, 3, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> y:=RandomAutomaton(\"det\",4,2);;\ngap> x:=RandomAutomaton(\"det\",4,2);\ ;\ngap> AreEquivAut(x, y);\nfalse\ngap> a:=RationalExpression(\"(aUb)*ab*\");\ \n(aUb)*ab*\ngap> b:=RationalExpression(\"(aUb)*\");\n(aUb)*\ngap> AreEqualLan\ g(a, b);\nfalse\ngap> a:=RationalExpression(\"(bUa)*\");\n(bUa)*\ngap> AreEqua\ lLang(a, b);\ntrue\ngap> x:=RationalExpression(\"(1U0)*\");\n(1U0)*\ngap> AreE\ qualLang(a, x); \nThe given languages are not over the same alphabet\nfalse\n\ ", count := [ 4, 3, 3, 6 ], name := "PCDATA", root := ~ ) ], count := [ 4, 3, 3, 6 ], mathmode := "Text", name := "Example", next := 44052, root := ~, start := 43597, stop := 44051 ), rec( content := "\n \ ", count := [ 4, 3, 3, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 3, 3, 5 ], mathmode := "Text", name := "Description", next := 44075, root := ~, start := 43279, stop := 44074 ) ], count := [ 4, 3, 3, 1 ], mathmode := "Text", name := "ManSection", next := 44095, root := ~, start := 43175, stop := 44094 ), rec( content := "\n ", count := [ 4, 3, 3, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "R1, R2", Name := "IsContainedLang\ " ), content := 0, count := [ 4, 3, 4, 2 ], mathmode := "Text", name := "Func", next := 44167, root := ~, start := 44123, stop := 44166 ), rec( attributes := rec( ), content := [ rec( content := "\n \ Tests if the language represented (through an automaton or a rational expr\ ession) by\n ", count := [ 4, 3, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ n R1\n ", count := [ 4, 3, 4, 3 ], mathmode := "Text", name := "PCD\ ATA", root := ~ ) ], count := [ 4, 3, 4, 3 ], mathmode := "Text", name := "A", next := 44329, root := ~, start := 44296, stop := 44328 ), rec( content := "\n \ is contained in the language represented (through an automaton or a ration\ al expression) by\n ", count := [ 4, 3, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ n R2\n ", count := [ 4, 3, 4, 3 ], mathmode := "Text", name := "PCD\ ATA", root := ~ ) ], count := [ 4, 3, 4, 3 ], mathmode := "Text", name := "A", next := 44475, root := ~, start := 44442, stop := 44474 ), rec( content := "\n \ .\n", count := [ 4, 3, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> r:=RationalExpression(\"aUab\");\naUab\ngap> s:=RationalExpression(\"a\"\ ,\"ab\");\na\ngap> IsContainedLang(s,r);\ntrue\ngap> IsContainedLang(r,s);\nfa\ lse\n", count := [ 4, 3, 4, 4 ], name := "PCDATA", root := ~ ) ], count := [ 4, 3, 4, 4 ], mathmode := "Text", name := "Example", next := 44654, root := ~, start := 44488, stop := 44653 ), rec( content := "\n \ ", count := [ 4, 3, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 3, 4, 3 ], mathmode := "Text", name := "Description", next := 44677, root := ~, start := 44176, stop := 44676 ) ], count := [ 4, 3, 4, 1 ], mathmode := "Text", name := "ManSection", next := 44697, root := ~, start := 44102, stop := 44696 ), rec( content := "\n ", count := [ 4, 3, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "R1, R2", Name := "AreDisjointLang\ " ), content := 0, count := [ 4, 3, 5, 2 ], mathmode := "Text", name := "Func", next := 44769, root := ~, start := 44725, stop := 44768 ), rec( attributes := rec( ), content := [ rec( content := "\n \ Tests if the languages represented (through automata or a rational expressi\ ons) by\n ", count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ n R1\n ", count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "PCD\ ATA", root := ~ ) ], count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "A", next := 44928, root := ~, start := 44895, stop := 44927 ), rec( content := "\n \ and\n ", count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ n R2\n ", count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "PCD\ ATA", root := ~ ) ], count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "A", next := 44986, root := ~, start := 44953, stop := 44985 ), rec( content := "\n \ are disjoint.\n", count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> r:=RationalExpression(\"aUab\");;\ngap> s:=RationalExpression(\"a\",\"ab\ \");;\ngap> AreDisjointLang(r,s);\nfalse\n", count := [ 4, 3, 5, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 4, 3, 5, 4 ], mathmode := "Text", name := "Example", next := 45140, root := ~, start := 45011, stop := 45139 ), rec( content := "\n \ ", count := [ 4, 3, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 3, 5, 3 ], mathmode := "Text", name := "Description", next := 45163, root := ~, start := 44778, stop := 45162 ) ], count := [ 4, 3, 5, 1 ], mathmode := "Text", name := "ManSection", next := 45183, root := ~, start := 44704, stop := 45182 ), rec( content := "\n ", count := [ 4, 3, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 3, 0, 1 ], mathmode := "Text", name := "Section", next := 45196, root := ~, start := 41999, stop := 45195 ), rec( content := "\n\n", count := [ 4, 3, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 4, 0, 0, 1 ], mathmode := "Text", name := "Chapter", next := 45208, root := ~, start := 39270, stop := 45207 ), rec( content := "\n\n", count := [ 4, 3, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := "xml version=\"1.0\" encoding=\"UTF-8\"" , count := [ 4, 3, 5, 5 ], mathmode := "Text", name := "XMLPI", root := ~ ), rec( content := "\n", count := [ 4, 3, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := " $Id: aut-func.xml,v 1.13 Exp $ ", count := [ 4, 3, 5, 5 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( content := "\n\n", count := [ 4, 3, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Some functions involving \ automata", count := [ 5, 0, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 0, 0, 2 ], mathmode := "Text", name := "Heading", next := 45352, root := ~, start := 45300, stop := 45351 ), rec( content := "\nThis chapter describes some fu\ nctions involving automata. It starts with functions to obtain equivalent auto\ mata of other type. Then the minimalization is considered.\n\n", count := [ 5, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "From one type to \ another", count := [ 5, 1, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 0, 2 ], mathmode := "Text", name := "Heading", next := 45573, root := ~, start := 45530, stop := 45572 ), rec( content := "\nRecall that two automa\ ta are said to be equivalent when they recognize the same language.\nNext we h\ ave functions which have as input automata of one type and as output equivalen\ t automata of another type.\n\n", count := [ 5, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "EpsilonToNFA" ) , content := 0, count := [ 5, 1, 1, 2 ], mathmode := "Text", name := "Func", next := 45829, root := ~, start := 45794, stop := 45828 ), rec( attributes := rec( ), content := [ rec( content := "\n", count := [ 5, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 1, 3 ], mathmode := "Text", name := "A", next := 45852, root := ~, start := 45844, stop := 45851 ), rec( content := " is an a\ utomaton with ", count := [ 5, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \epsilon", count := [ 5, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 1, 3 ], mathmode := "Text", name := "M", next := 45889, root := ~, start := 45874, stop := 45888 ), rec( content := "-transit\ ions. Returns a NFA\nrecognizing the same language.\n", count := [ 5, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=RandomAutomaton(\"epsilon\",3,2);;Display(x);\n | 1 2 \ 3\n------------------------------------\n a | [ 2 ] [ 3 ] [ 2 \ ]\n b | [ 1, 2 ] [ 1, 2 ] [ 1, 3 ]\n @ | [ 1, 2 ] [ 1, 2 ] [ 1, 2 ]\nI\ nitial states: [ 2, 3 ]\nAccepting states: [ 1, 2, 3 ]\ngap> Display(Epsilon\ ToNFA(x));\n | 1 2 3\n--------------------------------\ ----------\n a | [ 1, 2 ] [ 1, 2, 3 ] [ 1, 2 ]\n b | [ 1, 2 ] [ 1, 2 ] \ [ 1, 2, 3 ]\nInitial states: [ 1, 2, 3 ]\nAccepting states: [ 1, 2, 3 ]\ \n", count := [ 5, 1, 1, 4 ], name := "PCDATA", root := ~ ) ], count := [ 5, 1, 1, 4 ], mathmode := "Text", name := "Example", next := 46509, root := ~, start := 45948, stop := 46508 ), rec( content := "\n", count := [ 5, 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 1, 3 ], mathmode := "Text", name := "Description", next := 46524, root := ~, start := 45830, stop := 46523 ) ], count := [ 5, 1, 1, 1 ], mathmode := "Text", name := "ManSection", next := 46539, root := ~, start := 45780, stop := 46538 ), rec( content := " \n\n\n", count := [ 5, 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "EpsilonToNFASet\ " ), content := 0, count := [ 5, 1, 2, 2 ], mathmode := "Text", name := "Func", next := 46595, root := ~, start := 46557, stop := 46594 ), rec( attributes := rec( ), content := [ rec( content := "\n", count := [ 5, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 2, 3 ], mathmode := "Text", name := "A", next := 46618, root := ~, start := 46610, stop := 46617 ), rec( content := " is an a\ utomaton with ", count := [ 5, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \epsilon", count := [ 5, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 2, 3 ], mathmode := "Text", name := "M", next := 46655, root := ~, start := 46640, stop := 46654 ), rec( content := "-transit\ ions. Returns a NFA\nrecognizing the same language. This function differs from\ ", count := [ 5, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) , rec( attributes := rec( Func := "Epsilon\ ToNFA" ), content := 0, count := [ 5, 1, 2, 3 ], mathmode := "Text", name := "Ref", next := 46767, root := ~, start := 46741, stop := 46766 ), rec( content := "\nin tha\ t it is faster for smaller automata, or automata with few\nepsilon transitions\ , but slower in the really hard cases.\n", count := [ 5, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 2, 3 ], mathmode := "Text", name := "Description", next := 46904, root := ~, start := 46596, stop := 46903 ) ], count := [ 5, 1, 2, 1 ], mathmode := "Text", name := "ManSection", next := 46919, root := ~, start := 46543, stop := 46918 ), rec( content := " \n\n\n\n", count := [ 5, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "EpsilonCompacte\ dAut" ), content := 0, count := [ 5, 1, 3, 2 ], mathmode := "Text", name := "Func", next := 46980, root := ~, start := 46938, stop := 46979 ), rec( attributes := rec( ), content := [ rec( content := "\n", count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "A", next := 47003, root := ~, start := 46995, stop := 47002 ), rec( content := " is an a\ utomaton with ", count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \epsilon", count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "M", next := 47040, root := ~, start := 47025, stop := 47039 ), rec( content := "-transit\ ions. Returns an \n", count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \epsilon", count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "M", next := 47081, root := ~, start := 47066, stop := 47080 ), rec( content := "NFA with\ \neach strongly-connected component of the\nepsilon-transitions digraph of ", count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "A", next := 47170, root := ~, start := 47162, stop := 47169 ), rec( content := " identif\ ied with a single state and\nrecognizing the same language.\n", count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=RandomAutomaton(\"epsilon\",3,2);;Display(x);\n | 1 2 \ 3\n------------------------------------\n a | [ 1, 2 ] [ 1, 3 ] [ 1,\ 2 ]\n b | [ 1, 2 ] [ 1, 2 ] [ 2, 3 ]\n @ | [ 3 ] [ 2 ]\nI\ nitial state: [ 3 ]\nAccepting states: [ 1, 3 ]\ngap> Display(EpsilonCompac\ tedAut(x));\n | 1 2\n-------------------------\n a | [ 1, 2 ] [ \ 1, 2 ]\n b | [ 1, 2 ] [ 1, 2 ]\n @ |\nInitial state: [ 2 ]\nAccepting sta\ tes: [ 1, 2 ]\n", count := [ 5, 1, 3, 4 ], name := "PCDATA", root := ~ ) ], count := [ 5, 1, 3, 4 ], mathmode := "Text", name := "Example", next := 47733, root := ~, start := 47237, stop := 47732 ), rec( content := "\n", count := [ 5, 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 3, 3 ], mathmode := "Text", name := "Description", next := 47748, root := ~, start := 46981, stop := 47747 ) ], count := [ 5, 1, 3, 1 ], mathmode := "Text", name := "ManSection", next := 47763, root := ~, start := 46924, stop := 47762 ), rec( content := " \n\n\n\n", count := [ 5, 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "ReducedNFA" ), content := 0, count := [ 5, 1, 4, 2 ], mathmode := "Text", name := "Func", next := 47815, root := ~, start := 47782, stop := 47814 ), rec( attributes := rec( ), content := [ rec( content := "\n", count := [ 5, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 4, 3 ], mathmode := "Text", name := "A", next := 47838, root := ~, start := 47830, stop := 47837 ), rec( content := " is a no\ n deterministic automaton (without ", count := [ 5, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ \epsilon", count := [ 5, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 4, 3 ], mathmode := "Text", name := "M", next := 47896, root := ~, start := 47881, stop := 47895 ), rec( content := "-transit\ ions). Returns an \nNFA accepting\nthe same language as its input but with pos\ sibly fewer states (it \nquotients out\nby the smallest right-invariant partit\ ion of the states). A paper describing\nthe algorithm is in preparation.\n", count := [ 5, 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=RandomAutomaton(\"nondet\",5,2);;Display(x);\n | 1 2 \ 3 4 5\n---------------------------------\ -------------------------------------\n a | [ 1, 5 ] [ 1, 2, 4, 5 ] [ 1\ , 3, 5 ] [ 3, 4, 5 ] [ 4 ]\n b | [ 2, 3, 4 ] [ 3 ] [ 2, 3, 4 \ ] [ 2, 4, 5 ] [ 3 ]\nInitial state: [ 4 ]\nAccepting states: [ 1, 3, 4,\ 5 ]\ngap> Display(ReducedNFA(x));\n | 1 2 3 \ 4\n--------------------------------------------------------\n a | [ 1, 3 ] \ [ 1, 2, 3, 4 ] [ 4 ] [ 1, 3, 4 ]\n b | [ 1, 2, 4 ] [ 1 ] \ [ 1 ] [ 2, 3, 4 ]\nInitial state: [ 4 ]\nAccepting states: [ 1, 3, 4 ]\n\ ", count := [ 5, 1, 4, 4 ], name := "PCDATA", root := ~ ) ], count := [ 5, 1, 4, 4 ], mathmode := "Text", name := "Example", next := 48845, root := ~, start := 48128, stop := 48844 ), rec( content := "\n", count := [ 5, 1, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 4, 3 ], mathmode := "Text", name := "Description", next := 48860, root := ~, start := 47816, stop := 48859 ) ], count := [ 5, 1, 4, 1 ], mathmode := "Text", name := "ManSection", next := 48875, root := ~, start := 47768, stop := 48874 ), rec( content := " \n\n\n\n", count := [ 5, 1, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "NFAtoDFA" ), content := 0, count := [ 5, 1, 5, 2 ], mathmode := "Text", name := "Func", next := 48925, root := ~, start := 48894, stop := 48924 ), rec( attributes := rec( ), content := [ rec( content := "\nGiven a\ n NFA, these synonym functions, compute the equivalent DFA, using the powerset\ construction,\naccording to the algorithm presented in the report of the AMoR\ E ", count := [ 5, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Key := "AMORE:95\ " ), content := 0, count := [ 5, 1, 5, 3 ], mathmode := "Text", name := "Cite", next := 49126, root := ~, start := 49104, stop := 49125 ), rec( content := " program\ . \nThe returned automaton is dense deterministic\n", count := [ 5, 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=RandomAutomaton(\"nondet\",3,2);;Display(x);\n | 1 2 3\n-\ --------------------------\n a | [ 2 ] [ 1, 3 ]\n b | [ 2,\ 3 ]\nInitial states: [ 1, 3 ]\nAccepting states: [ 1, 2 ]\ngap> Display(NFA\ toDFA(x));\n | 1 2 3\n--------------\n a | 2 2 1\n b | 3 3 3\nIniti\ al state: [ 1 ]\nAccepting states: [ 1, 2, 3 ]\n", count := [ 5, 1, 5, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 5, 1, 5, 4 ], mathmode := "Text", name := "Example", next := 49561, root := ~, start := 49183, stop := 49560 ), rec( content := "\n", count := [ 5, 1, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 5, 3 ], mathmode := "Text", name := "Description", next := 49576, root := ~, start := 48926, stop := 49575 ) ], count := [ 5, 1, 5, 1 ], mathmode := "Text", name := "ManSection", next := 49591, root := ~, start := 48880, stop := 49590 ), rec( content := " \n\n\n", count := [ 5, 1, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A, s1, s2", Name := "FuseSymbolsAut"\ ), content := 0, count := [ 5, 1, 6, 2 ], mathmode := "Text", name := "Func", next := 49654, root := ~, start := 49609, stop := 49653 ), rec( attributes := rec( ), content := [ rec( content := "\nGiven a\ n automaton ", count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "A", next := 49696, root := ~, start := 49688, stop := 49695 ), rec( content := " and int\ egers ", count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "s\ 1", count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "A", next := 49719, root := ~, start := 49710, stop := 49718 ), rec( content := " and ", count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "s\ 2", count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "A", next := 49733, root := ~, start := 49724, stop := 49732 ), rec( content := " which, \ returns an NFA\nobtained by replacing all transitions through ", count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "s\ 2", count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "A", next := 49811, root := ~, start := 49802, stop := 49810 ), rec( content := " by tran\ sitions through ", count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "s\ 1", count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "A", next := 49844, root := ~, start := 49835, stop := 49843 ), rec( content := ".\n", count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=RandomAutomaton(\"det\",3,2);;Display(x);\n | 1 2 3\n-----------\ ---\n a | 2 3\n b | 1\nInitial state: [ 3 ]\nAccepting states: [ 1, 2\ , 3 ]\ngap> Display(FuseSymbolsAut(x,1,2));\n | 1 2 3\n-----\ ----------------------\n a | [ 2 ] [ 1, 3 ]\nInitial state: [ 3 ]\nAccept\ ing states: [ 1, 2, 3 ]\n", count := [ 5, 1, 6, 4 ], name := "PCDATA", root := ~ ) ], count := [ 5, 1, 6, 4 ], mathmode := "Text", name := "Example", next := 50199, root := ~, start := 49846, stop := 50198 ), rec( content := "\n", count := [ 5, 1, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 6, 3 ], mathmode := "Text", name := "Description", next := 50214, root := ~, start := 49655, stop := 50213 ) ], count := [ 5, 1, 6, 1 ], mathmode := "Text", name := "ManSection", next := 50229, root := ~, start := 49595, stop := 50228 ), rec( content := " \n\n\n\n", count := [ 5, 1, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 1, 0, 1 ], mathmode := "Text", name := "Section", next := 50244, root := ~, start := 45521, stop := 50243 ), rec( content := "\n\n\n", count := [ 5, 1, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Minimalization of\ an automaton", count := [ 5, 2, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 0, 2 ], mathmode := "Text", name := "Heading", next := 50305, root := ~, start := 50256, stop := 50304 ), rec( content := "\nThe algorithm used to \ minimalize a dense deterministic automaton (i.e., to\ncompute a dense minimal \ \nautomaton recognizing the same language) is based on an algorithm due to\nHo\ pcroft (see ", count := [ 5, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Key := "AHU:74" ) , content := 0, count := [ 5, 2, 0, 3 ], mathmode := "Text", name := "Cite", next := 50513, root := ~, start := 50493, stop := 50512 ), rec( content := "). It is well known (see\ ", count := [ 5, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) , rec( attributes := rec( Key := "HU:69" ) , content := 0, count := [ 5, 2, 0, 3 ], mathmode := "Text", name := "Cite", next := 50557, root := ~, start := 50538, stop := 50556 ), rec( content := ") that it suffices\nto r\ educe the automaton given and remove the inaccessible states. Again, the\ndocu\ mentation for the computer program AMoRE ", count := [ 5, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Key := "AMORE:95" ), content := 0, count := [ 5, 2, 0, 3 ], mathmode := "Text", name := "Cite", next := 50720, root := ~, start := 50698, stop := 50719 ), rec( content := " has been very useful.\n\ \n", count := [ 5, 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "UsefulAutomaton\ " ), content := 0, count := [ 5, 2, 1, 2 ], mathmode := "Text", name := "Func", next := 50796, root := ~, start := 50758, stop := 50795 ), rec( attributes := rec( ), content := [ rec( content := "\nGiven a\ n automaton ", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "A", next := 50838, root := ~, start := 50830, stop := 50837 ), rec( content := " (determ\ inistic or not), outputs a dense DFA ", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "B\ ", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "A", next := 50891, root := ~, start := 50883, stop := 50890 ), rec( content := " whose s\ tates are all reachable and such that ", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "A", next := 50945, root := ~, start := 50937, stop := 50944 ), rec( content := " and ", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "B\ ", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "A", next := 50958, root := ~, start := 50950, stop := 50957 ), rec( content := " are equ\ ivalent.\n", count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=RandomAutomaton(\"det\",4,2);;Display(x);\n | 1 2 3 4\n--------\ ---------\n a | 3 4\n b | 1 4\nInitial state: [ 3 ]\nAccepting state\ s: [ 2, 3, 4 ]\ngap> Display(UsefulAutomaton(x));\n | 1 2 3\n------------\ --\n a | 2 3 3\n b | 3 3 3\nInitial state: [ 1 ]\nAccepting states: [\ 1, 2 ]\n", count := [ 5, 2, 1, 4 ], name := "PCDATA", root := ~ ) ], count := [ 5, 2, 1, 4 ], mathmode := "Text", name := "Example", next := 51311, root := ~, start := 50975, stop := 51310 ), rec( content := "\n", count := [ 5, 2, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 1, 3 ], mathmode := "Text", name := "Description", next := 51326, root := ~, start := 50797, stop := 51325 ) ], count := [ 5, 2, 1, 1 ], mathmode := "Text", name := "ManSection", next := 51341, root := ~, start := 50744, stop := 51340 ), rec( content := " \n\n", count := [ 5, 2, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "MinimalizedAut"\ ), content := 0, count := [ 5, 2, 2, 2 ], mathmode := "Text", name := "Func", next := 51395, root := ~, start := 51358, stop := 51394 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns\ the minimal automaton equivalent to ", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "A", next := 51462, root := ~, start := 51454, stop := 51461 ), rec( content := ".\n", count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=RandomAutomaton(\"det\",4,2);;Display(x);\n | 1 2 3 4\n--------\ ---------\n a | 3 4\n b | 1 2 3\nInitial state: [ 4 ]\nAccepting st\ ates: [ 2, 3, 4 ]\ngap> Display(MinimalizedAut(x));\n | 1 2\n-----------\n\ a | 2 2\n b | 2 2\nInitial state: [ 1 ]\nAccepting state: [ 1 ]\n", count := [ 5, 2, 2, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 5, 2, 2, 4 ], mathmode := "Text", name := "Example", next := 51785, root := ~, start := 51464, stop := 51784 ), rec( content := "\n", count := [ 5, 2, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 2, 3 ], mathmode := "Text", name := "Description", next := 51800, root := ~, start := 51396, stop := 51799 ) ], count := [ 5, 2, 2, 1 ], mathmode := "Text", name := "ManSection", next := 51815, root := ~, start := 51344, stop := 51814 ), rec( content := " \n\n", count := [ 5, 2, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := " MinimalAutomat\ on" ), content := 0, count := [ 5, 2, 3, 2 ], mathmode := "Text", name := "Attr", next := 51872, root := ~, start := 51832, stop := 51871 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns\ the minimal automaton equivalent to ", count := [ 5, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 3, 3 ], mathmode := "Text", name := "A", next := 51939, root := ~, start := 51931, stop := 51938 ), rec( content := ", but st\ ores it so that\nfuture computations of this automaton just return the stored \ automaton.\n", count := [ 5, 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=RandomAutomaton(\"det\",4,2);;Display(x);\n | 1 2 3 4\n--------\ ---------\n a | 2 4\n b | 3 4\nInitial state: [ 4 ]\nAccepting st\ ates: [ 1, 2, 3 ]\ngap> Display(MinimalAutomaton(x));\n | 1\n--------\n a |\ 1\n b | 1\nInitial state: [ 1 ]\nAccepting state:\n", count := [ 5, 2, 3, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 5, 2, 3, 4 ], mathmode := "Text", name := "Example", next := 52340, root := ~, start := 52035, stop := 52339 ), rec( content := "\n", count := [ 5, 2, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 3, 3 ], mathmode := "Text", name := "Description", next := 52355, root := ~, start := 51873, stop := 52354 ) ], count := [ 5, 2, 3, 1 ], mathmode := "Text", name := "ManSection", next := 52370, root := ~, start := 51818, stop := 52369 ), rec( content := " \n\n", count := [ 5, 2, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "aut [, p]", Name := "AccessibleState\ s" ), content := 0, count := [ 5, 2, 4, 2 ], mathmode := "Text", name := "Func", next := 52434, root := ~, start := 52387, stop := 52433 ), rec( attributes := rec( ), content := [ rec( content := "\nCompute\ s the list of states of the automaton ", count := [ 5, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ ut", count := [ 5, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 4, 3 ], mathmode := "Text", name := "A", next := 52504, root := ~, start := 52494, stop := 52503 ), rec( content := " \n whic\ h are accessible from state ", count := [ 5, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "p\ ", count := [ 5, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 4, 3 ], mathmode := "Text", name := "A", next := 52547, root := ~, start := 52539, stop := 52546 ), rec( content := ". When " , count := [ 5, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "p\ ", count := [ 5, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 4, 3 ], mathmode := "Text", name := "A", next := 52562, root := ~, start := 52554, stop := 52561 ), rec( content := " is not \ given, returns the states which are accessible from any initial state.\n", count := [ 5, 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=RandomAutomaton(\"det\",4,2);;Display(x);\n | 1 2 3 4\n--------\ ---------\n a | 1 2 4\n b | 2 4\nInitial state: [ 2 ]\nAccepting\ states: [ 1, 2, 3 ]\ngap> AccessibleStates(x,3);\n[ 1, 2, 3, 4 ]\n", count := [ 5, 2, 4, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 5, 2, 4, 4 ], mathmode := "Text", name := "Example", next := 52884, root := ~, start := 52641, stop := 52883 ), rec( content := "\n", count := [ 5, 2, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 4, 3 ], mathmode := "Text", name := "Description", next := 52899, root := ~, start := 52435, stop := 52898 ) ], count := [ 5, 2, 4, 1 ], mathmode := "Text", name := "ManSection", next := 52914, root := ~, start := 52373, stop := 52913 ), rec( content := " \n\n", count := [ 5, 2, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "AccessibleAutom\ aton" ), content := 0, count := [ 5, 2, 5, 2 ], mathmode := "Text", name := "Func", next := 52973, root := ~, start := 52931, stop := 52972 ), rec( attributes := rec( ), content := [ rec( content := "\n If ", count := [ 5, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 5, 3 ], mathmode := "Text", name := "A", next := 53001, root := ~, start := 52993, stop := 53000 ), rec( content := " is a de\ terministic automaton, not necessarily dense, an \n equivalent dense determini\ stic accessible automaton is returned. \n (The function ", count := [ 5, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "U\ sefulAutomaton", count := [ 5, 2, 5, 3 ], mathmode := "Text", name := "PCDATA" , root := ~ ) ], count := [ 5, 2, 5, 3 ], mathmode := "Text", name := "C", next := 53163, root := ~, start := 53141, stop := 53162 ), rec( content := " is call\ ed.)\n", count := [ 5, 2, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ 5, 2, 5, 4 ], mathmode := "Text", name := "P", next := 53180, root := ~, start := 53176, stop := 53179 ), rec( content := "\n If " , count := [ 5, 2, 5, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 2, 5, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 5, 4 ], mathmode := "Text", name := "A", next := 53194, root := ~, start := 53186, stop := 53193 ), rec( content := " is not \ deterministic with a single initial state, an equivalent \n accessible automat\ on is returned.\n\n", count := [ 5, 2, 5, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=RandomAutomaton(\"det\",4,2);;Display(x);\n | 1 2 3 4\n--------\ ---------\n a | 1 3\n b | 1 3 4\nInitial state: [ 2 ]\nAccepting state\ s: [ 3, 4 ]\ngap> Display(AccessibleAutomaton(x));\n | 1 2 3 4\n--------\ ---------\n a | 2 4 4 4\n b | 2 3 4 4\nInitial state: [ 1 ]\nAccept\ ing states: [ 2, 3 ]\n", count := [ 5, 2, 5, 5 ], name := "PCDATA", root := ~ ) ], count := [ 5, 2, 5, 5 ], mathmode := "Text", name := "Example", next := 53645, root := ~, start := 53296, stop := 53644 ), rec( content := "\n", count := [ 5, 2, 5, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 5, 3 ], mathmode := "Text", name := "Description", next := 53660, root := ~, start := 52974, stop := 53659 ) ], count := [ 5, 2, 5, 1 ], mathmode := "Text", name := "ManSection", next := 53675, root := ~, start := 52917, stop := 53674 ), rec( content := " \n\n", count := [ 5, 2, 5, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A1,A2", Name := "IntersectionLan\ guage" ), content := 0, count := [ 5, 2, 6, 2 ], mathmode := "Text", name := "Func", next := 53739, root := ~, start := 53692, stop := 53738 ), rec( attributes := rec( Arg := "A1,A2", Name := "IntersectionAut\ omaton" ), content := 0, count := [ 5, 2, 6, 4 ], mathmode := "Text", name := "Func", next := 53788, root := ~, start := 53740, stop := 53787 ), rec( attributes := rec( ), content := [ rec( content := "\nCompute\ s an automaton that recognizes the intersection of the languages given (throug\ h automata or rational expressions by) ", count := [ 5, 2, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ 1", count := [ 5, 2, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 6, 5 ], mathmode := "Text", name := "A", next := 53936, root := ~, start := 53927, stop := 53935 ), rec( content := " and ", count := [ 5, 2, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ 2", count := [ 5, 2, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 6, 5 ], mathmode := "Text", name := "A", next := 53950, root := ~, start := 53941, stop := 53949 ), rec( content := ".\nWhen \ the arguments are deterministic automata, is the same as ProductAutomaton, but\ works for all kinds of automata. Note that the language of the product of two\ automata is precisely the intersection of the languages of the automata.\n", count := [ 5, 2, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> x:=RandomAutomaton(\"det\",3,2);;Display(x);\n | 1 2 3\n-----------\ ---\n a | 2 3\n b | 1\nInitial state: [ 3 ]\nAccepting states: [ 1, 2\ , 3 ]\ngap> y:=RandomAutomaton(\"det\",3,2);;Display(y);\n | 1 2 3\n-----\ ---------\n a | 1\n b | 1 3\nInitial state: [ 3 ]\nAccepting states: \ [ 1, 3 ]\ngap> Display(IntersectionLanguage(x,y));\n | 1 2\n-----------\n \ a | 2 2\n b | 2 2\nInitial state: [ 1 ]\nAccepting state: [ 1 ]\n", count := [ 5, 2, 6, 6 ], name := "PCD\ ATA", root := ~ ) ], count := [ 5, 2, 6, 6 ], mathmode := "Text", name := "Example", next := 54654, root := ~, start := 54187, stop := 54653 ), rec( content := "\n", count := [ 5, 2, 6, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 6, 5 ], mathmode := "Text", name := "Description", next := 54669, root := ~, start := 53789, stop := 54668 ) ], count := [ 5, 2, 6, 1 ], mathmode := "Text", name := "ManSection", next := 54684, root := ~, start := 53678, stop := 54683 ), rec( content := " \n\n\n", count := [ 5, 2, 6, 7 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "AutomatonAllPai\ rsPaths" ), content := 0, count := [ 5, 2, 7, 2 ], mathmode := "Text", name := "Func", next := 54747, root := ~, start := 54702, stop := 54746 ), rec( attributes := rec( ), content := [ rec( content := "\nGiven a\ n automaton ", count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "A", next := 54789, root := ~, start := 54781, stop := 54788 ), rec( content := ", with " , count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "n\ ", count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "C", next := 54804, root := ~, start := 54796, stop := 54803 ), rec( content := " states,\ outputs a ", count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "n\ ", count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "C", next := 54831, root := ~, start := 54823, stop := 54830 ), rec( content := " x ", count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "n\ ", count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "C", next := 54842, root := ~, start := 54834, stop := 54841 ), rec( content := " matrix \ P,\nsuch that P[i][j] is the list of simple paths from state i to\nstate j in \ ", count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A\ ", count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "A", next := 54934, root := ~, start := 54926, stop := 54933 ), rec( content := ".\n", count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> a:=RandomAutomaton(\"det\",3,2);\n< deterministic automaton on 2 letters\ with 3 states >\ngap> AutomatonAllPairsPaths(a);\n[ [ [ [ 1, 1 ] ], [ ], [ \ ] ], [ [ [ 2, 1 ] ], [ [ 2, 2 ] ], [ ] ],\n [ [ [ 3, 2, 1 ] ], [ [ 3, 2 ] ],\ [ [ 3, 3 ] ] ] ]\ngap> Display(a);\n | 1 2 3\n--------------\n a | 1\ 2\n b | 1 2 3\nInitial state: [ 3 ]\nAccepting states: [ 1, 2 ]\n", count := [ 5, 2, 7, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 5, 2, 7, 4 ], mathmode := "Text", name := "Example", next := 55338, root := ~, start := 54936, stop := 55337 ), rec( content := "\n", count := [ 5, 2, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 7, 3 ], mathmode := "Text", name := "Description", next := 55353, root := ~, start := 54748, stop := 55352 ) ], count := [ 5, 2, 7, 1 ], mathmode := "Text", name := "ManSection", next := 55368, root := ~, start := 54688, stop := 55367 ), rec( content := " \n\n\n ", count := [ 5, 2, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 2, 0, 1 ], mathmode := "Text", name := "Section", next := 55386, root := ~, start := 50247, stop := 55385 ), rec( content := "\n", count := [ 5, 2, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 5, 0, 0, 1 ], mathmode := "Text", name := "Chapter", next := 55397, root := ~, start := 45291, stop := 55396 ), rec( content := "\n\n\n\n\n\n", count := [ 5, 2, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := "xml version=\"1.0\" encoding=\"UTF-8\"" , count := [ 5, 2, 7, 5 ], mathmode := "Text", name := "XMLPI", root := ~ ), rec( content := "\n", count := [ 5, 2, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( content := " $Id: finitelang.xml,v 1.13 Exp $ ", count := [ 5, 2, 7, 5 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( content := "\n\n", count := [ 5, 2, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Finite regular languages" , count := [ 6, 0, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 6, 0, 0, 2 ], mathmode := "Text", name := "Heading", next := 55538, root := ~, start := 55495, stop := 55537 ), rec( content := "\nThis chapter describes some fu\ nctions to deal with finite regular languages.\n\n", count := [ 6, 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Dealing with fini\ te regular languages", count := [ 6, 1, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 6, 1, 0, 2 ], mathmode := "Text", name := "Heading", next := 55682, root := ~, start := 55626, stop := 55681 ), rec( content := "\n\n", count := [ 6, 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "L", Name := "IsFiniteRegular\ Language" ), content := 0, count := [ 6, 1, 1, 2 ], mathmode := "Text", name := "Func", next := 55744, root := ~, start := 55698, stop := 55743 ), rec( attributes := rec( ), content := [ rec( content := "\n", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "L\ ", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "A", next := 55767, root := ~, start := 55759, stop := 55766 ), rec( content := " is an a\ utomaton or a rational expression. This function tests\nwhether its argument r\ epresents a finite language or not.\n", count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> RandomRatExp(2);\nb*(aU@)\ngap> IsFiniteRegularLanguage(last);\nfalse\ng\ ap> RandomRatExp(2);\naUbU@\ngap> IsFiniteRegularLanguage(last);\ntrue\n", count := [ 6, 1, 1, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 6, 1, 1, 4 ], mathmode := "Text", name := "Example", next := 56061, root := ~, start := 55888, stop := 56060 ), rec( content := "\n", count := [ 6, 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 6, 1, 1, 3 ], mathmode := "Text", name := "Description", next := 56076, root := ~, start := 55745, stop := 56075 ) ], count := [ 6, 1, 1, 1 ], mathmode := "Text", name := "ManSection", next := 56091, root := ~, start := 55684, stop := 56090 ), rec( content := " \n\n\n", count := [ 6, 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "L", Name := "FiniteRegularLa\ nguageToListOfWords" ), content := 0, count := [ 6, 1, 2, 2 ], mathmode := "Text", name := "Func", next := 56166, root := ~, start := 56109, stop := 56165 ), rec( attributes := rec( ), content := [ rec( content := "\n", count := [ 6, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "L\ ", count := [ 6, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 6, 1, 2, 3 ], mathmode := "Text", name := "A", next := 56189, root := ~, start := 56181, stop := 56188 ), rec( content := " is an a\ utomaton or a rational expression. \nThis function outputs the recognized lang\ uage as a list of words.\n", count := [ 6, 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> r:=RationalExpression(\"aaUx(aUb)\"); \naaUx(aUb)\ngap> FiniteRegular\ LanguageToListOfWords(r);\n[ \"aa\", \"xa\", \"xb\" ]\n", count := [ 6, 1, 2, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 6, 1, 2, 4 ], mathmode := "Text", name := "Example", next := 56451, root := ~, start := 56299, stop := 56450 ), rec( content := "\n", count := [ 6, 1, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 6, 1, 2, 3 ], mathmode := "Text", name := "Description", next := 56466, root := ~, start := 56167, stop := 56465 ) ], count := [ 6, 1, 2, 1 ], mathmode := "Text", name := "ManSection", next := 56481, root := ~, start := 56095, stop := 56480 ), rec( content := " \n\n\n", count := [ 6, 1, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "alph, L", Name := "ListOfWordsToAu\ tomaton" ), content := 0, count := [ 6, 1, 3, 2 ], mathmode := "Text", name := "Func", next := 56550, root := ~, start := 56499, stop := 56549 ), rec( attributes := rec( ), content := [ rec( content := "\nGiven a\ n alphabet ", count := [ 6, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "a\ lph", count := [ 6, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 6, 1, 3, 3 ], mathmode := "Text", name := "A", next := 56594, root := ~, start := 56583, stop := 56593 ), rec( content := " (a list\ ) and a list of\nwords ", count := [ 6, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "L\ ", count := [ 6, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 6, 1, 3, 3 ], mathmode := "Text", name := "A", next := 56632, root := ~, start := 56624, stop := 56631 ), rec( content := " (a list\ of lists), outputs an automaton\nthat recognizes the given list of words.\n", count := [ 6, 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\ ngap> ListOfWordsToAutomaton(\"ab\",[\"aaa\",\"bba\",\"\"]);\n< deterministic \ automaton on 2 letters with 6 states >\ngap> FAtoRatExp(last);\n(bbUaa)aU@\n", count := [ 6, 1, 3, 4 ], name := "PCD\ ATA", root := ~ ) ], count := [ 6, 1, 3, 4 ], mathmode := "Text", name := "Example", next := 56887, root := ~, start := 56714, stop := 56886 ), rec( content := "\n", count := [ 6, 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 6, 1, 3, 3 ], mathmode := "Text", name := "Description", next := 56902, root := ~, start := 56551, stop := 56901 ) ], count := [ 6, 1, 3, 1 ], mathmode := "Text", name := "ManSection", next := 56917, root := ~, start := 56485, stop := 56916 ), rec( content := " \n\n\n\n\n\n ", count := [ 6, 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 6, 1, 0, 1 ], mathmode := "Text", name := "Section", next := 56938, root := ~, start := 55617, stop := 56937 ), rec( content := "\n", count := [ 6, 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 6, 0, 0, 1 ], mathmode := "Text", name := "Chapter", next := 56949, root := ~, start := 55486, stop := 56948 ), rec( content := "\n\n\n\n\n\n\n", count := [ 6, 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ 0, 0, 4, 1 ], mathmode := "Text", name := "Body", next := 56963, root := ~, start := 3125, stop := 56962 ), rec( content := "xml version=\"1.0\" encoding=\"UTF-8\"", count := [ 6, 1, 3, 5 ], mathmode := "Text", name := "XMLPI", root := ~ ), rec( content := " $Id: graphs.xml,v 1.13 Exp $ ", count := [ 6, 1, 3, 5 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Directed graphs", count := [ "A", 0, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 0, 0, 2 ], mathmode := "Text", name := "Heading", next := 57087, root := ~, start := 57053, stop := 57086 ), rec( content := "\nAutomata are frequently described thro\ ugh directed labeled graphs. This appendix on directed graphs (digraphs) is de\ voted to some functions designed with the purpose of being used as auxiliary f\ unctions to deal with automata, but may have independent interest.\n\n\n", count := [ "A", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Directed graphs", count := [ "A", 1, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 0, 2 ], mathmode := "Text", name := "Heading", next := 57394, root := ~, start := 57360, stop := 57393 ), rec( content := "\nA directed graph with ", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "n", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "M", next := 57425, root := ~, start := 57417, stop := 57424 ), rec( content := " vertices is represented by an a\ djacency list.\n\nFor example, the list ", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "G = [[2,4],[3],[1,4],[]]" , count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "C", next := 57526, root := ~, start := 57495, stop := 57525 ), rec( content := " represents a directed graph wit\ h ", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "4 (= Length(G))", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "C", next := 57582, root := ~, start := 57560, stop := 57581 ), rec( content := " vertices; the sublist in positi\ on ", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "i", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "C", next := 57625, root := ~, start := 57617, stop := 57624 ), rec( content := " is the list of endpoints of the\ edges beginning in vertex ", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "i", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "M", next := 57692, root := ~, start := 57684, stop := 57691 ), rec( content := ".\n ", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "LaTeX" ), content := [ rec( content := "\n \\begin{figure}[h\ tbp] \\begin{center} \\leavevmode \\includegraphics[bb=0 0 132 299]{graph} \\e\ nd{center} \\label{fig:graph} \\end{figure}\n ", count := [ "A", 1, 0, 3 ], name := "PCDATA", root := ~ ) ], count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "Alt", next := 57865, root := ~, start := 57698, stop := 57864 ), rec( content := "\n ", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "HTML" ), content := [ rec( HTML := true, content := "\n

\n ", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 0, 3 ], name := "Alt", next := 57999, root := ~, start := 57870, stop := 57998 ), rec( content := "\n ", count := [ "A", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "A", 1, 0, 4 ], mathmode := "Text", name := "P", next := 58009, root := ~, start := 58004, stop := 58008 ), rec( content := "\n\n", count := [ "A", 1, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "n", Name := "RandomDiGraph" ), content := 0, count := [ "A", 1, 1, 2 ], mathmode := "Text", name := "Func", next := 58061, root := ~, start := 58025, stop := 58060 ), rec( attributes := rec( ), content := [ rec( content := "\nProduces a pseu\ do random digraph with ", count := [ "A", 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "n", count := [ "A", 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 1, 3 ], mathmode := "Text", name := "M", next := 58122, root := ~, start := 58114, stop := 58121 ), rec( content := " vertices\n", count := [ "A", 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> Ra\ ndomDiGraph(4);\n[ [ ], [ 1, 2, 4 ], [ ], [ ] ]\n", count := [ "A", 1, 1, 4 ], name := "PCDATA", root := ~ ) ], count := [ "A", 1, 1, 4 ], mathmode := "Text", name := "Example", next := 58221, root := ~, start := 58132, stop := 58220 ), rec( content := "\n", count := [ "A", 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 1, 3 ], mathmode := "Text", name := "Description", next := 58236, root := ~, start := 58062, stop := 58235 ) ], count := [ "A", 1, 1, 1 ], mathmode := "Text", name := "ManSection", next := 58251, root := ~, start := 58011, stop := 58250 ), rec( content := " \n\n\n", count := [ "A", 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "DG,v", Name := "VertexInDegree" ), content := 0, count := [ "A", 1, 2, 2 ], mathmode := "Text", name := "Func", next := 58309, root := ~, start := 58269, stop := 58308 ), rec( attributes := rec( ), content := [ rec( content := "\nComputes the in\ degree of the vertex ", count := [ "A", 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "v", count := [ "A", 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 2, 3 ], mathmode := "Text", name := "A", next := 58369, root := ~, start := 58361, stop := 58368 ), rec( content := " of the directed\ graph ", count := [ "A", 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "DG", count := [ "A", 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 2, 3 ], mathmode := "Text", name := "A", next := 58401, root := ~, start := 58392, stop := 58400 ), rec( content := "\n", count := [ "A", 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> G:\ =RandomDiGraph(4);\n[ [ 1 ], [ 1, 2, 4 ], [ ], [ 1, 2, 3 ] ]\ngap> VertexInDe\ gree(G,2);\n2\n", count := [ "A", 1, 2, 4 ], name := "PCDATA", root := ~ ) ], count := [ "A", 1, 2, 4 ], mathmode := "Text", name := "Example", next := 58530, root := ~, start := 58402, stop := 58529 ), rec( content := "\n", count := [ "A", 1, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 2, 3 ], mathmode := "Text", name := "Description", next := 58545, root := ~, start := 58310, stop := 58544 ) ], count := [ "A", 1, 2, 1 ], mathmode := "Text", name := "ManSection", next := 58560, root := ~, start := 58255, stop := 58559 ), rec( content := " \n\n\n", count := [ "A", 1, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "DG,v", Name := "VertexOutDegree" ), content := 0, count := [ "A", 1, 3, 2 ], mathmode := "Text", name := "Func", next := 58619, root := ~, start := 58578, stop := 58618 ), rec( attributes := rec( ), content := [ rec( content := "\nComputes the ou\ t degree of the vertex ", count := [ "A", 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "v", count := [ "A", 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 3, 3 ], mathmode := "Text", name := "A", next := 58680, root := ~, start := 58672, stop := 58679 ), rec( content := " of the directed\ graph ", count := [ "A", 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "DG", count := [ "A", 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 3, 3 ], mathmode := "Text", name := "A", next := 58712, root := ~, start := 58703, stop := 58711 ), rec( content := "\n", count := [ "A", 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> G:\ =RandomDiGraph(4);\n[ [ 1 ], [ 1, 2, 4 ], [ ], [ 1, 2, 3 ] ]\ngap> VertexOutD\ egree(G,2);\n3\n", count := [ "A", 1, 3, 4 ], name := "PCDATA", root := ~ ) ], count := [ "A", 1, 3, 4 ], mathmode := "Text", name := "Example", next := 58842, root := ~, start := 58713, stop := 58841 ), rec( content := "\n", count := [ "A", 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 3, 3 ], mathmode := "Text", name := "Description", next := 58857, root := ~, start := 58620, stop := 58856 ) ], count := [ "A", 1, 3, 1 ], mathmode := "Text", name := "ManSection", next := 58872, root := ~, start := 58564, stop := 58871 ), rec( content := " \n\n\n", count := [ "A", 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "DG,v", Name := "AutoVertexDegree" ), content := 0, count := [ "A", 1, 4, 2 ], mathmode := "Text", name := "Func", next := 58932, root := ~, start := 58890, stop := 58931 ), rec( attributes := rec( ), content := [ rec( content := "\nComputes the de\ gree of the vertex ", count := [ "A", 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "v", count := [ "A", 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 4, 3 ], mathmode := "Text", name := "A", next := 58989, root := ~, start := 58981, stop := 58988 ), rec( content := " of the directed\ graph ", count := [ "A", 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "DG", count := [ "A", 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 4, 3 ], mathmode := "Text", name := "A", next := 59021, root := ~, start := 59012, stop := 59020 ), rec( content := "\n", count := [ "A", 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> G:\ =RandomDiGraph(4);\n[ [ 1 ], [ 1, 2, 4 ], [ ], [ 1, 2, 3 ] ]\ngap> AutoVertex\ Degree(G,2);\n5\n", count := [ "A", 1, 4, 4 ], name := "PCDATA", root := ~ ) ] , count := [ "A", 1, 4, 4 ], mathmode := "Text", name := "Example", next := 59152, root := ~, start := 59022, stop := 59151 ), rec( content := "\n", count := [ "A", 1, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 4, 3 ], mathmode := "Text", name := "Description", next := 59167, root := ~, start := 58933, stop := 59166 ) ], count := [ "A", 1, 4, 1 ], mathmode := "Text", name := "ManSection", next := 59182, root := ~, start := 58876, stop := 59181 ), rec( content := " \n\n\n\n\n", count := [ "A", 1, 4, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "G", Name := "ReversedGraph" ), content := 0, count := [ "A", 1, 5, 2 ], mathmode := "Text", name := "Func", next := 59238, root := ~, start := 59202, stop := 59237 ), rec( attributes := rec( ), content := [ rec( content := "\nComputes the re\ versed graph of the directed graph G. It is the graph \nobtained from G by rev\ ersing the edges.\n", count := [ "A", 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> G:\ =RandomDiGraph(4);\n[ [ ], [ 4 ], [ 2 ], [ 1, 4 ] ]\ngap> ReversedGraph(G);\n\ [ [ 4 ], [ 3 ], [ ], [ 2, 4 ] ]\n", count := [ "A", 1, 5, 4 ], name := "PCDATA", root := ~ ) ], count := [ "A", 1, 5, 4 ], mathmode := "Text", name := "Example", next := 59510, root := ~, start := 59363, stop := 59509 ), rec( content := "\n", count := [ "A", 1, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 5, 3 ], mathmode := "Text", name := "Description", next := 59525, root := ~, start := 59239, stop := 59524 ) ], count := [ "A", 1, 5, 1 ], mathmode := "Text", name := "ManSection", next := 59540, root := ~, start := 59188, stop := 59539 ), rec( content := " \n\nWe say that a digraph is co\ nnected when for every pair of vertices there \nis a path consisting of direct\ ed or reversed edges from one vertex to \nthe other.\n\n", count := [ "A", 1, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "G", Name := "AutoConnectedComponents\ " ), content := 0, count := [ "A", 1, 6, 2 ], mathmode := "Text", name := "Func", next := 59760, root := ~, start := 59714, stop := 59759 ), rec( attributes := rec( ), content := [ rec( content := "\nComputes a list\ of the connected components of the digraph\n\n", count := [ "A", 1, 6, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> G:\ =RandomDiGraph(6);\n[ [ ], [ 1, 4, 5, 6 ], [ ], [ 1, 3, 5, 6 ], [ 2, 3 ], [ \ 2, 4, 6 ] ]\ngap> AutoConnectedComponents(G);\n[ [ 1, 2, 3, 4, 5, 6 ] ]\n", count := [ "A", 1, 6, 4 ], name := "PCDATA", root := ~ ) ], count := [ "A", 1, 6, 4 ], mathmode := "Text", name := "Example", next := 60021, root := ~, start := 59835, stop := 60020 ), rec( content := "\n", count := [ "A", 1, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 6, 3 ], mathmode := "Text", name := "Description", next := 60036, root := ~, start := 59761, stop := 60035 ) ], count := [ "A", 1, 6, 1 ], mathmode := "Text", name := "ManSection", next := 60052, root := ~, start := 59700, stop := 60051 ), rec( content := " \n\nTwo vertices of a digraph b\ elong to a strongly connected component if there is a directed path from each \ one to the other.", count := [ "A", 1, 6, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "A", 1, 6, 6 ], mathmode := "Text", name := "P", next := 60181, root := ~, start := 60177, stop := 60180 ), rec( content := "\n\n", count := [ "A", 1, 6, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "G", Name := "GraphStronglyConnectedC\ omponents" ), content := 0, count := [ "A", 1, 7, 2 ], mathmode := "Text", name := "Func", next := 60252, root := ~, start := 60197, stop := 60251 ), rec( attributes := rec( ), content := [ rec( content := "\nProduces the st\ rongly connected components of the digraph ", count := [ "A", 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "G", count := [ "A", 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 7, 3 ], mathmode := "Text", name := "A", next := 60333, root := ~, start := 60325, stop := 60332 ), rec( content := ". \n", count := [ "A", 1, 7, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> G:\ =RandomDiGraph(6);\n[ [ ], [ 4 ], [ ], [ 4, 6 ], [ ], [ 1, 4, 5, 6 ] ]\ngap\ > GraphStronglyConnectedComponents(G);\n[ [ 1 ], [ 2 ], [ 3 ], [ 4, 6 ], [ 5 ]\ ]\n", count := [ "A", 1, 7, 4 ], name := "PCDATA", root := ~ ) ], count := [ "A", 1, 7, 4 ], mathmode := "Text", name := "Example", next := 60531, root := ~, start := 60336, stop := 60530 ), rec( content := "\n", count := [ "A", 1, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 7, 3 ], mathmode := "Text", name := "Description", next := 60546, root := ~, start := 60253, stop := 60545 ) ], count := [ "A", 1, 7, 1 ], mathmode := "Text", name := "ManSection", next := 60561, root := ~, start := 60183, stop := 60560 ), rec( content := " \n\n", count := [ "A", 1, 7, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A ", Name := "UnderlyingMultiGraphOfA\ utomaton" ), content := 0, count := [ "A", 1, 8, 2 ], mathmode := "Text", name := "Func", next := 60633, root := ~, start := 60578, stop := 60632 ), rec( attributes := rec( ), content := [ rec( content := "\n", count := [ "A", 1, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A", count := [ "A", 1, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 8, 3 ], mathmode := "Text", name := "A", next := 60656, root := ~, start := 60648, stop := 60655 ), rec( content := " is an automaton\ . The output is the underlying directed multi-graph.\n", count := [ "A", 1, 8, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> a:\ =RandomAutomaton(\"det\",3,2);;Display(a);\n | 1 2 3\n--------------\n a \ | 1 3\n b | 2 3\nInitial state: [ 1 ]\nAccepting states: [ 1, 2 ]\ng\ ap> UnderlyingMultiGraphOfAutomaton(a);\n[ [ 1 ], [ 3, 2 ], [ 3 ] ]\n", count := [ "A", 1, 8, 4 ], name := "PCDATA", root := ~ ) ], count := [ "A", 1, 8, 4 ], mathmode := "Text", name := "Example", next := 60978, root := ~, start := 60725, stop := 60977 ), rec( content := "\n", count := [ "A", 1, 8, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 8, 3 ], mathmode := "Text", name := "Description", next := 60993, root := ~, start := 60634, stop := 60992 ) ], count := [ "A", 1, 8, 1 ], mathmode := "Text", name := "ManSection", next := 61008, root := ~, start := 60564, stop := 61007 ), rec( content := " \n\n", count := [ "A", 1, 8, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "UnderlyingGraphOfAutoma\ ton" ), content := 0, count := [ "A", 1, 9, 2 ], mathmode := "Text", name := "Func", next := 61074, root := ~, start := 61025, stop := 61073 ), rec( attributes := rec( ), content := [ rec( content := "\n", count := [ "A", 1, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A", count := [ "A", 1, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 9, 3 ], mathmode := "Text", name := "A", next := 61097, root := ~, start := 61089, stop := 61096 ), rec( content := " is an automaton\ . The output is the underlying directed graph.\n", count := [ "A", 1, 9, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> a:\ =RandomAutomaton(\"det\",3,2);;Display(a);\n | 1 2 3\n--------------\n a \ | 1 2\n b | 1 2\nInitial state: [ 2 ]\nAccepting state: [ 2 ]\ngap> U\ nderlyingGraphOfAutomaton(a);\n[ [ 1 ], [ 1, 2 ], [ 2 ] ]\n", count := [ "A", 1, 9, 4 ], name := "PCDATA", root := ~ ) ], count := [ "A", 1, 9, 4 ], mathmode := "Text", name := "Example", next := 61403, root := ~, start := 61160, stop := 61402 ), rec( content := "\n", count := [ "A", 1, 9, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 9, 3 ], mathmode := "Text", name := "Description", next := 61418, root := ~, start := 61075, stop := 61417 ) ], count := [ "A", 1, 9, 1 ], mathmode := "Text", name := "ManSection", next := 61433, root := ~, start := 61011, stop := 61432 ), rec( content := " \n\n", count := [ "A", 1, 9, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "D", Name := "DiGraphToRelation" ), content := 0, count := [ "A", 1, 10, 2 ], mathmode := "Text", name := "Func", next := 61490, root := ~, start := 61450, stop := 61489 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns the rel\ ation corresponding to the digraph. Note that a directed graph may be seen in \ a natural way as a binary relation on the set of vertices.\n", count := [ "A", 1, 10, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> G:\ =RandomDiGraph(4);\n[ [ ], [ ], [ 4 ], [ 4 ] ]\ngap> DiGraphToRelation(G);\n\ [ [ 3, 4 ], [ 4, 4 ] ]\n", count := [ "A", 1, 10, 4 ], name := "PCDATA", root := ~ ) ], count := [ "A", 1, 10, 4 ], mathmode := "Text", name := "Example", next := 61794, root := ~, start := 61657, stop := 61793 ), rec( content := "\n", count := [ "A", 1, 10, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 10, 3 ], mathmode := "Text", name := "Description", next := 61809, root := ~, start := 61491, stop := 61808 ) ], count := [ "A", 1, 10, 1 ], mathmode := "Text", name := "ManSection", next := 61824, root := ~, start := 61436, stop := 61823 ), rec( content := " \n\n", count := [ "A", 1, 10, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "MSccAutomaton" ), content := 0, count := [ "A", 1, 11, 2 ], mathmode := "Text", name := "Func", next := 61877, root := ~, start := 61841, stop := 61876 ), rec( attributes := rec( ), content := [ rec( content := "\nProduces an aut\ omaton where, in each strongly connected component,\nedges labeled by inverses\ are added. (M stands for modified.)\n", count := [ "A", 1, 11, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "A", 1, 11, 4 ], mathmode := "Text", name := "P", next := 62025, root := ~, start := 62021, stop := 62024 ), rec( content := "\nThis construct\ ion is useful in Finite Semigroup Theory.\n", count := [ "A", 1, 11, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> a:\ =RandomAutomaton(\"det\",3,2);;Display(a);\n | 1 2 3\n--------------\n a \ | 1 3\n b | 2 3\nInitial state: [ 1 ]\nAccepting states: [ 1, 2, 3 ]\ng\ ap> MSccAutomaton(a);\n< deterministic automaton on 4 letters with 3 states >\ \ngap> Display(last);\n | 1 2 3\n--------------\n a | 1 3\n b | 2 3\n\ A | 1\n B |\nInitial state: [ 1 ]\nAccepting states: [ 1, 2, 3 ]\n", count := [ "A", 1, 11, 5 ], name := "PCDATA", root := ~ ) ], count := [ "A", 1, 11, 5 ], mathmode := "Text", name := "Example", next := 62483, root := ~, start := 62082, stop := 62482 ), rec( content := "\n", count := [ "A", 1, 11, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 11, 3 ], mathmode := "Text", name := "Description", next := 62498, root := ~, start := 61878, stop := 62497 ) ], count := [ "A", 1, 11, 1 ], mathmode := "Text", name := "ManSection", next := 62513, root := ~, start := 61827, stop := 62512 ), rec( content := " \n\n\n", count := [ "A", 1, 11, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "G", Name := "AutoIsAcyclicGraph" ), content := 0, count := [ "A", 1, 12, 2 ], mathmode := "Text", name := "Func", next := 62572, root := ~, start := 62531, stop := 62571 ), rec( attributes := rec( ), content := [ rec( content := "\nThe argument is\ a graph's list of adjacencies\nand this function returns true if the argument\ \nis an acyclic graph and false otherwise.\n", count := [ "A", 1, 12, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> Ra\ ndomDiGraph(3);\n[ [ ], [ 3 ], [ 2 ] ]\ngap> AutoIsAcyclicGraph(last);\nfalse\ \n", count := [ "A", 1, 12, 4 ], name := "PCDATA", root := ~ ) ], count := [ "A", 1, 12, 4 ], mathmode := "Text", name := "Example", next := 62836, root := ~, start := 62721, stop := 62835 ), rec( content := "\n", count := [ "A", 1, 12, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 12, 3 ], mathmode := "Text", name := "Description", next := 62851, root := ~, start := 62573, stop := 62850 ) ], count := [ "A", 1, 12, 1 ], mathmode := "Text", name := "ManSection", next := 62866, root := ~, start := 62517, stop := 62865 ), rec( content := " \n\n\n", count := [ "A", 1, 12, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 1, 0, 1 ], mathmode := "Text", name := "Section", next := 62880, root := ~, start := 57351, stop := 62879 ), rec( content := "\n", count := [ "A", 1, 12, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "A", 0, 0, 1 ], mathmode := "Text", name := "Appendix", next := 62892, root := ~, start := 57043, stop := 62891 ), rec( content := "xml version=\"1.0\" encoding=\"UTF-8\"", count := [ "A", 1, 12, 5 ], mathmode := "Text", name := "XMLPI", root := ~ ), rec( content := " $Id: drawing.xml,v 1.13 Exp $ ", count := [ "A", 1, 12, 5 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n ", count := [ "B", 0, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n Drawing automata\n ", count := [ "B", 0, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 0, 0, 2 ], mathmode := "Text", name := "Heading", next := 63040, root := ~, start := 62993, stop := 63039 ), rec( content := "\n The drawing of graphs described he\ re uses\n ", count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "graphviz", count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "C", next := 63106, root := ~, start := 63091, stop := 63105 ), rec( content := " ", count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Key := "KoutsofiosNorth:2002" ), content := 0, count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "Cite", next := 63141, root := ~, start := 63107, stop := 63140 ), rec( content := ", a software for drawing graphs develope\ d at AT\n ", count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "LaTeX" ), content := [ rec( content := "\n \\&\n ", count := [ "B", 0, 0, 3 ], name := "PCDATA", root := ~ ) ], count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "Alt", next := 63235, root := ~, start := 63193, stop := 63234 ), rec( content := "\n ", count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Not := "LaTeX" ), content := [ rec( content := "\n ", count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "HTML" ), content := [ rec( HTML := true, content := "\n &\n " , count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 0, 0, 3 ], name := "Alt", next := 63312, root := ~, start := 63264, stop := 63311 ), rec( content := "\n ", count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Not := "HTML" ), content := [ rec( content := "\n &\n ", count := [ "B", 0, 0, 3 ], name := "PCDATA", root := ~ ) ], count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "Alt", next := 63362, root := ~, start := 63319, stop := 63361 ), rec( content := "\n ", count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 0, 0, 3 ], name := "Alt", next := 63373, root := ~, start := 63240, stop := 63372 ), rec( content := "\n T Labs, that can be obtained at\n \ ", count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "http://www.graphviz.org/", count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "URL", next := 63449, root := ~, start := 63414, stop := 63448 ), rec( content := ".\n ", count := [ "B", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n ", count := [ "B", 1, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n Installing some\ external programs\n ", count := [ "B", 1, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 1, 0, 2 ], mathmode := "Text", name := "Heading", next := 63539, root := ~, start := 63471, stop := 63538 ), rec( content := "\n In order to create the d\ rawings you should install ", count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Text := "graphviz" ), content := [ rec( content := "http://www.graphviz.org/" , count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "URL", next := 63648, root := ~, start := 63597, stop := 63647 ), rec( content := "\n and to view them you sho\ uld install one of ", count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Text := "evince" ), content := [ rec( content := "http://www.gnome.org/proj\ ects/evince/", count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "URL", next := 63760, root := ~, start := 63698, stop := 63759 ), rec( content := ",\n ", count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Text := "ggv" ), content := [ rec( content := "http://directory.fsf.org/\ GNU/ggv.html", count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "URL", next := 63827, root := ~, start := 63768, stop := 63826 ), rec( content := ",\n ", count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Text := "gsview" ), content := [ rec( content := "http://pages.cs.wisc.edu/\ ~ghost/gsview/", count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "URL", next := 63899, root := ~, start := 63835, stop := 63898 ), rec( content := " or\n ", count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Text := "gv" ), content := [ rec( content := "http://www.gnu.org/softwa\ re/gv/", count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "URL", next := 63961, root := ~, start := 63909, stop := 63960 ), rec( content := ".\n ", count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 1, 0, 1 ], mathmode := "Text", name := "Section", next := 63977, root := ~, start := 63455, stop := 63976 ), rec( content := "\n ", count := [ "B", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n ", count := [ "B", 2, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n Functions to dr\ aw automata\n ", count := [ "B", 2, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 0, 2 ], mathmode := "Text", name := "Heading", next := 64059, root := ~, start := 63998, stop := 64058 ), rec( content := "\n ", count := [ "B", 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A [,state_names, L, file\ ]", Name := "DrawAutomaton" ), content := 0, count := [ "B", 2, 1, 2 ], mathmode := "Text", name := "Func", next := 64148, root := ~, start := 64087, stop := 64147 ), rec( attributes := rec( ), content := [ rec( content := "\n This \ function draws automaton\n ", count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A", count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "A", next := 64229, root := ~, start := 64221, stop := 64228 ), rec( content := ".\n\t The argum\ ents ", count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "state_nam\ es", count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "A", next := 64266, root := ~, start := 64248, stop := 64265 ), rec( content := ", ", count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "L", count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "A", next := 64276, root := ~, start := 64268, stop := 64275 ), rec( content := " and ", count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "file", count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "A", next := 64292, root := ~, start := 64281, stop := 64291 ), rec( content := " are optional.\n\ \n\t ", count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "P", next := 64316, root := ~, start := 64311, stop := 64315 ), rec( content := "\n\t An automat\ on with ", count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "n", count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "C", next := 64346, root := ~, start := 64338, stop := 64345 ), rec( content := " states will be \ drawn with numbers ", count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "1", count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "C", next := 64389, root := ~, start := 64381, stop := 64388 ), rec( content := " to ", count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "n", count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "C", next := 64401, root := ~, start := 64393, stop := 64400 ), rec( content := "\n\t written in\ side the corresponding graph node.\n\t The argument ", count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "state_nam\ es", count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "A", next := 64484, root := ~, start := 64466, stop := 64483 ), rec( content := " is a list of ", count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "n", count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "C", next := 64506, root := ~, start := 64498, stop := 64505 ), rec( content := " strings which w\ ill be the new text\n\t written inside the corresponding graph node.\n\n\t " , count := [ "B", 2, 1, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "B", 2, 1, 5 ], mathmode := "Text", name := "P", next := 64599, root := ~, start := 64594, stop := 64598 ), rec( content := "\n\t The argume\ nt ", count := [ "B", 2, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "L", count := [ "B", 2, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 5 ], mathmode := "Text", name := "A", next := 64624, root := ~, start := 64616, stop := 64623 ), rec( content := " is a list of li\ sts of integers, each of which specifies a set\n\t of states to be drawn in a\ different color.\n\n\t ", count := [ "B", 2, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "B", 2, 1, 6 ], mathmode := "Text", name := "P", next := 64743, root := ~, start := 64738, stop := 64742 ), rec( content := "\n\t The argume\ nt ", count := [ "B", 2, 1, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "file", count := [ "B", 2, 1, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 6 ], mathmode := "Text", name := "A", next := 64771, root := ~, start := 64760, stop := 64770 ), rec( content := " is a string tha\ t specifies the name of the file containing the drawing.\n\t If it is not giv\ e, it defaults to ", count := [ "B", 2, 1, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\"automat\ on\"", count := [ "B", 2, 1, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 6 ], mathmode := "Text", name := "C", next := 64899, root := ~, start := 64881, stop := 64898 ), rec( content := ".\n", count := [ "B", 2, 1, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> x:\ =Automaton(\"det\",3,2,[ [ 2, 3, 0 ], [ 0, 1, 2 ] ],[ 1 ],[ 1, 2, 3 ]);;\ngap>\ DrawAutomaton(x,\"file_name\");\nDisplaying file: /tmp/tmp.Rj0v1s/file_name.d\ ot.ps\n\ngap> DrawAutomaton(x,[\"st 1\", \"2\", \"C\"],\"file_name\");\nDispla\ ying file: /tmp/tmp.BCH3FO/file_name.dot.ps\n\ngap> DrawAutomaton(x,[\"st 1\",\ \"2\", \"C\"],[[2],[1,3]]);\nDisplaying file: /tmp/tmp.LPnJMq/automaton.dot.p\ s\n", count := [ "B", 2, 1, 7 ], name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 7 ], mathmode := "Text", name := "Example", next := 65306, root := ~, start := 64901, stop := 65305 ), rec( content := "\nThe output of \ the three previous ", count := [ "B", 2, 1, 8 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "DrawAutom\ aton", count := [ "B", 2, 1, 8 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 8 ], mathmode := "Text", name := "C", next := 65360, root := ~, start := 65340, stop := 65359 ), rec( content := " commands would \ be the following diagrams displayed in a ", count := [ "B", 2, 1, 8 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "ghostview\ ", count := [ "B", 2, 1, 8 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 8 ], mathmode := "Text", name := "E", next := 65433, root := ~, start := 65417, stop := 65432 ), rec( content := " window,\nrespec\ tively.\n", count := [ "B", 2, 1, 8 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "B", 2, 1, 9 ], mathmode := "Text", name := "P", next := 65461, root := ~, start := 65456, stop := 65460 ), rec( content := "\n ", count := [ "B", 2, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "LaTeX" ), content := [ rec( content := "\n \\ \begin{figure}[htbp] \\begin{center} \\leavevmode \\includegraphics[bb=0 0 74 \ 250]{aut2.jpg} \\end{center} \\label{fig:aut2} \\end{figure}\n ", count := [ "B", 2, 1, 9 ], name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 9 ], mathmode := "Text", name := "Alt", next := 65634, root := ~, start := 65466, stop := 65633 ), rec( content := "\n ", count := [ "B", 2, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "HTML" ), content := [ rec( HTML := true, content := "\n \

\n ", count := [ "B", 2, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 9 ], name := "Alt", next := 65767, root := ~, start := 65639, stop := 65766 ), rec( content := "\n ", count := [ "B", 2, 1, 9 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "B", 2, 1, 10 ], mathmode := "Text", name := "P", next := 65777, root := ~, start := 65772, stop := 65776 ), rec( content := "\n ", count := [ "B", 2, 1, 10 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "LaTeX" ), content := [ rec( content := "\n \\ \begin{figure}[htbp] \\begin{center} \\leavevmode \\includegraphics[bb=0 0 100\ 250]{aut2_1.jpg} \\end{center} \\label{fig:aut2_1} \\end{figure}\n ", count := [ "B", 2, 1, 10 ], name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 10 ], mathmode := "Text", name := "Alt", next := 65955, root := ~, start := 65782, stop := 65954 ), rec( content := "\n ", count := [ "B", 2, 1, 10 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "HTML" ), content := [ rec( HTML := true, content := "\n \

\n ", count := [ "B", 2, 1, 10 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 10 ], name := "Alt", next := 66090, root := ~, start := 65960, stop := 66089 ), rec( content := "\n ", count := [ "B", 2, 1, 10 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "B", 2, 1, 11 ], mathmode := "Text", name := "P", next := 66100, root := ~, start := 66095, stop := 66099 ), rec( content := "\n ", count := [ "B", 2, 1, 11 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "LaTeX" ), content := [ rec( content := "\n \\ \begin{figure}[htbp] \\begin{center} \\leavevmode \\includegraphics[bb=0 0 100\ 250]{aut2_2.jpg} \\end{center} \\label{fig:aut2_2} \\end{figure}\n ", count := [ "B", 2, 1, 11 ], name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 11 ], mathmode := "Text", name := "Alt", next := 66278, root := ~, start := 66105, stop := 66277 ), rec( content := "\n ", count := [ "B", 2, 1, 11 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Only := "HTML" ), content := [ rec( HTML := true, content := "\n \

\n ", count := [ "B", 2, 1, 11 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 11 ], name := "Alt", next := 66413, root := ~, start := 66283, stop := 66412 ), rec( content := "\n ", count := [ "B", 2, 1, 11 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "B", 2, 1, 12 ], mathmode := "Text", name := "P", next := 66423, root := ~, start := 66418, stop := 66422 ), rec( content := "\n ", count := [ "B", 2, 1, 12 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 1, 3 ], mathmode := "Text", name := "Description", next := 66446, root := ~, start := 64157, stop := 66445 ) ], count := [ "B", 2, 1, 1 ], mathmode := "Text", name := "ManSection", next := 66466, root := ~, start := 64066, stop := 66465 ), rec( content := "\n ", count := [ "B", 2, 1, 12 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A, B [, file]", Name := "DrawAutomata" ), content := 0, count := [ "B", 2, 2, 2 ], mathmode := "Text", name := "Func", next := 66542, root := ~, start := 66494, stop := 66541 ), rec( attributes := rec( ), content := [ rec( content := "\n This \ function tests if automaton\n ", count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n \ A\n ", count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "C", next := 66650, root := ~, start := 66618, stop := 66649 ), rec( content := "\n is a\ subautomaton of\n ", count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n \ B\n ", count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "C", next := 66724, root := ~, start := 66692, stop := 66723 ), rec( content := "\n in w\ hich case draws\n ", count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n \ B\n ", count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "C", next := 66797, root := ~, start := 66765, stop := 66796 ), rec( content := "\n high\ lighting the edges not in\n ", count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n \ A\n ", count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "C", next := 66880, root := ~, start := 66848, stop := 66879 ), rec( content := "\n by d\ rawing them in a dotted style, while the others are drawn in a plain style.\n \ ", count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "Description", next := 66993, root := ~, start := 66551, stop := 66992 ) ], count := [ "B", 2, 2, 1 ], mathmode := "Text", name := "ManSection", next := 67013, root := ~, start := 66473, stop := 67012 ), rec( content := "\n ", count := [ "B", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "G [, file]", Name := "DrawGraph" ), content := 0, count := [ "B", 2, 3, 2 ], mathmode := "Text", name := "Func", next := 67083, root := ~, start := 67041, stop := 67082 ), rec( attributes := rec( ), content := [ rec( content := "\n Draws\ a graph specified as an adjacency list\n ", count := [ "B", 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "G", count := [ "B", 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 3, 3 ], mathmode := "Text", name := "C", next := 67179, root := ~, start := 67171, stop := 67178 ), rec( content := ".\n ", count := [ "B", 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 3, 3 ], mathmode := "Text", name := "Description", next := 67203, root := ~, start := 67092, stop := 67202 ) ], count := [ "B", 2, 3, 1 ], mathmode := "Text", name := "ManSection", next := 67223, root := ~, start := 67020, stop := 67222 ), rec( content := "\n ", count := [ "B", 2, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A [,state_names, L, file\ ]", Name := "DrawSCCAutomaton" ), content := 0, count := [ "B", 2, 4, 2 ], mathmode := "Text", name := "Func", next := 67315, root := ~, start := 67251, stop := 67314 ), rec( attributes := rec( ), content := [ rec( content := "\n Draws\ automaton\n ", count := [ "B", 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n \ A\n ", count := [ "B", 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 4, 3 ], mathmode := "Text", name := "C", next := 67406, root := ~, start := 67374, stop := 67405 ), rec( content := "\n and \ highlights it's strongly connected components by drawing the other edges in a \ dotted style.\n\t ", count := [ "B", 2, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "P", next := 67525, root := ~, start := 67520, stop := 67524 ), rec( content := "\n\t The option\ al arguments ", count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "state_nam\ es", count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "A", next := 67570, root := ~, start := 67552, stop := 67569 ), rec( content := ", ", count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "L", count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "A", next := 67580, root := ~, start := 67572, stop := 67579 ), rec( content := " and ", count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "file", count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "A", next := 67596, root := ~, start := 67585, stop := 67595 ), rec( content := " are as describe\ d in\n\t ", count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Func := "DrawAutomaton" ), content := 0, count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "Ref", next := 67648, root := ~, start := 67620, stop := 67647 ), rec( content := ".\n ", count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 4, 3 ], mathmode := "Text", name := "Description", next := 67672, root := ~, start := 67324, stop := 67671 ) ], count := [ "B", 2, 4, 1 ], mathmode := "Text", name := "ManSection", next := 67692, root := ~, start := 67230, stop := 67691 ), rec( content := "\n ", count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 2, 0, 1 ], mathmode := "Text", name := "Section", next := 67707, root := ~, start := 63982, stop := 67706 ), rec( content := "\n\n ", count := [ "B", 2, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n ", count := [ "B", 3, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "Drawings output formats" , count := [ "B", 3, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 3, 0, 2 ], mathmode := "Text", name := "Heading", next := 67772, root := ~, start := 67730, stop := 67771 ), rec( content := "\n Since drawings are most\ ly used in the ", count := [ "B", 3, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "SgpViz", count := [ "B", 3, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 3, 0, 3 ], mathmode := "Text", name := "Package", next := 67843, root := ~, start := 67818, stop := 67842 ), rec( content := " package, please\n refer t\ o that package's\n ", count := [ "B", 3, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Text := "manual" ), content := [ rec( content := "http://www.gap-system.org\ /Manuals/pkg/sgpviz/doc/manual.html", count := [ "B", 3, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 3, 0, 3 ], mathmode := "Text", name := "URL", next := 67983, root := ~, start := 67898, stop := 67982 ), rec( content := "\n section of the same nam\ e.\n ", count := [ "B", 3, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 3, 0, 1 ], mathmode := "Text", name := "Section", next := 68031, root := ~, start := 67713, stop := 68030 ), rec( content := "\n \n ", count := [ "B", 3, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\n ", count := [ "B", 4, 0, 1 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "Drawings extra graph attr\ ibutes", count := [ "B", 4, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 4, 0, 2 ], mathmode := "Text", name := "Heading", next := 68113, root := ~, start := 68063, stop := 68112 ), rec( content := "\n Since drawings are most\ ly used in the ", count := [ "B", 4, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "SgpViz", count := [ "B", 4, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 4, 0, 3 ], mathmode := "Text", name := "Package", next := 68184, root := ~, start := 68159, stop := 68183 ), rec( content := " package, please\n refer t\ o that package's\n ", count := [ "B", 4, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Text := "manual" ), content := [ rec( content := "http://www.gap-system.org\ /Manuals/pkg/sgpviz/doc/manual.html", count := [ "B", 4, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 4, 0, 3 ], mathmode := "Text", name := "URL", next := 68324, root := ~, start := 68239, stop := 68323 ), rec( content := "\n section of the same nam\ e.\n ", count := [ "B", 4, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 4, 0, 1 ], mathmode := "Text", name := "Section", next := 68372, root := ~, start := 68041, stop := 68371 ), rec( content := "\n ", count := [ "B", 4, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "B", 0, 0, 1 ], mathmode := "Text", name := "Appendix", next := 68386, root := ~, start := 62978, stop := 68385 ), rec( content := "xml version=\"1.0\" encoding=\"UTF-8\"", count := [ "B", 4, 0, 3 ], mathmode := "Text", name := "XMLPI", root := ~ ), rec( content := " $Id: foldings.xml,v 1.13 Exp $ ", count := [ "B", 4, 0, 3 ], mathmode := "Text", name := "XMLCOMMENT", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "Inverse automata and subgroups of\ the free group", count := [ "C", 0, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 0, 0, 2 ], mathmode := "Text", name := "Heading", next := 68546, root := ~, start := 68479, stop := 68545 ), rec( content := "\n\nInverse automata with a single initi\ al/accepting state are in a one to one correspondence with finitely generated \ subgroups of the free group over the alphabet of the automaton. See ", count := [ "C", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Key := "MSW:2001" ), content := 0, count := [ "C", 0, 0, 3 ], mathmode := "Text", name := "Cite", next := 68753, root := ~, start := 68731, stop := 68752 ), rec( content := ", ", count := [ "C", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Key := "KM:2002" ), content := 0, count := [ "C", 0, 0, 3 ], mathmode := "Text", name := "Cite", next := 68777, root := ~, start := 68755, stop := 68776 ), rec( content := " for details, as well as for concepts su\ ch as ", count := [ "C", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "flower automaton", count := [ "C", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 0, 0, 3 ], mathmode := "Text", name := "E", next := 68846, root := ~, start := 68823, stop := 68845 ), rec( content := " and ", count := [ "C", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "Stallings foldings", count := [ "C", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 0, 0, 3 ], mathmode := "Text", name := "E", next := 68876, root := ~, start := 68851, stop := 68875 ), rec( content := ".\n\n\n", count := [ "C", 0, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "From subgroups to inverse\ automata", count := [ "C", 1, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 0, 2 ], mathmode := "Text", name := "Heading", next := 68942, root := ~, start := 68889, stop := 68941 ), rec( content := "\n\nA finitely generated subgrou\ p of a finitely generated free group is given\nthrough a list whose first elem\ ent is the number of generators of the \nfree group and the remaining elements\ are the generators of the subgroup.\nThe set of generators of the free group \ of rank ", count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "n", count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "M", next := 69219, root := ~, start := 69211, stop := 69218 ), rec( content := " consists on the ", count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "n", count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "M", next := 69244, root := ~, start := 69236, stop := 69243 ), rec( content := " first letters of the set ", count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\\{a,b,c,d,e,f,g\\}", count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "M", next := 69294, root := ~, start := 69270, stop := 69293 ), rec( content := ". In particular, free groups of \ rank greater than ", count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "8", count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "M", next := 69352, root := ~, start := 69344, stop := 69351 ), rec( content := " must not be considered. A forma\ l inverse of a generator is represented by the corresponding capital letter.\n\ ", count := [ "C", 1, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "C", 1, 0, 4 ], mathmode := "Text", name := "P", next := 69465, root := ~, start := 69461, stop := 69464 ), rec( content := "\nA generator of the subgroup ma\ y be given through a string of letters or \nthrough a list of positive integer\ s as should be clear from the example that follows. \n", count := [ "C", 1, 0, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "P", next := 69630, root := ~, start := 69626, stop := 69629 ), rec( content := "\nFor example, ", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "[2,\"abA\",\"bbabAB\"]", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "C", next := 69669, root := ~, start := 69644, stop := 69668 ), rec( content := " stands for the subgroup of the \ free group of rank 2\non the generators ", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "aba^{-1}", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "M", next := 69755, root := ~, start := 69740, stop := 69754 ), rec( content := " and ", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "bbaba^{-1}b^{-1}", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "M", next := 69783, root := ~, start := 69760, stop := 69782 ), rec( content := ".\nThe same subgroup may be give\ n as ", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "[2,[1,2,3],[2,2,1,2,3,4]]\ ", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "C", next := 69851, root := ~, start := 69819, stop := 69850 ), rec( content := ". The number ", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := " n+j", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "M", next := 69875, root := ~, start := 69864, stop := 69874 ), rec( content := " represents the formal inverse o\ f the generator represented by ", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "j", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "M", next := 69946, root := ~, start := 69938, stop := 69945 ), rec( content := ". One can go from one representa\ tion to another, using the following functions.\n\n", count := [ "C", 1, 0, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "L", Name := "GeneratorsToListReprese\ ntation" ), content := 0, count := [ "C", 1, 1, 2 ], mathmode := "Text", name := "Func", next := 70094, root := ~, start := 70041, stop := 70093 ), rec( attributes := rec( ), content := [ rec( content := " \n", count := [ "C", 1, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> L:\ =[2,\"abA\",\"bbabAB\"];;\ngap> GeneratorsToListRepresentation(L);\n[ 2, [ 1, \ 2, 3 ], [ 2, 2, 1, 2, 3, 4 ] ]\n", count := [ "C", 1, 1, 4 ], name := "PCDATA", root := ~ ) ], count := [ "C", 1, 1, 4 ], mathmode := "Text", name := "Example", next := 70252, root := ~, start := 70110, stop := 70251 ), rec( content := "\n", count := [ "C", 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 1, 3 ], mathmode := "Text", name := "Description", next := 70267, root := ~, start := 70095, stop := 70266 ) ], count := [ "C", 1, 1, 1 ], mathmode := "Text", name := "ManSection", next := 70282, root := ~, start := 70027, stop := 70281 ), rec( content := " \n\n\n", count := [ "C", 1, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "K", Name := "ListToGeneratorsReprese\ ntation" ), content := 0, count := [ "C", 1, 2, 2 ], mathmode := "Text", name := "Func", next := 70353, root := ~, start := 70300, stop := 70352 ), rec( attributes := rec( ), content := [ rec( content := "\n", count := [ "C", 1, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> K:\ =[2,[1,2,3],[2,2,1,2,3,4]];;\ngap> ListToGeneratorsRepresentation(K);\n[ 2, \"\ abA\", \"bbabAB\" ]\n", count := [ "C", 1, 2, 4 ], name := "PCDATA", root := ~ ) ], count := [ "C", 1, 2, 4 ], mathmode := "Text", name := "Example", next := 70499, root := ~, start := 70368, stop := 70498 ), rec( content := "\n", count := [ "C", 1, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 2, 3 ], mathmode := "Text", name := "Description", next := 70514, root := ~, start := 70354, stop := 70513 ) ], count := [ "C", 1, 2, 1 ], mathmode := "Text", name := "ManSection", next := 70528, root := ~, start := 70286, stop := 70527 ), rec( content := " \n\n", count := [ "C", 1, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "L", Name := "FlowerAutomaton" ), content := 0, count := [ "C", 1, 3, 2 ], mathmode := "Text", name := "Func", next := 70583, root := ~, start := 70545, stop := 70582 ), rec( attributes := rec( ), content := [ rec( content := "\nThe argument ", count := [ "C", 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "L", count := [ "C", 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 3, 3 ], mathmode := "Text", name := "C", next := 70619, root := ~, start := 70611, stop := 70618 ), rec( content := " is a subgroup o\ f the free group given through any \nof the representations described above. R\ eturns the flower automaton.\n", count := [ "C", 1, 3, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> W:\ =[2,\"bbbAB\",\"abAbA\"];;\ngap> A:=FlowerAutomaton(W);\n< non deterministic a\ utomaton on 2 letters with 9 states >\ngap> Display(A);\n | 1 2 \ 3 4 5 6 7 8 9\n-----------------------------\ ----------------------------------------\n a | [ 6, 9 ] \ [ 4 ] [ 7 ]\n b | [ 2, 5 ] [ 3 ] [ 4 ] [ 7 \ ] [ 9 ]\nInitial state: [ 1 ]\nAccepting state: [ 1 ]\n", count := [ "C", 1, 3, 4 ], name := "PCDATA", root := ~ ) ], count := [ "C", 1, 3, 4 ], mathmode := "Text", name := "Example", next := 71220, root := ~, start := 70741, stop := 71219 ), rec( content := "\n", count := [ "C", 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 3, 3 ], mathmode := "Text", name := "Description", next := 71235, root := ~, start := 70584, stop := 71234 ) ], count := [ "C", 1, 3, 1 ], mathmode := "Text", name := "ManSection", next := 71249, root := ~, start := 70531, stop := 71248 ), rec( content := " \n\n", count := [ "C", 1, 3, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "FoldFlowerAutomaton" ), content := 0, count := [ "C", 1, 4, 2 ], mathmode := "Text", name := "Func", next := 71308, root := ~, start := 71266, stop := 71307 ), rec( attributes := rec( ), content := [ rec( content := "\n Makes identifi\ cations on the flower automaton ", count := [ "C", 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A", count := [ "C", 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 4, 3 ], mathmode := "Text", name := "C", next := 71378, root := ~, start := 71370, stop := 71377 ), rec( content := ". In the literat\ ure, these identifications are called Stallings foldings.\n", count := [ "C", 1, 4, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := 0, count := [ "C", 1, 4, 4 ], mathmode := "Text", name := "P", next := 71456, root := ~, start := 71452, stop := 71455 ), rec( content := "\n(This function\ may have ", count := [ "C", 1, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "true", count := [ "C", 1, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 4, 4 ], mathmode := "Text", name := "C", next := 71492, root := ~, start := 71481, stop := 71491 ), rec( content := " as a second arg\ ument. WARNING: the second argument should only be used when facilities to dra\ w automata are available. In that case, one may visualize the identifications \ that are taking place.)\n", count := [ "C", 1, 4, 4 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> B \ := FoldFlowerAutomaton(A);\n< deterministic automaton on 2 letters with 7 stat\ es >\ngap> Display(B);\n | 1 2 3 4 5 6 7\n--------------------------\ \n a | 5 4 6\n b | 2 3 4 6 5\nInitial state: [ 1 ]\ \nAccepting state: [ 1 ]\n", count := [ "C", 1, 4, 5 ], name := "PCDATA", root := ~ ) ], count := [ "C", 1, 4, 5 ], mathmode := "Text", name := "Example", next := 71977, root := ~, start := 71688, stop := 71976 ), rec( content := "\n", count := [ "C", 1, 4, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 4, 3 ], mathmode := "Text", name := "Description", next := 71992, root := ~, start := 71309, stop := 71991 ) ], count := [ "C", 1, 4, 1 ], mathmode := "Text", name := "ManSection", next := 72006, root := ~, start := 71252, stop := 72005 ), rec( content := "\n", count := [ "C", 1, 4, 6 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "L", Name := "SubgroupGenToInvAut" ), content := 0, count := [ "C", 1, 5, 2 ], mathmode := "Text", name := "Func", next := 72063, root := ~, start := 72021, stop := 72062 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns the inv\ erse automaton corresponding to the subgroup given by \n", count := [ "C", 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "L", count := [ "C", 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 5, 3 ], mathmode := "Text", name := "A", next := 72156, root := ~, start := 72148, stop := 72155 ), rec( content := ".\n", count := [ "C", 1, 5, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> L:\ =[2,\"bbbAB\",\"AbAbA\"];;\ngap> SubgroupGenToInvAut(L);\n< deterministic auto\ maton on 2 letters with 8 states >\ngap> Display(last);\n | 1 2 3 4 5 \ 6 7 8\n-----------------------------\n a | 8 4 1 6\n b | 2 3 \ 4 6 8\nInitial state: [ 1 ]\nAccepting state: [ 1 ]\n\n", count := [ "C", 1, 5, 4 ], name := "PCDATA", root := ~ ) ], count := [ "C", 1, 5, 4 ], mathmode := "Text", name := "Example", next := 72482, root := ~, start := 72158, stop := 72481 ), rec( content := "\n", count := [ "C", 1, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 5, 3 ], mathmode := "Text", name := "Description", next := 72497, root := ~, start := 72064, stop := 72496 ) ], count := [ "C", 1, 5, 1 ], mathmode := "Text", name := "ManSection", next := 72511, root := ~, start := 72007, stop := 72510 ), rec( content := "\n", count := [ "C", 1, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 1, 0, 1 ], mathmode := "Text", name := "Section", next := 72522, root := ~, start := 68880, stop := 72521 ), rec( content := "\n", count := [ "C", 1, 5, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( ), content := [ rec( content := "From inverse automata to \ subgroups", count := [ "C", 2, 0, 2 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 2, 0, 2 ], mathmode := "Text", name := "Heading", next := 72585, root := ~, start := 72532, stop := 72584 ), rec( content := "\nGiven an inverse automaton wit\ h a single initial/accepting state, one can find a set of generators for the s\ ubgroup represented by the automaton. Moreover, using a geodesic tree, one can\ find a Nielsen reduced set of generators ", count := [ "C", 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( Key := "KM:2002" ), content := 0, count := [ "C", 2, 0, 3 ], mathmode := "Text", name := "Cite", next := 72836, root := ~, start := 72814, stop := 72835 ), rec( content := ".\n\n", count := [ "C", 2, 0, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "GeodesicTreeOfInverseAu\ tomaton" ), content := 0, count := [ "C", 2, 1, 2 ], mathmode := "Text", name := "Func", next := 72906, root := ~, start := 72853, stop := 72905 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns a subau\ tomaton of ", count := [ "C", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A", count := [ "C", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 2, 1, 3 ], mathmode := "Text", name := "A", next := 72955, root := ~, start := 72947, stop := 72954 ), rec( content := "whose underlying\ graph is a geodesic tree of the underlying graph of the inverse automaton ", count := [ "C", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A", count := [ "C", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 2, 1, 3 ], mathmode := "Text", name := "C", next := 73054, root := ~, start := 73046, stop := 73053 ), rec( content := ". \n", count := [ "C", 2, 1, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> A:\ =Automaton(\"det\",4,2,[ [ 3, 4, 0, 0 ], [ 2, 3, 4, 0 ] ],[ 1 ],[ 1 ]);;\ngap>\ G := GeodesicTreeOfInverseAutomaton(A);\n< deterministic automaton on 2 lette\ rs with 4 states >\ngap> Display(G);\n | 1 2 3 4\n-----------------\n a \ | 3\n b | 2 4\nInitial state: [ 1 ]\nAccepting state: [ 1 ]\n", count := [ "C", 2, 1, 4 ], name := "PCDATA", root := ~ ) ], count := [ "C", 2, 1, 4 ], mathmode := "Text", name := "Example", next := 73388, root := ~, start := 73058, stop := 73387 ), rec( content := "\n", count := [ "C", 2, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 2, 1, 3 ], mathmode := "Text", name := "Description", next := 73403, root := ~, start := 72907, stop := 73402 ) ], count := [ "C", 2, 1, 1 ], mathmode := "Text", name := "ManSection", next := 73418, root := ~, start := 72839, stop := 73417 ), rec( content := " \n\n", count := [ "C", 2, 1, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( attributes := rec( Arg := "A", Name := "InverseAutomatonToGener\ ators" ), content := 0, count := [ "C", 2, 2, 2 ], mathmode := "Text", name := "Func", next := 73486, root := ~, start := 73435, stop := 73485 ), rec( attributes := rec( ), content := [ rec( content := "\nReturns a set o\ f generators (given trough the representation above) of the \nsubgroup of the \ free group corresponding to the automaton ", count := [ "C", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "A", count := [ "C", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 2, 2, 3 ], mathmode := "Text", name := "C", next := 73643, root := ~, start := 73635, stop := 73642 ), rec( content := " given.\n", count := [ "C", 2, 2, 3 ], mathmode := "Text", name := "PCDATA", root := ~ ), rec( attributes := rec( ), content := [ rec( content := "\ngap> NW\ := InverseAutomatonToGenerators(A);\n[ 2, \"baBA\", \"bbA\" ]\n", count := [ "C", 2, 2, 4 ], name := "PCDATA", root := ~ ) ], count := [ "C", 2, 2, 4 ], mathmode := "Text", name := "Example", next := 73748, root := ~, start := 73651, stop := 73747 ), rec( content := "\n", count := [ "C", 2, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 2, 2, 3 ], mathmode := "Text", name := "Description", next := 73763, root := ~, start := 73487, stop := 73762 ) ], count := [ "C", 2, 2, 1 ], mathmode := "Text", name := "ManSection", next := 73778, root := ~, start := 73421, stop := 73777 ), rec( content := " \n\n", count := [ "C", 2, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 2, 0, 1 ], mathmode := "Text", name := "Section", next := 73791, root := ~, start := 72523, stop := 73790 ), rec( content := "\n", count := [ "C", 2, 2, 5 ], mathmode := "Text", name := "PCDATA", root := ~ ) ], count := [ "C", 0, 0, 1 ], mathmode := "Text", name := "Appendix", next := 73803, root := ~, start := 68469, stop := 73802 ), rec( attributes := rec( Databases := "AutMan" ), content := 0, count := [ "Bib", 0, 0, 1 ], mathmode := "Text", name := "Bibliography", next := 73844, root := ~, start := 73809, stop := 73843 ), rec( attributes := rec( ), content := 0, count := [ "Ind", 0, 0, 1 ], mathmode := "Text", name := "TheIndex", next := 73857, root := ~, start := 73846, stop := 73856 ) ], count := [ 0, 0, 0, 1 ], name := "Book", next := 73866, root := ~, start := 129, stop := 73865 ), rec( content := " =======================================================\ ============= ", count := [ "Ind", 0, 0, 1 ], name := "XMLCOMMENT", root := ~ ) ], count := [ 0, 0, 0, 1 ], indent := "", indextext := " MinimalAutomaton 5.2-3
\n StarRatExp\ 3.3-3
\nAccessibleAutomaton 5.2-5
\nAccessibleStates 5.2-4
\nAddI\ nverseEdgesToInverseAutomaton 2.4-5
\nAlphabetOfAutomaton 2.2-1
\nAlph\ abetOfAutomatonAsList 2.2-\ 2
\nAlphabetOfRatExp 3.1-6
\nAlphabetOfRatEx\ pAsList 3.1-7
\n<\ code class=\"func\">AreDisjointLang 4.3-5
\nAreEqualLang 4.3-3
\nAreE\ quivAut 4.3-3
\n<\ code class=\"func\">AutoConnectedComponents A.1-6
\nAutoIsAcyclicGraph A.1-12
\nAutomaton 2.1-1<\ /a>
\nAutomatonAllPairsPaths
5.2-7
\nAutomatonTo\ RatExp 4.1-1
\n<\ code class=\"func\">AutoVertexDegree
A.1-4
\nAutToRatExp 4.1-1
\nCopy\ Automaton 2.5-1
\ \nCopyRatExp 3.1-8
\nDiGraphToRelation A.1-10
\nD\ rawAutomata B.2-2
\nDrawAutomaton B.2-1
\nDrawGraph B.2-3
\nDrawSC\ CAutomaton B.2-4
\ \nEpsilonCompactedAut 5.1-3
\nEpsilonToNFA 5.1-1
\nEpsilonToNFASet 5.1-2
\nFAtoRatExp
4.1-1
\nFinalStatesOfAutomaton 2.2-6
\nFiniteRegularLanguageToListOfWords 6.1-2
\nFlowerAutomaton C.1-3
\nFoldFlowerAutomaton C.1-4
\nFuseSymbolsAut 5.1-6
\nGenerators\ ToListRepresentation C.1-1\
\nGeodesicTreeOfInverseAutomaton C.2-1
\nGr\ aphStronglyConnectedComponents A.1-7
\nInitialStatesOfAutomaton 2.2-4
\nIntersectionAutomaton 5\ .2-6
\nIntersectionLanguage 5.2-6
\nInverseA\ utomatonToGenerators C.2-2\
\nIsAutomaton 2.1-2
\nIsContainedLang 4.3-4
\nIsDenseAutomaton 2.\ 4-1
\nIsDeterministicAutomaton 2.1-3
\nIsEm\ ptyLang 4.3-1
\n<\ code class=\"func\">IsEpsilonAutomaton
2.1-5
\nIsFiniteRegularLanguage 6.1-1
\nIsFullLang 4.3-2<\ /a>
\nIsInverseAutomaton
2.4-4
\nIsNonDeterminis\ ticAutomaton 2.1-4
\nIsPermutationAutomaton 2.4-3
\nIsRationalExpressi\ on 3.1-5
\nIsRecognizedByAutomaton 2.4-2
\nIsReversibleAutomaton 2.4-6
\nListOfWordsToAutomaton 6.1-3
\nListPermutedAutomata 2.5-7
\nLis\ tSinkStatesAut 2.5-3\nListToGeneratorsRepresentation C.1-2
\nMinimali\ zedAut 5.2-2
\nMSccAutomaton
A.1-11
\nNFAtoDFA 5.1-5
\nNormalizedA\ utomaton 2.5-8
\n\ NullCompletionAutomaton 2.5-2
\nNumberStatesOfAutomat\ on 2.2-8
\nPermutedAutomaton 2.5-6
\nProductAutomaton 2.5-10
\nPro\ ductOfLanguages 2.5-11\
\nProductRatExp 3.3-2
\nRandomAutomaton \ 2.1-7
\nRandomDiGraph A.1-1
\nRandomRatExp
3.1-3
\nRatExpOnnLetters 3.1-2
\nRatExpToAut 4.2-2
\nRatExpToAutomaton
4.2-2
\nRatExpToNDAut 4.2-1
\nrational exp\ ressions 3.
\nRationalExpression 3.1-1
\nReducedNFA 5.1-4
\nRemovedSinkSt\ ates 2.5-4
\nReversedAutomaton
2.5-5
\nReversedGraph A.1-5
\nSetF\ inalStatesOfAutomaton 2.2-\ 7
\nSetInitialStatesOfAutomaton 2.2-5
\nSize\ RatExp 3.1-4
\nString
\ 2.1-6
\nSubgroupGenToInvAut C.1-5
\nSyntacti\ cSemigroupAut 2.6-2\nSyntacticSemigroupLang 2.6-3
\nTransitionMatrixO\ fAutomaton 2.2-3
\ \nTransitionSemigroup 2.6-1
\nUnderlyingGraphOfAutoma\ ton A.1-9
\nUnderlyingMultiGraphOfAutomaton A.1-8
\nUnionAutomata 2.5-9
\nUnionRatExp 3.3-1\
\nUsefulAutomaton 5.2-1
\nVertexInDegree A.1-2
\nVertexOutDegree \ A.1-3
\n", input := "\n\n\n\n \n\n<\ Book Name=\"Automata\"> \n\n\n Automata\n ( Version \n1.13\n\n\n )\n \n Manuel Delgado \n mdelgado@fc.up.pt
\n http://www.fc.up.pt/cmup/mdelgado\n \n Steve Linton\n sal@cs.st-andrew\ s.ac.uk\n http://www-circa.mcs.st-and.ac.uk/~sal/\n \n José Joäo Morais \n \n \n ©right; 2004 by Manuel Delgado\ , Steve Linton and José Morais

\n We adopt the copyright reg\ ulations of &GAP; as detailed in the \n copyright notice in the &\ GAP; manual. \n\n\n\nThis work started in 1998, when the\ first author was in the\nLIAFA at the University of Paris 7, in a post-doc. \ \nEncouraged by J. E. Pin, he began the implementation in &GAP;3 of\nan algori\ thm obtained some time before to answer a question from the realm \nof Finite \ Semigroups proposed by J. Almeida. It is now part of a separate \npackage: \ finsemi.

\n\nThe first version of this package on automata was prepare\ d by the first author \nwho gave it the form of a &GAP; share package.\nIn a s\ econd version, prepared by the first and third authors, \nmany functions have \ been added and the performance of many of the existing \nones has been improve\ d. Further important improvements, specially concerning performance,\nhave bee\ n achieved when the second author joined the group.\n

\n\nSince Version 1.1\ 2, the package is maintained by the first two authors.\n\nBug reports, suggest\ ions and comments are, of course, welcome. Please use our\nemail addresses to \ this effect.\n\n\n\n\n\nThe first author wishes t\ o acknowledge Cyril Nicaud and Paulo Varandas for \ntheir help in programming \ some functions of the very first version of this \npackage. He wishes also to \ acknowledge useful discussions and comments by \nCyril Nicaud, Vítor H. Ferna\ ndes, Jean-Eric Pin and Jorge Almeida.\n

\nThe first author also acknowledg\ es support of FCT through CMUP \nand the FCT and POCTI Project POCTI/32817/MAT\ /2000 which is funded in\ncooperation with the European Community Fund FEDER.\ \n

\nThe third author acknowledges financial support of FCT and the POCTI p\ rogram \nthrough a scholarship given by Centro de Matemática da Universidade \ do Porto.\n

\n\nThe authors would like to thank Mark Kambites for his contr\ ibution in finding bugs and making suggestions for the improvement of this pac\ kage.\n

\n

\n

\nConcerning the mantainment:\n

\n

\nThe first au\ thor was/is (partially) supported by the FCT project PTDC/MAT/65481/2006 and a\ lso by the\nCentro de Matemática da Universidade do\nPorto (CMUP), fun\ ded by the European Regional Development Fund through the program COMPETE and \ by the Portuguese Government through the FCT - Fundaèäo para a Ciência e a \ Tecnologia under the project PEst-C/MAT/UI0144/2011.\n\n\n<\ /TitlePage>\n\n\n\n\n\n\n \n \n \ \n Introduction\n \n In many situations an autom\ aton is conveniently described through a diagram like the following\n

\ \n \n \\begin{figure}[htbp] \\begin{center} \\leav\ evmode \\includegraphics[bb=0 0 132 279]{aut1} \\end{center} \\label{fig:aut1}\ \\end{figure}\n \n \n <br><ce\ nter><img src="aut1.gif"></center><br>\n \ \n

\n This diagram describes a (deterministic) automaton wi\ th\n \n 3\n \n states (the elements of the set\n \n\ \\{1,2,3\\}).\n \n The arrow pointing to the state\n \n \ 1\n \n indicates that\n \n 1\n \n is the i\ nitial state and the two circles around state\n \n 3\n \n \ indicate that\n \n 3\n \n is a final or accepting state.\ The set\n \n \\{a,b\\}\n \n is the alphabet of th\ e automaton; its elements are called letters and are the labels of the \ edges of the diagram. The words\n \n a\n \n ,\n \n \ ab^2\n \n ,\n \n b^5a^3b\n \n are examples\ of words recognized by the automaton since they are labels of paths from the \ initial to the final state.\n

\n The set of words recognized by an \ automaton is called the language of the automaton. It is a rational lan\ guage and may be represented through a rational expression. For instance, (aUb)(a(aUb)Ub(aUb))* is a rational expression representing the languag\ e of the above automaton. \n

\nKleene's Theorem states that a language\ is rational if and only if it is the language of a finite automaton.\nBoth di\ rections of Kleene's Theorem can be proved constructively, and these algorithm\ s, to go from an automaton to a rational expression and vice-versa, are\ implemented in this package.\n

\nOf course, one has to pay attention \ to the size of the output produced. When producing a deterministic automaton e\ quivalent to a given rational expression one can obtain an optimal solution (t\ he minimal automaton) using standard algorithms .\n <\ P />\nWhen producing a rational expression for the language of an automaton, a\ nd taking into account some reasonable measure for the size of a rational expr\ ession, to determine a minimal one is apparently computationally difficult. We\ use here some heuristic methods (to be published elsewhere) which in practice\ lead to very reasonable results.\n

\nThe development of this work has\ benefited from the existence of AMoRE , a package wr\ itten in C to handle Automata, Monoids and Regular Expressions. In fact\ , its manual has been very useful and some of the algorithms implemented here \ are those implemented in AMoRE. In this package, unlike what happened with AMo\ RE, we do not have to worry about the monoid part in order to make it useful t\ o semigroup theorists, since monoids are already implemented in &GAP; and we m\ ay take advantage of this fact. We just need a function to compute the transit\ ion semigroup of an automaton.\n\n

\n

\nThe parts of this pa\ ckage that have not so directly to do with automata or rational expressions ar\ e put into appendices in this manual. Some words about these appendices follow\ .\n

\nUsing the external program Graphviz to graph visualization, one can visualize automata. This very conve\ nient tool presently works easily under LINUX.\n

\nGiven a finitely g\ enerated subgroup of the free group it is possible to compute a flower automat\ on and perform Stallings foldings over it in order to obtain an inverse automa\ ton corresponding to the given subgroup.\n

\n \n\n\n\n\ \nFinite Automata\n\nThis chapter describes the re\ presentations used in this package for\nfinite automata and some functions to \ determine information about them.\n

\n We have to remark that the states of\ an automaton are always named\n1,2,3,\\ldots; the alphabet may be give\ n by the user. By default \nit is \\{a,b,c,\\ldots\\} (or \\{a_1,a_2\ ,a_3,\\ldots\\} in the \ncase of alphabets with more than 26 letter\ s). \n

\nThe transition function of an automaton with q states over \ an alphabet with n \nletters is represented by a (not necessarily den\ se) n\\times q \n matrix. Each row of the matrix describes the action o\ f the corresponding\nletter on the states.\nIn the case of a determinist\ ic automaton (DFA) the entries of the\n matrix are non-negative integer\ s. \nWhen all entries of the transition table \nare positive integers, the aut\ omaton is said to be \ndense or complete.\n\n\nIn the case o\ f a non deterministic automaton (NFA) the entries of the\n matrix\ may be lists of non-negative integers. \n\nAutomata with \\epsilon-transitions are also allowed: the \nlast letter of the alphabet is a\ ssumed to be \\epsilon and is represented by @.\n\n

A\ utomata generation \n\n\nThe way to create an automaton in &GAP; is the following \n \n\n\n\nType may be \n\"det\", \"nondet\"<\ /C> or \"epsilon\" according to whether \nthe automaton is deterministi\ c, non deterministic or an automaton with \n\\epsilon-transitions. \nSize is a positive integer representing the\nnumber of states of the auto\ maton. Alphabet is the number of\nletters of the alphabet or a list wit\ h the letters of the ordered alphabet. \nTransitionTable is the transit\ ion matrix. The\nentries are non-negative integers not greater than the size o\ f the automaton.\nIn the case of non deterministic automata, lists of non-nega\ tive integers not \ngreater than the size of the automaton are also allowed. <\ C>Initial\nand Accepting are, respectively, the lists of initial an\ d accepting\nstates. \n\n aut:=Automaton(\"det\",4,2,\ [[3,,3,4],[3,4,0,4]],[1],[4]);\n< deterministic automaton on 2 letters with 4 \ states >\ngap> Display(aut);\n | 1 2 3 4\n-----------------\n a | 3 \ 3 4\n b | 3 4 4\nInitial state: [ 1 ]\nAccepting state: [ 4 ]\n]]>\n\ \nThe alphabet of the automaton may be specified:\n aut:=Automaton(\"det\",4,\"01\",[[3,,3,4],[3,4,0,4]],[1],[4]);\n< dete\ rministic automaton on 2 letters with 4 states >\ngap> Display(aut);\n | 1 \ 2 3 4\n-----------------\n 0 | 3 3 4\n 1 | 3 4 4\nInitial state\ : [ 1 ]\nAccepting state: [ 4 ]\n]]>\nInstead of leaving a hole in\ the transition matrix, we may write a 0\n to mean that no transition i\ s present. \nNon deterministic automata may be given the same way.\n<\ ![CDATA[\ngap> ndaut:=Automaton(\"nondet\",4,2,[[3,[1,2],3,0],[3,4,0,[2,3]]],[\ 1],[4]);\n< non deterministic automaton on 2 letters with 4 states >\ngap> Dis\ play(ndaut);\n | 1 2 3 4\n----------------------------\ -------------\n a | [ 3 ] [ 1, 2 ] [ 3 ]\n b | [ 3 ] [ 4 ] \ [ 2, 3 ]\nInitial state: [ 1 ]\nAccepting state: [ 4 ]\n]]>\nAlso \ in the same way can be given \\epsilon-automata. The letter \\epsilo\ n is written @ instead.\n x:=Automaton(\"ep\ silon\",3,\"01@\",[[,[2],[3]],[[1,3],,[1]],[[1],[2],\n> [2]]],[2],[2,3]);\n< e\ psilon automaton on 3 letters with 3 states >\ngap> Display(x);\n | 1 \ 2 3\n------------------------------\n 0 | [ 2 ] [ 3 ]\n\ 1 | [ 1, 3 ] [ 1 ]\n @ | [ 1 ] [ 2 ] [ 2 ]\nInitial state: \ [ 2 ]\nAccepting states: [ 2, 3 ]\n]]>\nBigger automata are displa\ yed in another form:\n aut:=Automaton(\"det\",16,2,[[4\ ,0,0,6,3,1,4,8,7,4,3,0,6,1,6,0],\n> [3,4,0,0,6,1,0,6,1,6,1,6,6,4,8,7,4,5]],[1]\ ,[4]);\n< deterministic automaton on 2 letters with 16 states >\ngap> Display(\ aut);\n1 a 4\n1 b 3\n2 b 4\n ... some more lines\n15 a 6\ \n15 b 8\n16 b 7\nInitial state: [ 1 ]\nAccepting state: [ 4 ]\n]]><\ /Example>\n \n\n\n\n\nIn the presence of an object O, one m\ ay want to test whether \nO is an automaton. This may be done using the\ function IsAutomaton.\n x:=Automaton(\"det\",3\ ,2,[ [ 0, 2, 0 ], [ 0, 1, 0 ] ],[ 3 ],[ 2 ]);;\ngap> IsAutomaton(x);\ntrue\n]]\ >\n \n\n\n\n\nReturns true when aut is a deterministic automaton and false otherwise. \n<\ ![CDATA[\ngap> x:=Automaton(\"det\",3,2,[ [ 0, 2, 0 ], [ 0, 1, 0 ] ],[ 3 ],[ 2\ ]);;\ngap> IsDeterministicAutomaton(x);\ntrue\n]]>\n \ \n\n\n\n\nReturns true when aut is a non deterministic automaton and false otherwise. \n y:=Automaton(\"nondet\",3,2,[[,[1,3],],[,[2,3],[1,3]]],[1,2],[1,3]\ );;\ngap> IsNonDeterministicAutomaton(y);\ntrue\n]]>\n\ \n\n\n\n\nReturns true when aut is an \\epsilon-a\ utomaton and false otherwise. \n z:=Automaton(\ \"epsilon\",2,2,[[[1,2],],[[2],[1]]],[1,2],[1,2]);;\ngap> IsEpsilonAutomaton(z\ );\ntrue\n]]>\n \n\n\n\n\nThe way &GAP; displays an automa\ ton is quite natural, but when one wants to \ndo small changes, for example us\ ing copy/paste, the use of the function \nString (possibly follo\ wed by Print) may be usefull.\n x:=Automaton(\"\ det\",3,2,[ [ 0, 2, 0 ], [ 0, 1, 0 ] ],[ 3 ],[ 2 ]);;\ngap> String(x);\n\"Auto\ maton(\\\"det\\\",3,\\\"ab\\\",[ [ 0, 2, 0 ], [ 0, 1, 0 ] ],[ 3 ],[ 2 ]);;\"\n\ gap> Print(String(x));\nAutomaton(\"det\",3,\"ab\",[ [ 0, 2, 0 ], [ 0, 1, 0 ] \ ],[ 3 ],[ 2 ]);;\n]]>\n z:=Automaton(\"epsil\ on\",2,2,[[[1,2],],[[2],[1]]],[1,2],[1,2]);;\ngap> Print(String(z));\nAutomato\ n(\"epsilon\",2,\"a@\",[ [ [ 1, 2 ], [ ] ], [ [ 2 ], [ 1 ] ] ],[ 1, 2 ],[ \\\n\ 1, 2 ]);;\n]]>\n \n\n\n\n\nGiven \ the Type, the Size (i.e. the number of states) and the Alphab\ et (a positive integer\nor a list), returns a pseudo random automaton with\ \nthese parameters.\n RandomAutomaton(\"det\",5,\"ac\ \");\n< deterministic automaton on 2 letters with 5 states >\ngap> Display(las\ t);\n | 1 2 3 4 5\n--------------------\n a | 2 3\n c | 2 3\nIni\ tial state: [ 4 ]\nAccepting states: [ 3, 4 ]\n\ngap> RandomAutomaton(\"non\ det\",3,[\"a\",\"b\",\"c\"]);\n< non deterministic automaton on 3 letters with\ 3 states >\n\ngap> RandomAutomaton(\"epsilon\",2,\"abc\");\n< epsilon automat\ on on 4 letters with 2 states >\n\ngap> RandomAutomaton(\"epsilon\",2,2);\n< e\ psilon automaton on 3 letters with 2 states >\ngap> Display(last);\n | 1 \ 2\n----------------------\n a | [ 1, 2 ]\n b | [ 2 ] [ 1 ]\n @ | [\ 1, 2 ]\nInitial state: [ 2 ]\nAccepting states: [ 1, 2 ]\n\ngap> a:=Random\ Transformation(3);;\ngap> b:=RandomTransformation(3);;\ngap> aut:=RandomAutoma\ ton(\"det\",4,[a,b]);\n< deterministic automaton on 2 letters with 4 states >\ \n]]>\n \n\n
\n\n\n
Automata internals\nIn this section we describe the functions u\ sed to access the internals of an automaton.\n\n \n\n\n\nReturns the number of symb\ ols in the alphabet of automaton aut.\n aut:=Au\ tomaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],[4]);;\ngap> AlphabetOfAutomaton(a\ ut);\n2\n]]>\n \n\n\n \n\n\n\nReturns th\ e alphabet of automaton aut always\nas a list.\n\n Note that when the a\ lphabet of the automaton is given as an integer \n(meaning the number of symbo\ ls) \nnot greater than 26 it returns the list \"abcd....\".\nIf the alp\ habet is given by means of an integer greater than 26, the \nfunction returns \ [ \"a1\", \"a2\", \"a3\", \"a4\", ... ].\n a:=R\ andomAutomaton(\"det\",5,\"cat\");\n< deterministic automaton on 3 letters wit\ h 5 states >\ngap> AlphabetOfAutomaton(a);\n3\ngap> AlphabetOfAutomatonAsList(\ a);\n\"cat\"\ngap> a:=RandomAutomaton(\"det\",5,20);\n< deterministic automato\ n on 20 letters with 5 states >\ngap> AlphabetOfAutomaton(a);\n20\ngap> Alphab\ etOfAutomatonAsList(a);\n\"abcdefghijklmnopqrst\"\ngap> a:=RandomAutomaton(\"d\ et\",5,30);\n< deterministic automaton on 30 letters with 5 states >\ngap> Alp\ habetOfAutomaton(a);\n30\ngap> AlphabetOfAutomatonAsList(a);\n[ \"a1\", \"a2\"\ , \"a3\", \"a4\", \"a5\", \"a6\", \"a7\", \"a8\", \"a9\", \"a10\", \"a11\", \n\ \"a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a17\", \"a18\", \"a19\", \"a2\ 0\", \"a21\",\n \"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\"\ , \"a29\", \"a30\" ]\n]]>\n \n\n\n\n \n\n\n\nReturns the transition matrix of automaton aut.\n aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],[4]);;\ngap> Tran\ sitionMatrixOfAutomaton(aut);\n[ [ 3, 0, 3, 4 ], [ 3, 4, 0, 0 ] ]\n]]>\n \n\n\n \n\n\n\nReturns the initial states of a\ utomaton aut.\n aut:=Automaton(\"det\",4,2,[[3,\ ,3,4],[3,4,0,]],[1],[4]);;\ngap> InitialStatesOfAutomaton(aut);\n[ 1 ]\n]]>\n \n\n\n \n\n\n\nSets the initial sta\ tes of automaton aut.\nI may be a positive integer or a list of \ positive integers.\n aut:=Automaton(\"det\",4,2,[[3,,3\ ,4],[3,4,0,]],[1],[4]);;\ngap> SetInitialStatesOfAutomaton(aut,4);\ngap> Initi\ alStatesOfAutomaton(aut);\n[ 4 ]\ngap> SetInitialStatesOfAutomaton(aut,[2,3]);\ \ngap> InitialStatesOfAutomaton(aut);\n[ 2, 3 ]\n]]>\n\ \n\n\n \n\n\n\nReturns the final states of automaton aut.\ \n aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],\ [4]);;\ngap> FinalStatesOfAutomaton(aut);\n[ 4 ]\n]]>\n \n\n\n \n\n\n\nSets the final states of automaton aut.\nF may be a positive integer or a list of positive integers.\n aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],[4]);;\n\ gap> FinalStatesOfAutomaton(aut);\n[ 4 ]\ngap> SetFinalStatesOfAutomaton(aut,2\ );\ngap> FinalStatesOfAutomaton(aut);\n[ 2 ]\n]]>\n \n\n\n \n\n\n\nReturns the number of states of automaton aut.\ \n aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],\ [4]);;\ngap> NumberStatesOfAutomaton(aut);\n4\n]]>\n <\ /ManSection>\n\n
\n\n\n\n
Comparison of automata\nAlthough there is no standard way to compare automata it is usefull to\ be able to do some kind of comparison. Doing so, one can consider sets of aut\ omata.\n We just compare the strings of the automata.\n\ngap> x:=Automato\ n(\"det\",3,2,[ [ 0, 2, 0 ], [ 0, 1, 0 ] ],[ 3 ],[ 2 ]);;\ngap> y:=Automaton(\ \"det\",3,2,[ [ 2, 0, 0 ], [ 1, 3, 0 ] ],[ 3 ],[ 2, 3 ]);;\ngap> x=y;\nfalse\n\ gap> Size(Set([y,x,x]));\n2\n\n
\n
Tests invol\ ving automata\n\nThis section describes some useful tests involving \ automata.\n\n \n\n\n\nTests whether a deterministic automaton aut is complete. \ \n(See also .) \n aut:=Automaton(\"det\",4,2,[[3,,3,4],[3,4,0,]],[1],[4]);;\ngap> IsDenseAut\ omaton(aut); \nfalse\n]]>\n \n\n \n\n\nThe arguments are: an automaton A and a st\ ring (i.e. a word) w in the alphabet of the automaton. \nReturns tru\ e if the word is recognized by the automaton \n and false otherwise\ . \n\n aut:=Automaton(\"det\",3,2,[[1,2,1],[2,1,3]],[1\ ],[2]);;\ngap> IsRecognizedByAutomaton(aut,\"bbb\");\ntrue\n\ngap> aut:=Automa\ ton(\"det\",3,\"01\",[[1,2,1],[2,1,3]],[1],[2]);;\ngap> IsRecognizedByAutomato\ n(aut,\"111\");\ntrue\n]]>\n \n\n\n\n\n\nTh\ e argument is a deterministic automaton. Returns true when each letter \ of the alphabet induces a permutation on the vertices and false otherwi\ se. x:=Automaton(\"det\",3,2,[ [ 1, 2, 3 ], [ 1, 2, 3\ ] ],[ 1 ],[ 2, 3 ]);;\ngap> IsPermutationAutomaton(x);\ntrue\n]]>\n\ \n\n\n\n\nThe argument is a deterministic automaton. Re\ turns true when each letter of the alphabet induces an injective partia\ l function on the vertices and false otherwise. x:=Automaton(\"det\",3,2,[ [ 0, 1, 3 ], [ 0, 1, 2 ] ],[ 2 ],[ 1 ]);;\ngap> I\ sInverseAutomaton(x);\ntrue\n]]>\n\nFrequently an inverse automaton \ is thought as if the inverse edges (labeled by formal inverses of the letters \ of the alphabet) were present, although they are usually not explicited. They \ can be made explicit using the function AddInverseEdgesToInverseAutomaton\n \n\n\n\n\nThe argument is an inverse \ automaton over the alphabet \\{a,b,c,\\ldots\\}. Returns an automaton w\ ith the inverse edges added. (The formal inverse of a letter is represented by\ the corresponding capital letter.)\n x:=Automaton(\"\ det\",3,2,[[ 0, 1, 3 ],[ 0, 1, 2 ]],[ 2 ],[ 1 ]);;Display(x);\n | 1 2 3\n\ --------------\n a | 1 3\n b | 1 2\nInitial state: [ 2 ]\nAcceptin\ g state: [ 1 ]\ngap> AddInverseEdgesToInverseAutomaton(x);Display(x);\n | 1\ 2 3\n--------------\n a | 1 3\n b | 1 2\n A | 2 3\n B | 2 \ 3\nInitial state: [ 2 ]\nAccepting state: [ 1 ]\n]]>\n \n\n\n\n\nThe argument is a deterministic automaton. \nReturns true when aut is a reversible automaton, i.e. the automaton obtain\ ed by reversing all edges and switching the initial and final states \n(see al\ so ) is deterministic. Returns false o\ therwise.\n x:=Automaton(\"det\",3,2,[ [ 0, 1, 2 ], [ \ 0, 1, 3 ] ],[ 2 ],[ 2 ]);;\ngap> IsReversibleAutomaton(x);\ntrue\n]]>\n \n\n
\n\n
Basic opera\ tions\n\n\n\n\ \n\nReturns a new automaton, which is a copy of automaton aut<\ /A>.\n \n\n\n \n\n\n\naut is a determinis\ tic automaton. If it is complete returns aut,\notherwise returns the co\ mpletion (with a null state) of aut. Notice that the words recognized b\ y aut and its completion are the same.\n aut:=\ Automaton(\"det\",4,2,[[3,,3,4],[2,4,4,]],[1],[4]);;\ngap> IsDenseAutomaton(au\ t);\nfalse\ngap> y:=NullCompletionAutomaton(aut);;Display(y);\n | 1 2 3 \ 4 5\n--------------------\n a | 3 5 3 4 5\n b | 2 4 4 5 5\nInitial \ state: [ 1 ]\nAccepting state: [ 4 ]\n]]>\n\nThe state added is a \ sink state i.e. it is a state q which is not initial nor a\ ccepting and for all letter a in the alphabet of the automaton, q is the result of the action of a in q. (Notice that reading \ \na word, one does not go out of a sink state.) \n \n\n\n\n\nComputes the list of all sink states of the automaton aut.\n x:=Automaton(\"det\",3,2,[ [ 2, 3, 3 ], [ 1, 2, 3 ] ],[ 1 \ ],[ 2, 3 ]);;\ngap> ListSinkStatesAut(x);\n[ ]\ngap> y:=Automaton(\"det\",3,2\ ,[ [ 2, 3, 3 ], [ 1, 2, 3 ] ],[ 1 ],[ 2 ]);;\ngap> ListSinkStatesAut(y);\n[ 3 \ ]\n]]>\n \n\n\n\n\nRemoves all sink states of\ the automaton aut.\n y:=Automaton(\"det\",3,2,\ [[ 2, 3, 3 ],[ 1, 2, 3 ]],[ 1 ],[ 2 ]);;Display(y);\n | 1 2 3\n----------\ ----\n a | 2 3 3\n b | 1 2 3\nInitial state: [ 1 ]\nAccepting state: [\ 2 ]\ngap> x := RemovedSinkStates(y);Display(x);\n< deterministic automaton on\ 2 letters with 2 states >\n | 1 2\n-----------\n a | 2\n b | 1 2\nInit\ ial state: [ 1 ]\nAccepting state: [ 2 ]\n]]>\n \n\n\n\n\ \nInverts the arrows of the automaton aut.\n y:=Automaton(\"det\",3,2,[ [ 2, 3, 3 ], [ 1, 2, 3 ] ],[ 1 ],[ 2 ]);\ ;\ngap> z:=ReversedAutomaton(y);;Display(z);\n | 1 2 3\n-------\ -----------------------\n a | [ 1 ] [ 2, 3 ]\n b | [ 1 ] [ 2 ] [\ 3 ]\nInitial state: [ 2 ]\nAccepting state: [ 1 ]\n]]>\n \n\n\n\n\n\nGiven an automaton aut and a list p representing a permutation of the states,\noutputs the equivalent permuted a\ utomaton.\n y:=Automaton(\"det\",4,2,[[2,3,4,2],[0,0,0\ ,1]],[1],[3]);;Display(y);\n | 1 2 3 4\n-----------------\n a | 2 3 4\ 2\n b | 1\nInitial state: [ 1 ]\nAccepting state: [ 3 ]\ngap> Di\ splay(PermutedAutomaton(y, [3,2,4,1]));\n | 1 2 3 4\n-----------------\n\ a | 2 4 2 1\n b | 3\nInitial state: [ 3 ]\nAccepting state: [ 4 ]\n]]>\ \n \n\n\n\n\n\n\nGiven an automaton aut\ , returns a list of automata with permuted states\n x:=Automaton(\"det\",3,2,[ [ 0, 2, 3 ], [ 1, 2, 3 ] ],[ 1 ],[ 2, 3 ]);;\ngap\ > ListPermutedAutomata(x);\n[ < deterministic automaton on 2 letters with 3 st\ ates >, \n < deterministic automaton on 2 letters with 3 states >, \n < dete\ rministic automaton on 2 letters with 3 states >, \n < deterministic automato\ n on 2 letters with 3 states >, \n < deterministic automaton on 2 letters wit\ h 3 states >, \n < deterministic automaton on 2 letters with 3 states > ]\n]]\ >\n \n \n\n\n\n\nProduces an equivalent automa\ ton but in which the initial state is numbered 1 and the accepting states have\ the greatest numbers.\n x:=Automaton(\"det\",3,2,[[ 1\ , 2, 0 ],[ 0, 1, 2 ]],[2],[1, 2]);;Display(x);\n | 1 2 3\n--------------\ \n a | 1 2\n b | 1 2\nInitial state: [ 2 ]\nAccepting states: [ 1, 2\ ]\ngap> Display(NormalizedAutomaton(x));\n | 1 2 3\n--------------\n a |\ 1 3\n b | 3 1\nInitial state: [ 1 ]\nAccepting states: [ 3, 1 ]\n]]\ >\n \n\n\n\n\nProduces the disjoint union of the \ deterministic or non deterministic automata A and B. The output \ is a non-deterministic automaton.\n x:=Automaton(\"det\ \",3,2,[ [ 1, 2, 0 ], [ 0, 1, 2 ] ],[ 2 ],[ 1, 2 ]);;\ngap> y:=Automaton(\"det\ \",3,2,[ [ 0, 1, 3 ], [ 0, 0, 0 ] ],[ 1 ],[ 1, 2, 3 ]);;\ngap> UnionAutomata(x\ ,y);\n< non deterministic automaton on 2 letters with 6 states >\ngap> Display\ (last);\n | 1 2 3 4 5 6\n-----------------------\ -------------------------\n a | [ 1 ] [ 2 ] [ 4 ] [ 6 ]\n b\ | [ 1 ] [ 2 ]\nInitial states: [ 2, 4 ]\nAccepting states: [ 1, 2\ , 4, 5, 6 ]\n]]>\n \n\n \n\ \n\nThe arguments \ must be deterministic automata. Returns the product of A1 and A2\ . \n

\n Note: (p,q)->(p-1)m+q is a bijection from \\{1,\\ldots, n\ \\}\\times \\{1,\\ldots, m\\} to \\{1,\\ldots,mn\\}.\n x:=RandomAutomaton(\"det\",3,2);;Display(x);\n | 1 2 3\n-----\ ---------\n a | 2 3\n b | 1\nInitial state: [ 3 ]\nAccepting states: \ [ 1, 2, 3 ]\ngap> y:=RandomAutomaton(\"det\",3,2);;Display(y);\n | 1 2 3\ \n--------------\n a | 1\n b | 1 3\nInitial state: [ 3 ]\nAccepting s\ tates: [ 1, 3 ]\ngap> z:=ProductAutomaton(x, y);;Display(z);\n | 1 2 3 4\ 5 6 7 8 9\n--------------------------------\n a | 4 7\n b | \ 1 3\nInitial state: [ 9 ]\nAccepting states: [ 1, 3, 4, 6, 7, 9 ]\ \n]]>\n \n \n\n\n \n\n\nGiven two regular lan\ guages (as automata or rational expressions),\nreturns an automaton that recog\ nizes the concatenation of the given \nlanguages, that is, the set of words uv such that\nu belongs to the first language and v\nbelong\ s to the second language.\n a1:=ListOfWordsToAutomaton\ (\"ab\",[\"aa\",\"bb\"]);\n< deterministic automaton on 2 letters with 5 state\ s >\ngap> a2:=ListOfWordsToAutomaton(\"ab\",[\"a\",\"b\"]);\n< deterministic a\ utomaton on 2 letters with 3 states >\ngap> ProductOfLanguages(a1,a2);\n< dete\ rministic automaton on 2 letters with 5 states >\ngap> FAtoRatExp(last);\n(bbU\ aa)(aUb)\n]]>\n \n \n\n\n

\nLinks with Semigroups\n\nEach letter of the alphabet o\ f an automaton induces a partial transformation in its set of \nstates. The se\ migroup generated by these transformations is\ncalled the transition semigr\ oup of the automaton.\n\n \n\n\n\nReturns the transition semigroup of the deter\ ministic automaton aut.\n aut := Automaton(\"de\ t\",10,2,[[7,5,7,5,4,9,10,9,10,9],\n> [8,6,8,9,9,1,3,1,9,9]],[2],[6,7,8,9,10])\ ;;\ngap> s := TransitionSemigroup(aut);; \ngap> Size(s); \ \n30\n]]>\n\nThe t\ ransition semigroup of the minimal automaton recognizing a language is\nthe {\ \\it syntactic semigroup} of that language.\n\n \ \n \n\n\n\nReturns the syntactic semigroup of the deterministic automaton aut\ (i.e. the transition semigroup of the equivalent minimal automaton)\nwhen\ it is non empty and returns fail otherwise. \n\ x:=Automaton(\"det\",3,2,[ [ 1, 2, 0 ], [ 0, 1, 2 ] ],[ 2 ],[ 1, 2 ]);;\ngap>\ S:=SyntacticSemigroupAut(x);;\ngap> Size(S);\n3\n]]>\n \n \n\n\nReturns the syntactic semigroup of the language given b\ y the rational expression rat.\n rat := Rationa\ lExpression(\"a*ba*ba*(@Ub)\");;\ngap> S:=SyntacticSemigroupLang(rat);;\ngap> \ Size(S);\n7\n]]>\n \n\n \n\n\n\n\n\n\nRational languages\nRationa\ l languages are conveniently represented through rational expressions. These a\ re finite expressions involving letters of the alphabet; concatenation,\ corresponding to the product; the symbol U, corresponding to th\ e union; and the symbol *, corresponding to the Kleene's star.\ \nrational expressions\n\n
Rational Expression\ s\nThe expressions @ and \"empty\\_set\" are used to r\ epresent the empty word and the empty set respectively.\n\n\n \n<\ Func Name=\"RationalExpression\" Arg=\" expr[, alph] \"/>\n\nA ra\ tional expression can be created using the function RationalExpression.\ expr is a string representing the desired expression literally and \ alph (may or may not be present) is the alphabet of the expression. Of cou\ rse alph must not contain the symbols '@', '(', ')', '*' nor 'U'. When \ alph is not present, the alphabet of the rational expression is the set\ of symbols (other than '\"', etc...) occurring in the expression. (The alphab\ et is then ordered with the alphabetical order.)\n Rat\ ionalExpression(\"abUc\");\nabUc\ngap> RationalExpression(\"ab*Uc\");\nab*Uc\n\ gap> RationalExpression(\"001U1*\");\n001U1*\ngap> RationalExpression(\"001U1*\ \",\"012\");\n001U1*\n]]>\n\n\n\n\n \n\n\nThis is another way to construct a rational expression over an alph\ abet. The user may specify the alphabet or just give the number n of le\ tters (in this case the alphabet \\{a,b,c,\\ldots\\} is considered). <\ A>operation is the name of an operation, the possibilities\nbeing: prod\ uct, union or star. list is a list\n of rational expr\ essions, a rational expression in the case of\n``star'', or a \nlist consistin\ g of an integer when the rational expression is a single\nletter. The empty li\ st [ ] and empty\\_set are other possibilities for\nlist\ . \n\nAn example follows\n RatExpOnnLetters(2,\"star\"\ ,RatExpOnnLetters(2,\"product\",\n> [RatExpOnnLetters(2,[],[1]),RatExpOnnLette\ rs(2,\"union\",\n> [RatExpOnnLetters(2,[],[1]),RatExpOnnLetters(2,[],[2])])]))\ ; \n(a(aUb))*\n]]>\n \nThe empty word and the empty set are the\ rational expressions:\n RatExpOnnLetters(2,[],[]); \ \n@\ngap> RatExpOnnLetters(2,[],\"empty_set\");\nempty_set\n]]>\n \n\n \n\n\nGiven the number of symbols of the alphabet and\ (possibly) a factor m which is intended to increase the randomality of\ the expression,\nreturns a pseudo random rational expression over that alphab\ et.\n RandomRatExp(2);\nb*(@Ua)\ngap> RandomRatExp(\"0\ 1\");\nempty_set\ngap> RandomRatExp(\"01\");\n(0U1)*\ngap> RandomRatExp(\"01\"\ ,7);\n0*1(@U0U1)\n]]>\n \n \n\n \n\n\nReturns the size, i\ .e. the number of symbols of the alphabet, of the rational expression r\ .\n a:=RationalExpression(\"0*1(@U0U1)\");\n0*1(@U0U1)\ \ngap> SizeRatExp(a);\n5\n]]>\n \n \n\n \n\n\nT\ ests whether an object is a rational expression.\n r :\ = RandomRatExp(\"01\",7);\n1(0U1)U@\ngap> IsRatExpOnnLettersObj(r) and IsRatio\ nalExpressionRep(r);\ntrue\ngap> IsRationalExpression(RandomRatExp(\"01\"));\n\ true\n]]>\n \n \n\n \n\n\n\nReturns the number of s\ ymbols in the alphabet of the rational expression R.\n r:=RandomRatExp(2);\na*(ba*U@)\ngap> AlphabetOfRatExp(r);\n2\ngap> r:=\ RandomRatExp(\"01\");\n1*(01*U@)\ngap> AlphabetOfRatExp(r);\n2\ngap> a:=Random\ Transformation(3);;\ngap> b:=RandomTransformation(3);;\ngap> r:=RandomRatExp([\ a,b]);\n(Transformation( [ 1, 1, 3 ] )UTransformation( [ 1, 1, 2 ] ))*\ngap> A\ lphabetOfRatExp(r);\n2\n]]>\n \n\n\n \n\n\n\n\ Returns the alphabet of the rational expression R always\nas a list.\nI\ f the alphabet of the rational expression is given by means of an integer\nles\ s than 27 it returns the list \"abcd....\",\notherwise returns [ \"a\ 1\", \"a2\", \"a3\", \"a4\", ... ].\n r:=RandomRat\ Exp(2);\n(aUb)((aUb)(bU@)U@)U@\ngap> AlphabetOfRatExpAsList(r);\n\"ab\"\ngap> \ r:=RandomRatExp(\"01\");\n1*(0U@)\ngap> AlphabetOfRatExpAsList(r);\n\"01\"\nga\ p> r:=RandomRatExp(30);;\ngap> AlphabetOfRatExpAsList(r);\n[ \"a1\", \"a2\", \ \"a3\", \"a4\", \"a5\", \"a6\", \"a7\", \"a8\", \"a9\", \"a10\", \"a11\", \n\"\ a12\", \"a13\", \"a14\", \"a15\", \"a16\", \"a17\", \"a18\", \"a19\", \"a20\",\ \"a21\", \n\"a22\", \"a23\", \"a24\", \"a25\", \"a26\", \"a27\", \"a28\", \"a\ 29\", \"a30\" ]\n]]>\n \n\n\n\ \n\n\nReturns a new rationa\ l expression, which is a copy of R.\n r:=Random\ RatExp(2);\na*(bU@)\ngap> CopyRatExp(r);\na*(bU@)\n]]>\n \n\n
\n\n
Comparison of rational\ expressions\nThe way two rational expressions r1 and r2 are compared through the\n\n$$\n\n\n<\n operator is the following:\nthe empty set is l\ esser than everything else;\nif r1 and r2 are letters, then the lesser is take\ n from the order in the alphabet;\nif r1 is a letter an r2 a product, union or\ star, then r1 is lesser than r2;\na star expression is considered to be lesse\ r than a product or union expression\nand a product lesser than a union;\nto c\ ompare two star expressions we compare the expressions under the stars;\nto co\ mpare two product or union expressions we compare the subexpressions of\neach \ expression from left to right;\n
\n\n\n
Operations w\ ith rational languages\n\nOnly operations with rational languages ov\ er the same alphabet are allowed.\n

\nWe may compute expressions for the \n\ product, union and star (i.e.,\nsubmonoid generated by) o\ f rational sets. In some cases,\nsimpler expressions representing the same set\ are returned. \nNote that that two simplifications are always made, namely\ ,\n\n$r\\cup\"empty_set\" = r$\n\n\nrU\"empty_set\" = r\n\n and \n\n$r\\epsilon = r$\ \n\n\nr@ = r\n.\n\n\nOf course, these operation\ s may be used to construct more complex\nexpressions. \n\nFor rational express\ ions we have the functions UnionRatExp, ProductRatExp, StarRa\ tExp, that return respectively rational expressions for the union a\ nd product of \nthe languages given by the rational expressions r and s and the star of\nthe language given by the rational expr\ ession r.\n \n\n \n\n \n\n <\ /ManSection> \n\n \n\n\n\n\nThe expression (a(aUb))* may be produced in the following\ way\n r1 := RatExpOnnLetters(2,[],[1]); \na\ngap> r2 \ := RatExpOnnLetters(2,[],[2]);\nb\ngap> r3 := UnionRatExp(r1,r2);\naUb\ngap> r\ 4 := ProductRatExp(r1,r3);\na(aUb)\ngap> r5 := StarRatExp(r4);\n(a(aUb))*\n]]>\ \n \n

\n
\n\n\n\n\n\nSome functions involving automat\ a\nThis chapter describes some functions involving automata. It star\ ts with functions to obtain equivalent automata of other type. Then the minima\ lization is considered.\n\n
From one type to another\nRecall that two automata are said to be equivalent when they recognize the \ same language.\nNext we have functions which have as input automata of one typ\ e and as output equivalent automata of another type.\n\n \n\n\nA is an automaton with\ \\epsilon-transitions. Returns a NFA\nrecognizing the same language.\n\ x:=RandomAutomaton(\"epsilon\",3,2);;Display(x);\n \ | 1 2 3\n------------------------------------\n a | [ 2 ] \ [ 3 ] [ 2 ]\n b | [ 1, 2 ] [ 1, 2 ] [ 1, 3 ]\n @ | [ 1, 2 ] [ 1\ , 2 ] [ 1, 2 ]\nInitial states: [ 2, 3 ]\nAccepting states: [ 1, 2, 3 ]\ng\ ap> Display(EpsilonToNFA(x));\n | 1 2 3\n-------------\ -----------------------------\n a | [ 1, 2 ] [ 1, 2, 3 ] [ 1, 2 ]\n b | [ \ 1, 2 ] [ 1, 2 ] [ 1, 2, 3 ]\nInitial states: [ 1, 2, 3 ]\nAccepting s\ tates: [ 1, 2, 3 ]\n]]>\n \n \n\n\n \n\n\nA i\ s an automaton with \\epsilon-transitions. Returns a NFA\nrecognizing t\ he same language. This function differs from \nin \ that it is faster for smaller automata, or automata with few\nepsilon transiti\ ons, but slower in the really hard cases.\n \n \n\n\ \n\n \n\n\nA is an automaton with \\epsilon-transitions. Returns an \n<\ M>\\epsilonNFA with\neach strongly-connected component of the\nepsilon-tra\ nsitions digraph of A identified with a single state and\nrecognizing t\ he same language.\n x:=RandomAutomaton(\"epsilon\",3,2\ );;Display(x);\n | 1 2 3\n-------------------------------\ -----\n a | [ 1, 2 ] [ 1, 3 ] [ 1, 2 ]\n b | [ 1, 2 ] [ 1, 2 ] [ 2, 3 \ ]\n @ | [ 3 ] [ 2 ]\nInitial state: [ 3 ]\nAccepting states\ : [ 1, 3 ]\ngap> Display(EpsilonCompactedAut(x));\n | 1 2\n-------\ ------------------\n a | [ 1, 2 ] [ 1, 2 ]\n b | [ 1, 2 ] [ 1, 2 ]\n @ |\n\ Initial state: [ 2 ]\nAccepting states: [ 1, 2 ]\n]]>\n \n \n\n\n\n \n\n\nA is a non deterministic automaton (without \\e\ psilon-transitions). Returns an \nNFA accepting\nthe same language as its \ input but with possibly fewer states (it \nquotients out\nby the smallest righ\ t-invariant partition of the states). A paper describing\nthe algorithm is in \ preparation.\n x:=RandomAutomaton(\"nondet\",5,2);;Dis\ play(x);\n | 1 2 3 4 5\n\ ----------------------------------------------------------------------\n a | [\ 1, 5 ] [ 1, 2, 4, 5 ] [ 1, 3, 5 ] [ 3, 4, 5 ] [ 4 ]\n b | [ 2, 3, \ 4 ] [ 3 ] [ 2, 3, 4 ] [ 2, 4, 5 ] [ 3 ]\nInitial state: [ \ 4 ]\nAccepting states: [ 1, 3, 4, 5 ]\ngap> Display(ReducedNFA(x));\n | 1 \ 2 3 4\n---------------------------------------\ -----------------\n a | [ 1, 3 ] [ 1, 2, 3, 4 ] [ 4 ] [ 1, 3, 4 ]\n b\ | [ 1, 2, 4 ] [ 1 ] [ 1 ] [ 2, 3, 4 ]\nInitial state: [ 4 ]\ \nAccepting states: [ 1, 3, 4 ]\n]]>\n \n\ \n\n\n\n \n\n\nGi\ ven an NFA, these synonym functions, compute the equivalent DFA, using the pow\ erset construction,\naccording to the algorithm presented in the report of the\ AMoRE program. \nThe returned automaton is dense det\ erministic\n x:=RandomAutomaton(\"nondet\",3,2);;Displ\ ay(x);\n | 1 2 3\n---------------------------\n a | [ 2 ] [\ 1, 3 ]\n b | [ 2, 3 ]\nInitial states: [ 1, 3 ]\nAccepting sta\ tes: [ 1, 2 ]\ngap> Display(NFAtoDFA(x));\n | 1 2 3\n--------------\n a |\ 2 2 1\n b | 3 3 3\nInitial state: [ 1 ]\nAccepting states: [ 1, 2, 3\ ]\n]]>\n \n \n\n\n \n\n\nGiven an automaton \ A and integers s1 and s2 which, returns an NFA\nobtained \ by replacing all transitions through s2 by transitions through s1.\n x:=RandomAutomaton(\"det\",3,2);;Display(x);\n \ | 1 2 3\n--------------\n a | 2 3\n b | 1\nInitial state: [ 3 ]\nA\ ccepting states: [ 1, 2, 3 ]\ngap> Display(FuseSymbolsAut(x,1,2));\n | 1 \ 2 3\n---------------------------\n a | [ 2 ] [ 1, 3 ]\nInitial \ state: [ 3 ]\nAccepting states: [ 1, 2, 3 ]\n]]>\n \ \n \n\n\n\n
\n\n\n
Minimalization of an\ automaton\nThe algorithm used to minimalize a dense deterministic a\ utomaton (i.e., to\ncompute a dense minimal \nautomaton recognizing the same l\ anguage) is based on an algorithm due to\nHopcroft (see \ ). It is well known (see ) that it suffices\nto reduce th\ e automaton given and remove the inaccessible states. Again, the\ndocumentatio\ n for the computer program AMoRE has been very useful\ .\n\n \n\n\ \nGiven an automaton A (deterministic or not), outputs a dense DFA B\ whose states are all reachable and such that A and B are eq\ uivalent.\n x:=RandomAutomaton(\"det\",4,2);;Display(x\ );\n | 1 2 3 4\n-----------------\n a | 3 4\n b | 1 4\nInitial st\ ate: [ 3 ]\nAccepting states: [ 2, 3, 4 ]\ngap> Display(UsefulAutomaton(x))\ ;\n | 1 2 3\n--------------\n a | 2 3 3\n b | 3 3 3\nInitial state:\ [ 1 ]\nAccepting states: [ 1, 2 ]\n]]>\n \n \n\n \n\n\nReturns the minimal automaton equivalent to A.\n x:=RandomAutomaton(\"det\",4,2);;Display(x);\n | 1 2 3 4\n------\ -----------\n a | 3 4\n b | 1 2 3\nInitial state: [ 4 ]\nAccepting \ states: [ 2, 3, 4 ]\ngap> Display(MinimalizedAut(x));\n | 1 2\n-----------\ \n a | 2 2\n b | 2 2\nInitial state: [ 1 ]\nAccepting state: [ 1 ]\n]]><\ /Example>\n \n \n\n \n\n\nReturns the minimal automaton equi\ valent to A, but stores it so that\nfuture computations of this automat\ on just return the stored automaton.\n x:=RandomAutoma\ ton(\"det\",4,2);;Display(x);\n | 1 2 3 4\n-----------------\n a | 2\ 4\n b | 3 4\nInitial state: [ 4 ]\nAccepting states: [ 1, 2, 3 ]\nga\ p> Display(MinimalAutomaton(x));\n | 1\n--------\n a | 1\n b | 1\nInitial\ state: [ 1 ]\nAccepting state:\n]]>\n \n \n\n \n\n\nComputes the list of states of the automaton aut \n which a\ re accessible from state p. When p is not given, returns the sta\ tes which are accessible from any initial state.\n x:=\ RandomAutomaton(\"det\",4,2);;Display(x);\n | 1 2 3 4\n-----------------\ \n a | 1 2 4\n b | 2 4\nInitial state: [ 2 ]\nAccepting states: \ [ 1, 2, 3 ]\ngap> AccessibleStates(x,3);\n[ 1, 2, 3, 4 ]\n]]>\n \n \n\n \n\n\n If A is a deterministic automaton, not\ necessarily dense, an \n equivalent dense deterministic accessible automaton \ is returned. \n (The function UsefulAutomaton is called.)\n

\n If <\ A>A is not deterministic with a single initial state, an equivalent \n acc\ essible automaton is returned.\n\n x:=RandomAutomaton(\ \"det\",4,2);;Display(x);\n | 1 2 3 4\n-----------------\n a | 1 3\n b\ | 1 3 4\nInitial state: [ 2 ]\nAccepting states: [ 3, 4 ]\ngap> Display\ (AccessibleAutomaton(x));\n | 1 2 3 4\n-----------------\n a | 2 4 4 \ 4\n b | 2 3 4 4\nInitial state: [ 1 ]\nAccepting states: [ 2, 3 ]\n]]>\ \n \n \n\n \n\n\n\nComputes an automaton that recognizes the intersec\ tion of the languages given (through automata or rational expressions by) A\ 1 and A2.\nWhen the arguments are deterministic automata, is the sa\ me as ProductAutomaton, but works for all kinds of automata. Note that the lan\ guage of the product of two automata is precisely the intersection of the lang\ uages of the automata.\n x:=RandomAutomaton(\"det\",3,\ 2);;Display(x);\n | 1 2 3\n--------------\n a | 2 3\n b | 1\nInitia\ l state: [ 3 ]\nAccepting states: [ 1, 2, 3 ]\ngap> y:=RandomAutomaton(\"de\ t\",3,2);;Display(y);\n | 1 2 3\n--------------\n a | 1\n b | 1 3\n\ Initial state: [ 3 ]\nAccepting states: [ 1, 3 ]\ngap> Display(Intersection\ Language(x,y));\n | 1 2\n-----------\n a | 2 2\n b | 2 2\nInitial stat\ e: [ 1 ]\nAccepting state: [ 1 ]\n]]>\n \n \n\n\n \n\n\nGiven an automaton A, with n states, outputs a n\ x n matrix P,\nsuch that P[i][j] is the list of simple paths from \ state i to\nstate j in A.\n a:=RandomAutomaton(\ \"det\",3,2);\n< deterministic automaton on 2 letters with 3 states >\ngap> Au\ tomatonAllPairsPaths(a);\n[ [ [ [ 1, 1 ] ], [ ], [ ] ], [ [ [ 2, 1 ] ], [ [ \ 2, 2 ] ], [ ] ],\n [ [ [ 3, 2, 1 ] ], [ [ 3, 2 ] ], [ [ 3, 3 ] ] ] ]\ngap> D\ isplay(a);\n | 1 2 3\n--------------\n a | 1 2\n b | 1 2 3\nIniti\ al state: [ 3 ]\nAccepting states: [ 1, 2 ]\n]]>\n \ \n \n\n\n

\n
\n\n\n\n\n\n\n\n\nFinite regular languages\nThis chapter describes some fu\ nctions to deal with finite regular languages.\n\n
Dealing wi\ th finite regular languages\n\n \n\n\nL is an automaton or a rat\ ional expression. This function tests\nwhether its argument represents a finit\ e language or not.\n RandomRatExp(2);\nb*(aU@)\ngap> I\ sFiniteRegularLanguage(last);\nfalse\ngap> RandomRatExp(2);\naUbU@\ngap> IsFin\ iteRegularLanguage(last);\ntrue\n]]>\n \n\ \n\n\n \n\n\nL is an automaton or a rational expression. \nThi\ s function outputs the recognized language as a list of words.\n r:=RationalExpression(\"aaUx(aUb)\"); \naaUx(aUb)\ngap> FiniteRe\ gularLanguageToListOfWords(r);\n[ \"aa\", \"xa\", \"xb\" ]\n]]>\n \n \n\n\n \n\n\nGiven an alphabet alph (a li\ st) and a list of\nwords L (a list of lists), outputs an automaton\ntha\ t recognizes the given list of words.\n ListOfWordsToA\ utomaton(\"ab\",[\"aaa\",\"bba\",\"\"]);\n< deterministic automaton on 2 lette\ rs with 6 states >\ngap> FAtoRatExp(last);\n(bbUaa)aU@\n]]>\n \n \n\n\n\n\n\n
\n\n\n\n\n\n\n\n\n\n\n\nDirected graphs\nAutomata are freq\ uently described through directed labeled graphs. This appendix on directed gr\ aphs (digraphs) is devoted to some functions designed with the purpose of bein\ g used as auxiliary functions to deal with automata, but may have independent \ interest.\n\n\n
Directed graphs\nA directed graph w\ ith n vertices is represented by an adjacency list.\n\nFor example, the\ list G = [[2,4],[3],[1,4],[]] represents a directed graph with 4 (=\ Length(G)) vertices; the sublist in position i is the list of endp\ oints of the edges beginning in vertex i.\n \n \ \\begin{figure}[htbp] \\begin{center} \\leavevmode \\includegraphics[bb=0 \ 0 132 299]{graph} \\end{center} \\label{fig:graph} \\end{figure}\n \n\ \n <br><center><img src="g\ raph.gif"></center><br>\n \n

\n\n \n\n\nProduces a\ pseudo random digraph with n vertices\n Random\ DiGraph(4);\n[ [ ], [ 1, 2, 4 ], [ ], [ ] ]\n]]>\n \ \n \n\n\n \n\n\nComputes the in degree of the vertex v of the dire\ cted graph DG\n G:=RandomDiGraph(4);\n[ [ 1 ], \ [ 1, 2, 4 ], [ ], [ 1, 2, 3 ] ]\ngap> VertexInDegree(G,2);\n2\n]]>\ \n \n \n\n\n \n\n\nComputes the out degree of the vertex v of the directed graph DG\n G:=RandomDiGr\ aph(4);\n[ [ 1 ], [ 1, 2, 4 ], [ ], [ 1, 2, 3 ] ]\ngap> VertexOutDegree(G,2);\ \n3\n]]>\n \n \n\n\n \n\n\nComputes the degree o\ f the vertex v of the directed graph DG\n G:=RandomDiGraph(4);\n[ [ 1 ], [ 1, 2, 4 ], [ ], [ 1, 2, 3 ] ]\ngap> AutoVe\ rtexDegree(G,2);\n5\n]]>\n \n \n\n\n\n\n<\ ManSection> \n\n\nCompute\ s the reversed graph of the directed graph G. It is the graph \nobtained from \ G by reversing the edges.\n G:=RandomDiGraph(4);\n[ [ \ ], [ 4 ], [ 2 ], [ 1, 4 ] ]\ngap> ReversedGraph(G);\n[ [ 4 ], [ 3 ], [ ], [ \ 2, 4 ] ]\n]]>\n \n \n\nWe say that a digr\ aph is connected when for every pair of vertices there \nis a path consisting \ of directed or reversed edges from one vertex to \nthe other.\n\n \ \n\n\nComputes \ a list of the connected components of the digraph\n\n \ G:=RandomDiGraph(6);\n[ [ ], [ 1, 4, 5, 6 ], [ ], [ 1, 3, 5, 6 ], [ 2, 3 ], \ [ 2, 4, 6 ] ]\ngap> AutoConnectedComponents(G);\n[ [ 1, 2, 3, 4, 5, 6 ] ]\n]]>\ \n \n\n \n\nTwo vertices of a digraph bel\ ong to a strongly connected component if there is a directed path from each on\ e to the other.

\n\n \n\n\nProduces the strongly connected components\ of the digraph G. \n G:=RandomDiGraph(6);\n[ [\ ], [ 4 ], [ ], [ 4, 6 ], [ ], [ 1, 4, 5, 6 ] ]\ngap> GraphStronglyConnecte\ dComponents(G);\n[ [ 1 ], [ 2 ], [ 3 ], [ 4, 6 ], [ 5 ] ]\n]]>\n \n \n\n \n\n\nA is an automaton. The outp\ ut is the underlying directed multi-graph.\n a:=Random\ Automaton(\"det\",3,2);;Display(a);\n | 1 2 3\n--------------\n a | 1 3\ \n b | 2 3\nInitial state: [ 1 ]\nAccepting states: [ 1, 2 ]\ngap> Und\ erlyingMultiGraphOfAutomaton(a);\n[ [ 1 ], [ 3, 2 ], [ 3 ] ]\n]]>\n<\ /Description> \n \n\n \n\n\nA is an automaton. The output \ is the underlying directed graph.\n a:=RandomAutomaton\ (\"det\",3,2);;Display(a);\n | 1 2 3\n--------------\n a | 1 2\n b |\ 1 2\nInitial state: [ 2 ]\nAccepting state: [ 2 ]\ngap> UnderlyingGraphOf\ Automaton(a);\n[ [ 1 ], [ 1, 2 ], [ 2 ] ]\n]]>\n \n \n\n \n\n\nReturns the relation corresponding to the digraph. Note that a di\ rected graph may be seen in a natural way as a binary relation on the set of v\ ertices.\n G:=RandomDiGraph(4);\n[ [ ], [ ], [ 4 ], \ [ 4 ] ]\ngap> DiGraphToRelation(G);\n[ [ 3, 4 ], [ 4, 4 ] ]\n]]>\n \n \n\n \n\n\nProduces an automaton where, in each strongly conne\ cted component,\nedges labeled by inverses are added. (M stands for modified.)\ \n

\nThis construction is useful in Finite Semigroup Theory.\n a:=RandomAutomaton(\"det\",3,2);;Display(a);\n | 1 2 3\n-----\ ---------\n a | 1 3\n b | 2 3\nInitial state: [ 1 ]\nAccepting states: \ [ 1, 2, 3 ]\ngap> MSccAutomaton(a);\n< deterministic automaton on 4 letters wi\ th 3 states >\ngap> Display(last);\n | 1 2 3\n--------------\n a | 1 3\ \n b | 2 3\n A | 1\n B |\nInitial state: [ 1 ]\nAccepting states: [ 1, 2\ , 3 ]\n]]>\n \n \n\n\n \n\n\nThe argument is a gr\ aph's list of adjacencies\nand this function returns true if the argument\nis \ an acyclic graph and false otherwise.\n RandomDiGraph(\ 3);\n[ [ ], [ 3 ], [ 2 ] ]\ngap> AutoIsAcyclicGraph(last);\nfalse\n]]>\n \n \n\n\n

\n
\n\n\n\n \ \n \n \n Drawing automata\n \n The\ drawing of graphs described here uses\n graphviz , a software for drawing graphs developed at AT\n \n \\&\n \n \n \n &amp;\n \n \n \ &\n \n \n T Labs, that can be obtained at\n \ http://www.graphviz.org/.\n
\n \n \ Installing some external programs\n \n In order to create\ the drawings you should install http://www.graphviz.or\ g/\n and to view them you should install one of http://www.gnome.org/projects/evince/,\n http:\ //directory.fsf.org/GNU/ggv.html,\n http://pag\ es.cs.wisc.edu/~ghost/gsview/ or\n http://www.gnu.\ org/software/gv/.\n
\n
\n \n \ Functions to draw automata\n \n \n <\ Func Arg=\"A [,state_names, L, file]\" Name=\"DrawAutomaton\" />\n \n This function draws automaton\n A.\n\t T\ he arguments state_names, L and file are optional.\n\n\t \

\n\t An automaton with n states will be drawn with numbers 1<\ /C> to n\n\t written inside the corresponding graph node.\n\t The arg\ ument state_names is a list of n strings which will be the new t\ ext\n\t written inside the corresponding graph node.\n\n\t

\n\t The ar\ gument L is a list of lists of integers, each of which specifies a set\ \n\t of states to be drawn in a different color.\n\n\t

\n\t The argume\ nt file is a string that specifies the name of the file containing the \ drawing.\n\t If it is not give, it defaults to \"automaton\".\n x:=Automaton(\"det\",3,2,[ [ 2, 3, 0 ], [ 0, 1, 2 ] ],[ 1 ],\ [ 1, 2, 3 ]);;\ngap> DrawAutomaton(x,\"file_name\");\nDisplaying file: /tmp/tm\ p.Rj0v1s/file_name.dot.ps\n\ngap> DrawAutomaton(x,[\"st 1\", \"2\", \"C\"],\"f\ ile_name\");\nDisplaying file: /tmp/tmp.BCH3FO/file_name.dot.ps\n\ngap> DrawAu\ tomaton(x,[\"st 1\", \"2\", \"C\"],[[2],[1,3]]);\nDisplaying file: /tmp/tmp.LP\ nJMq/automaton.dot.ps\n]]>\nThe output of the three previous Draw\ Automaton commands would be the following diagrams displayed in a ghost\ view window,\nrespectively.\n

\n \n \\begi\ n{figure}[htbp] \\begin{center} \\leavevmode \\includegraphics[bb=0 0 74 250]{\ aut2.jpg} \\end{center} \\label{fig:aut2} \\end{figure}\n \n \n <br><center><img src="aut2.jpg&#\ 34;></center><br>\n \n

\n \n \\begin{figure}[htbp] \\begin{center} \\leavevmode \\includegr\ aphics[bb=0 0 100 250]{aut2_1.jpg} \\end{center} \\label{fig:aut2_1} \\end{fig\ ure}\n \n \n <br><center>&\ #60;img src="aut2_1.jpg"></center><br>\n \ \n

\n \n \\begin{figure}[htbp] \\begin{cen\ ter} \\leavevmode \\includegraphics[bb=0 0 100 250]{aut2_2.jpg} \\end{center} \ \\label{fig:aut2_2} \\end{figure}\n \n \n \ <br><center><img src="aut2_2.jpg"></center\ ><br>\n \n

\n \n \n \n \n \n This function tests if automaton\ \n \n A\n \n is a subautomaton of\ \n \n B\n \n in which case draws\ \n \n B\n \n highlighting the edg\ es not in\n \n A\n \n by drawing \ them in a dotted style, while the others are drawn in a plain style.\n \ \n \n \n \n \n Draws a gr\ aph specified as an adjacency list\n G.\n \n \n \n \n \n D\ raws automaton\n \n A\n \n and hi\ ghlights it's strongly connected components by drawing the other edges in \ a dotted style.\n\t

\n\t The optional arguments state_names, \ L and file are as described in\n\t .\ \n \n \n

\n\n
\ \n Drawings output formats\n Since drawings are\ mostly used in the SgpViz package, please\n refer to\ that package's\n http://www.gap-system.org/Manuals\ /pkg/sgpviz/doc/manual.html\n section of the same name.\n \n \n
\n Drawings extra graph attribut\ es\n Since drawings are mostly used in the SgpViz package, please\n refer to that package's\n http://www.gap-system.org/Manuals/pkg/sgpviz/doc/manual.html\n \ section of the same name.\n
\n \n\n\n\n\nInverse automata and subgroups of the free group\n\nI\ nverse automata with a single initial/accepting state are in a one to one corr\ espondence with finitely generated subgroups of the free group over the alphab\ et of the automaton. See , f\ or details, as well as for concepts such as flower automaton and Sta\ llings foldings.\n\n\n
From subgroups to inverse automata\ \n\nA finitely generated subgroup of a finitely generated free group\ is given\nthrough a list whose first element is the number of generators of t\ he \nfree group and the remaining elements are the generators of the subgroup.\ \nThe set of generators of the free group of rank n consists on the \ n first letters of the set \\{a,b,c,d,e,f,g\\}. In particular, free\ groups of rank greater than 8 must not be considered. A formal inverse\ of a generator is represented by the corresponding capital letter.\n

\nA g\ enerator of the subgroup may be given through a string of letters or \nthrough\ a list of positive integers as should be clear from the example that follows.\ \n

\nFor example, [2,\"abA\",\"bbabAB\"] stands for the subgroup of\ the free group of rank 2\non the generators aba^{-1} and bbaba^{-1}\ b^{-1}.\nThe same subgroup may be given as [2,[1,2,3],[2,2,1,2,3,4]]. The number n+j represents the formal inverse of the generator repre\ sented by j. One can go from one representation to another, using the f\ ollowing functions.\n\n \n\n \n L:=[2,\"abA\",\"bb\ abAB\"];;\ngap> GeneratorsToListRepresentation(L);\n[ 2, [ 1, 2, 3 ], [ 2, 2, \ 1, 2, 3, 4 ] ]\n]]>\n \n \n\n\n \n\n\ \n K:=[2,[1,2,3],[2,2,1,2,3,4]];;\ngap> ListToGenerato\ rsRepresentation(K);\n[ 2, \"abA\", \"bbabAB\" ]\n]]>\n \n\n \n\ \n\nThe argument L is a subgroup of the free group given t\ hrough any \nof the representations described above. Returns the flower automa\ ton.\n W:=[2,\"bbbAB\",\"abAbA\"];;\ngap> A:=FlowerAut\ omaton(W);\n< non deterministic automaton on 2 letters with 9 states >\ngap> D\ isplay(A);\n | 1 2 3 4 5 6 7 8 \ 9\n---------------------------------------------------------------------\n a \ | [ 6, 9 ] [ 4 ] [ 7 ]\n b | [ 2, 5 ] \ [ 3 ] [ 4 ] [ 7 ] [ 9 ]\nInitial state: [ 1 ]\nAccep\ ting state: [ 1 ]\n]]>\n \n\n \n\n\n Makes iden\ tifications on the flower automaton A. In the literature, these identif\ ications are called Stallings foldings.\n

\n(This function may have true\ as a second argument. WARNING: the second argument should only be used wh\ en facilities to draw automata are available. In that case, one may visualize \ the identifications that are taking place.)\n B := Fol\ dFlowerAutomaton(A);\n< deterministic automaton on 2 letters with 7 states >\n\ gap> Display(B);\n | 1 2 3 4 5 6 7\n--------------------------\n a | \ 5 4 6\n b | 2 3 4 6 5\nInitial state: [ 1 ]\nAccep\ ting state: [ 1 ]\n]]>\n \n\n\ \n\nReturns the in\ verse automaton corresponding to the subgroup given by \nL.\n<\ ![CDATA[\ngap> L:=[2,\"bbbAB\",\"AbAbA\"];;\ngap> SubgroupGenToInvAut(L);\n< d\ eterministic automaton on 2 letters with 8 states >\ngap> Display(last);\n |\ 1 2 3 4 5 6 7 8\n-----------------------------\n a | 8 4 1 \ 6\n b | 2 3 4 6 8\nInitial state: [ 1 ]\nAccepting state: [ 1 \ ]\n\n]]>\n \n

\n
From inverse automata to subgroups\nGiven an inverse automaton wit\ h a single initial/accepting state, one can find a set of generators for the s\ ubgroup represented by the automaton. Moreover, using a geodesic tree, one can\ find a Nielsen reduced set of generators .\n\n \n\n\nReturns a subautomaton of Awhose underlying graph is a geodesic tre\ e of the underlying graph of the inverse automaton A. \n A:=Automaton(\"det\",4,2,[ [ 3, 4, 0, 0 ], [ 2, 3, 4, 0 ] ],[ 1 ],[\ 1 ]);;\ngap> G := GeodesicTreeOfInverseAutomaton(A);\n< deterministic automat\ on on 2 letters with 4 states >\ngap> Display(G);\n | 1 2 3 4\n---------\ --------\n a | 3\n b | 2 4\nInitial state: [ 1 ]\nAccepting state: [ 1\ ]\n]]>\n \n \n\n \n\n\nReturns a set o\ f generators (given trough the representation above) of the \nsubgroup of the \ free group corresponding to the automaton A given.\n NW := InverseAutomatonToGenerators(A);\n[ 2, \"baBA\", \"bbA\" ]\n]]>\n \n \n\n
\n\n\n\n\n\n\ \n\n\n\n\n\n\n\n", inputorigins := [ [ 1, "doc/AutMan.xml", 1 ], [ 40, "doc/AutMan.xml", 2 ], [ 41, "doc/AutMan.xml", 3 ], [ 77, "doc/AutMan.xml", 4 ], [ 78, "doc/AutMan.xml", 5 ], [ 128, "doc/AutMan.xml", 6 ], [ 129, "doc/AutMan.xml", 7 ], [ 153, "doc/AutMan.xml", 8 ], [ 154, "doc/AutMan.xml", 9 ], [ 166, "doc/AutMan.xml", 10 ], [ 192, "doc/AutMan.xml", 11 ], [ 214, "doc/../version", 1 ], [ 219, "doc/../version", 2 ], [ 220, "doc/AutMan.xml", 12 ], [ 221, "doc/AutMan.xml", 13 ], [ 224, "doc/AutMan.xml", 14 ], [ 237, "doc/AutMan.xml", 15 ], [ 264, "doc/AutMan.xml", 16 ], [ 301, "doc/AutMan.xml", 17 ], [ 360, "doc/AutMan.xml", 18 ], [ 372, "doc/AutMan.xml", 19 ], [ 398, "doc/AutMan.xml", 20 ], [ 441, "doc/AutMan.xml", 21 ], [ 506, "doc/AutMan.xml", 22 ], [ 518, "doc/AutMan.xml", 23 ], [ 549, "doc/AutMan.xml", 24 ], [ 593, "doc/AutMan.xml", 25 ], [ 605, "doc/AutMan.xml", 26 ], [ 690, "doc/AutMan.xml", 27 ], [ 768, "doc/AutMan.xml", 28 ], [ 833, "doc/AutMan.xml", 29 ], [ 834, "doc/AutMan.xml", 30 ], [ 845, "doc/AutMan.xml", 31 ], [ 846, "doc/AutMan.xml", 32 ], [ 906, "doc/AutMan.xml", 33 ], [ 958, "doc/AutMan.xml", 34 ], [ 1024, "doc/AutMan.xml", 35 ], [ 1100, "doc/AutMan.xml", 36 ], [ 1175, "doc/AutMan.xml", 37 ], [ 1205, "doc/AutMan.xml", 38 ], [ 1206, "doc/AutMan.xml", 39 ], [ 1286, "doc/AutMan.xml", 40 ], [ 1333, "doc/AutMan.xml", 41 ], [ 1396, "doc/AutMan.xml", 42 ], [ 1472, "doc/AutMan.xml", 43 ], [ 1562, "doc/AutMan.xml", 44 ], [ 1622, "doc/AutMan.xml", 45 ], [ 1627, "doc/AutMan.xml", 46 ], [ 1628, "doc/AutMan.xml", 47 ], [ 1700, "doc/AutMan.xml", 48 ], [ 1701, "doc/AutMan.xml", 49 ], [ 1779, "doc/AutMan.xml", 50 ], [ 1811, "doc/AutMan.xml", 51 ], [ 1812, "doc/AutMan.xml", 52 ], [ 1824, "doc/AutMan.xml", 53 ], [ 1825, "doc/AutMan.xml", 54 ], [ 1844, "doc/AutMan.xml", 55 ], [ 1845, "doc/AutMan.xml", 56 ], [ 1921, "doc/AutMan.xml", 57 ], [ 1997, "doc/AutMan.xml", 58 ], [ 2072, "doc/AutMan.xml", 59 ], [ 2140, "doc/AutMan.xml", 60 ], [ 2145, "doc/AutMan.xml", 61 ], [ 2209, "doc/AutMan.xml", 62 ], [ 2279, "doc/AutMan.xml", 63 ], [ 2331, "doc/AutMan.xml", 64 ], [ 2336, "doc/AutMan.xml", 65 ], [ 2414, "doc/AutMan.xml", 66 ], [ 2493, "doc/AutMan.xml", 67 ], [ 2498, "doc/AutMan.xml", 68 ], [ 2499, "doc/AutMan.xml", 69 ], [ 2642, "doc/AutMan.xml", 70 ], [ 2647, "doc/AutMan.xml", 71 ], [ 2652, "doc/AutMan.xml", 72 ], [ 2657, "doc/AutMan.xml", 73 ], [ 2685, "doc/AutMan.xml", 74 ], [ 2690, "doc/AutMan.xml", 75 ], [ 2695, "doc/AutMan.xml", 76 ], [ 2796, "doc/AutMan.xml", 77 ], [ 2840, "doc/AutMan.xml", 78 ], [ 3070, "doc/AutMan.xml", 79 ], [ 3090, "doc/AutMan.xml", 80 ], [ 3091, "doc/AutMan.xml", 81 ], [ 3104, "doc/AutMan.xml", 82 ], [ 3105, "doc/AutMan.xml", 83 ], [ 3124, "doc/AutMan.xml", 84 ], [ 3125, "doc/AutMan.xml", 85 ], [ 3132, "doc/AutMan.xml", 86 ], [ 3133, "doc/introduction.xml", 1 ], [ 3172, "doc/introduction.xml", 2 ] , [ 3219, "doc/introduction.xml", 3 ], [ 3231, "doc/introduction.xml", 4 ], [ 3245, "doc/introduction.xml", 5 ] , [ 3264, "doc/introduction.xml", 6 ], [ 3279, "doc/introduction.xml", 7 ], [ 3378, "doc/introduction.xml", 8 ] , [ 3388, "doc/introduction.xml", 9 ], [ 3411, "doc/introduction.xml", 10 ], [ 3547, "doc/introduction.xml", 11 ], [ 3558, "doc/introduction.xml", 12 ], [ 3580, "doc/introduction.xml", 13 ], [ 3680, "doc/introduction.xml", 14 ], [ 3691, "doc/introduction.xml", 15 ], [ 3701, "doc/introduction.xml", 16 ], [ 3761, "doc/introduction.xml", 17 ], [ 3769, "doc/introduction.xml", 18 ], [ 3777, "doc/introduction.xml", 19 ], [ 3786, "doc/introduction.xml", 20 ], [ 3822, "doc/introduction.xml", 21 ], [ 3830, "doc/introduction.xml", 22 ], [ 3848, "doc/introduction.xml", 23 ], [ 3857, "doc/introduction.xml", 24 ], [ 3893, "doc/introduction.xml", 25 ], [ 3901, "doc/introduction.xml", 26 ], [ 3909, "doc/introduction.xml", 27 ], [ 3918, "doc/introduction.xml", 28 ], [ 3937, "doc/introduction.xml", 29 ], [ 3945, "doc/introduction.xml", 30 ], [ 3953, "doc/introduction.xml", 31 ], [ 3962, "doc/introduction.xml", 32 ], [ 4020, "doc/introduction.xml", 33 ], [ 4028, "doc/introduction.xml", 34 ], [ 4036, "doc/introduction.xml", 35 ], [ 4045, "doc/introduction.xml", 36 ], [ 4063, "doc/introduction.xml", 37 ], [ 4071, "doc/introduction.xml", 38 ], [ 4079, "doc/introduction.xml", 39 ], [ 4088, "doc/introduction.xml", 40 ], [ 4131, "doc/introduction.xml", 41 ], [ 4139, "doc/introduction.xml", 42 ], [ 4153, "doc/introduction.xml", 43 ], [ 4162, "doc/introduction.xml", 44 ], [ 4304, "doc/introduction.xml", 45 ], [ 4312, "doc/introduction.xml", 46 ], [ 4320, "doc/introduction.xml", 47 ], [ 4329, "doc/introduction.xml", 48 ], [ 4335, "doc/introduction.xml", 49 ], [ 4343, "doc/introduction.xml", 50 ], [ 4354, "doc/introduction.xml", 51 ], [ 4363, "doc/introduction.xml", 52 ], [ 4369, "doc/introduction.xml", 53 ], [ 4377, "doc/introduction.xml", 54 ], [ 4391, "doc/introduction.xml", 55 ], [ 4400, "doc/introduction.xml", 56 ], [ 4522, "doc/introduction.xml", 57 ], [ 4532, "doc/introduction.xml", 58 ], [ 4831, "doc/introduction.xml", 59 ], [ 4841, "doc/introduction.xml", 60 ], [ 4950, "doc/introduction.xml", 61 ], [ 5143, "doc/introduction.xml", 62 ], [ 5153, "doc/introduction.xml", 63 ], [ 5415, "doc/introduction.xml", 64 ], [ 5425, "doc/introduction.xml", 65 ], [ 5765, "doc/introduction.xml", 66 ], [ 5775, "doc/introduction.xml", 67 ], [ 6382, "doc/introduction.xml", 68 ], [ 6383, "doc/introduction.xml", 69 ], [ 6394, "doc/introduction.xml", 70 ], [ 6405, "doc/introduction.xml", 71 ], [ 6583, "doc/introduction.xml", 72 ], [ 6594, "doc/introduction.xml", 73 ], [ 6780, "doc/introduction.xml", 74 ], [ 6791, "doc/introduction.xml", 75 ], [ 7006, "doc/introduction.xml", 76 ], [ 7017, "doc/introduction.xml", 77 ], [ 7030, "doc/AutMan.xml", 87 ], [ 7031, "doc/automata.xml", 1 ], [ 7070, "doc/automata.xml", 2 ], [ 7111, "doc/automata.xml", 3 ], [ 7112, "doc/automata.xml", 4 ], [ 7156, "doc/automata.xml", 5 ], [ 7157, "doc/automata.xml", 6 ], [ 7225, "doc/automata.xml", 7 ], [ 7297, "doc/automata.xml", 8 ], [ 7302, "doc/automata.xml", 9 ], [ 7370, "doc/automata.xml", 10 ], [ 7442, "doc/automata.xml", 11 ], [ 7514, "doc/automata.xml", 12 ], [ 7568, "doc/automata.xml", 13 ], [ 7573, "doc/automata.xml", 14 ], [ 7668, "doc/automata.xml", 15 ], [ 7738, "doc/automata.xml", 16 ], [ 7812, "doc/automata.xml", 17 ], [ 7834, "doc/automata.xml", 18 ], [ 7913, "doc/automata.xml", 19 ], [ 7949, "doc/automata.xml", 20 ], [ 7991, "doc/automata.xml", 21 ], [ 8043, "doc/automata.xml", 22 ], [ 8088, "doc/automata.xml", 23 ], [ 8159, "doc/automata.xml", 24 ], [ 8160, "doc/automata.xml", 25 ], [ 8243, "doc/automata.xml", 26 ], [ 8291, "doc/automata.xml", 27 ], [ 8292, "doc/automata.xml", 28 ], [ 8370, "doc/automata.xml", 29 ], [ 8457, "doc/automata.xml", 30 ], [ 8458, "doc/automata.xml", 31 ], [ 8508, "doc/automata.xml", 32 ], [ 8538, "doc/automata.xml", 33 ], [ 8609, "doc/automata.xml", 34 ], [ 8636, "doc/automata.xml", 35 ], [ 8637, "doc/automata.xml", 36 ], [ 8695, "doc/automata.xml", 37 ], [ 8709, "doc/automata.xml", 38 ], [ 8776, "doc/automata.xml", 39 ], [ 8798, "doc/automata.xml", 40 ], [ 8812, "doc/automata.xml", 41 ], [ 8879, "doc/automata.xml", 42 ], [ 8899, "doc/automata.xml", 43 ], [ 8971, "doc/automata.xml", 44 ], [ 9043, "doc/automata.xml", 45 ], [ 9073, "doc/automata.xml", 46 ], [ 9124, "doc/automata.xml", 47 ], [ 9192, "doc/automata.xml", 48 ], [ 9269, "doc/automata.xml", 49 ], [ 9322, "doc/automata.xml", 50 ], [ 9400, "doc/automata.xml", 51 ], [ 9479, "doc/automata.xml", 52 ], [ 9551, "doc/automata.xml", 53 ], [ 9626, "doc/automata.xml", 54 ], [ 9636, "doc/automata.xml", 55 ], [ 9646, "doc/automata.xml", 56 ], [ 9656, "doc/automata.xml", 57 ], [ 9717, "doc/automata.xml", 58 ], [ 9772, "doc/automata.xml", 59 ], [ 9791, "doc/automata.xml", 60 ], [ 9808, "doc/automata.xml", 61 ], [ 9826, "doc/automata.xml", 62 ], [ 9843, "doc/automata.xml", 63 ], [ 9860, "doc/automata.xml", 64 ], [ 9883, "doc/automata.xml", 65 ], [ 9906, "doc/automata.xml", 66 ], [ 9910, "doc/automata.xml", 67 ], [ 9921, "doc/automata.xml", 68 ], [ 9969, "doc/automata.xml", 69 ], [ 9988, "doc/automata.xml", 70 ], [ 10052, "doc/automata.xml", 71 ], [ 10107, "doc/automata.xml", 72 ], [ 10126, "doc/automata.xml", 73 ], [ 10143, "doc/automata.xml", 74 ], [ 10161, "doc/automata.xml", 75 ], [ 10178, "doc/automata.xml", 76 ], [ 10195, "doc/automata.xml", 77 ], [ 10218, "doc/automata.xml", 78 ], [ 10241, "doc/automata.xml", 79 ], [ 10255, "doc/automata.xml", 80 ], [ 10331, "doc/automata.xml", 81 ], [ 10372, "doc/automata.xml", 82 ], [ 10426, "doc/automata.xml", 83 ], [ 10445, "doc/automata.xml", 84 ], [ 10520, "doc/automata.xml", 85 ], [ 10579, "doc/automata.xml", 86 ], [ 10600, "doc/automata.xml", 87 ], [ 10635, "doc/automata.xml", 88 ], [ 10677, "doc/automata.xml", 89 ], [ 10707, "doc/automata.xml", 90 ], [ 10748, "doc/automata.xml", 91 ], [ 10771, "doc/automata.xml", 92 ], [ 10794, "doc/automata.xml", 93 ], [ 10808, "doc/automata.xml", 94 ], [ 10924, "doc/automata.xml", 95 ], [ 10943, "doc/automata.xml", 96 ], [ 11014, "doc/automata.xml", 97 ], [ 11034, "doc/automata.xml", 98 ], [ 11083, "doc/automata.xml", 99 ], [ 11100, "doc/automata.xml", 100 ], [ 11127, "doc/automata.xml", 101 ], [ 11158, "doc/automata.xml", 102 ], [ 11188, "doc/automata.xml", 103 ], [ 11218, "doc/automata.xml", 104 ], [ 11248, "doc/automata.xml", 105 ], [ 11272, "doc/automata.xml", 106 ], [ 11299, "doc/automata.xml", 107 ], [ 11313, "doc/automata.xml", 108 ], [ 11360, "doc/automata.xml", 109 ], [ 11379, "doc/automata.xml", 110 ], [ 11446, "doc/automata.xml", 111 ], [ 11497, "doc/automata.xml", 112 ], [ 11553, "doc/automata.xml", 113 ], [ 11572, "doc/automata.xml", 114 ], [ 11583, "doc/automata.xml", 115 ], [ 11594, "doc/automata.xml", 116 ], [ 11605, "doc/automata.xml", 117 ], [ 11629, "doc/automata.xml", 118 ], [ 11640, "doc/automata.xml", 119 ], [ 11651, "doc/automata.xml", 120 ], [ 11662, "doc/automata.xml", 121 ], [ 11685, "doc/automata.xml", 122 ], [ 11708, "doc/automata.xml", 123 ], [ 11722, "doc/automata.xml", 124 ], [ 11751, "doc/automata.xml", 125 ], [ 11752, "doc/automata.xml", 126 ], [ 11765, "doc/automata.xml", 127 ], [ 11800, "doc/automata.xml", 128 ], [ 11814, "doc/automata.xml", 129 ], [ 11883, "doc/automata.xml", 130 ], [ 11965, "doc/automata.xml", 131 ], [ 11984, "doc/automata.xml", 132 ], [ 12056, "doc/automata.xml", 133 ], [ 12077, "doc/automata.xml", 134 ], [ 12082, "doc/automata.xml", 135 ], [ 12096, "doc/automata.xml", 136 ], [ 12125, "doc/automata.xml", 137 ], [ 12126, "doc/automata.xml", 138 ], [ 12139, "doc/automata.xml", 139 ], [ 12189, "doc/automata.xml", 140 ], [ 12203, "doc/automata.xml", 141 ], [ 12297, "doc/automata.xml", 142 ], [ 12316, "doc/automata.xml", 143 ], [ 12388, "doc/automata.xml", 144 ], [ 12422, "doc/automata.xml", 145 ], [ 12427, "doc/automata.xml", 146 ], [ 12441, "doc/automata.xml", 147 ], [ 12470, "doc/automata.xml", 148 ], [ 12489, "doc/automata.xml", 149 ], [ 12502, "doc/automata.xml", 150 ], [ 12555, "doc/automata.xml", 151 ], [ 12569, "doc/automata.xml", 152 ], [ 12667, "doc/automata.xml", 153 ], [ 12686, "doc/automata.xml", 154 ], [ 12759, "doc/automata.xml", 155 ], [ 12796, "doc/automata.xml", 156 ], [ 12801, "doc/automata.xml", 157 ], [ 12815, "doc/automata.xml", 158 ], [ 12844, "doc/automata.xml", 159 ], [ 12845, "doc/automata.xml", 160 ], [ 12858, "doc/automata.xml", 161 ], [ 12902, "doc/automata.xml", 162 ], [ 12916, "doc/automata.xml", 163 ], [ 13013, "doc/automata.xml", 164 ], [ 13032, "doc/automata.xml", 165 ], [ 13100, "doc/automata.xml", 166 ], [ 13128, "doc/automata.xml", 167 ], [ 13133, "doc/automata.xml", 168 ], [ 13147, "doc/automata.xml", 169 ], [ 13176, "doc/automata.xml", 170 ], [ 13189, "doc/automata.xml", 171 ], [ 13221, "doc/automata.xml", 172 ], [ 13235, "doc/automata.xml", 173 ], [ 13236, "doc/automata.xml", 174 ], [ 13314, "doc/automata.xml", 175 ], [ 13394, "doc/automata.xml", 176 ], [ 13460, "doc/automata.xml", 177 ], [ 13479, "doc/automata.xml", 178 ], [ 13551, "doc/automata.xml", 179 ], [ 13567, "doc/automata.xml", 180 ], [ 13640, "doc/automata.xml", 181 ], [ 13663, "doc/automata.xml", 182 ], [ 13730, "doc/automata.xml", 183 ], [ 13744, "doc/automata.xml", 184 ], [ 13763, "doc/automata.xml", 185 ], [ 13831, "doc/automata.xml", 186 ], [ 13854, "doc/automata.xml", 187 ], [ 13934, "doc/automata.xml", 188 ], [ 13944, "doc/automata.xml", 189 ], [ 13958, "doc/automata.xml", 190 ], [ 13987, "doc/automata.xml", 191 ], [ 13988, "doc/automata.xml", 192 ], [ 14001, "doc/automata.xml", 193 ], [ 14059, "doc/automata.xml", 194 ], [ 14073, "doc/automata.xml", 195 ], [ 14184, "doc/automata.xml", 196 ], [ 14236, "doc/automata.xml", 197 ], [ 14254, "doc/automata.xml", 198 ], [ 14273, "doc/automata.xml", 199 ], [ 14309, "doc/automata.xml", 200 ], [ 14364, "doc/automata.xml", 201 ], [ 14384, "doc/automata.xml", 202 ], [ 14404, "doc/automata.xml", 203 ], [ 14425, "doc/automata.xml", 204 ], [ 14439, "doc/automata.xml", 205 ], [ 14450, "doc/automata.xml", 206 ], [ 14474, "doc/automata.xml", 207 ], [ 14501, "doc/automata.xml", 208 ], [ 14502, "doc/automata.xml", 209 ], [ 14550, "doc/automata.xml", 210 ], [ 14609, "doc/automata.xml", 211 ], [ 14610, "doc/automata.xml", 212 ], [ 14651, "doc/automata.xml", 213 ], [ 14700, "doc/automata.xml", 214 ], [ 14701, "doc/automata.xml", 215 ], [ 14738, "doc/automata.xml", 216 ], [ 14787, "doc/automata.xml", 217 ], [ 14807, "doc/automata.xml", 218 ], [ 14826, "doc/automata.xml", 219 ], [ 14849, "doc/automata.xml", 220 ], [ 14863, "doc/automata.xml", 221 ], [ 14885, "doc/automata.xml", 222 ], [ 14899, "doc/automata.xml", 223 ], [ 14923, "doc/automata.xml", 224 ], [ 14950, "doc/automata.xml", 225 ], [ 14951, "doc/automata.xml", 226 ], [ 14985, "doc/automata.xml", 227 ], [ 15019, "doc/automata.xml", 228 ], [ 15061, "doc/automata.xml", 229 ], [ 15116, "doc/automata.xml", 230 ], [ 15130, "doc/automata.xml", 231 ], [ 15159, "doc/automata.xml", 232 ], [ 15160, "doc/automata.xml", 233 ], [ 15171, "doc/automata.xml", 234 ], [ 15172, "doc/automata.xml", 235 ], [ 15173, "doc/automata.xml", 236 ], [ 15220, "doc/automata.xml", 237 ], [ 15308, "doc/automata.xml", 238 ], [ 15309, "doc/automata.xml", 239 ], [ 15323, "doc/automata.xml", 240 ], [ 15368, "doc/automata.xml", 241 ], [ 15382, "doc/automata.xml", 242 ], [ 15383, "doc/automata.xml", 243 ], [ 15454, "doc/automata.xml", 244 ], [ 15473, "doc/automata.xml", 245 ], [ 15534, "doc/automata.xml", 246 ], [ 15565, "doc/automata.xml", 247 ], [ 15567, "doc/automata.xml", 248 ], [ 15581, "doc/automata.xml", 249 ], [ 15610, "doc/automata.xml", 250 ], [ 15611, "doc/automata.xml", 251 ], [ 15612, "doc/automata.xml", 252 ], [ 15626, "doc/automata.xml", 253 ], [ 15677, "doc/automata.xml", 254 ], [ 15691, "doc/automata.xml", 255 ], [ 15692, "doc/automata.xml", 256 ], [ 15744, "doc/automata.xml", 257 ], [ 15755, "doc/automata.xml", 258 ], [ 15756, "doc/automata.xml", 259 ], [ 15826, "doc/automata.xml", 260 ], [ 15859, "doc/automata.xml", 261 ], [ 15918, "doc/automata.xml", 262 ], [ 15988, "doc/automata.xml", 263 ], [ 16045, "doc/automata.xml", 264 ], [ 16064, "doc/automata.xml", 265 ], [ 16104, "doc/automata.xml", 266 ], [ 16159, "doc/automata.xml", 267 ], [ 16188, "doc/automata.xml", 268 ], [ 16190, "doc/automata.xml", 269 ], [ 16225, "doc/automata.xml", 270 ], [ 16231, "doc/automata.xml", 271 ], [ 16268, "doc/automata.xml", 272 ], [ 16324, "doc/automata.xml", 273 ], [ 16353, "doc/automata.xml", 274 ], [ 16356, "doc/automata.xml", 275 ], [ 16391, "doc/automata.xml", 276 ], [ 16414, "doc/automata.xml", 277 ], [ 16451, "doc/automata.xml", 278 ], [ 16507, "doc/automata.xml", 279 ], [ 16536, "doc/automata.xml", 280 ], [ 16539, "doc/automata.xml", 281 ], [ 16574, "doc/automata.xml", 282 ], [ 16645, "doc/automata.xml", 283 ], [ 16717, "doc/automata.xml", 284 ], [ 16783, "doc/automata.xml", 285 ], [ 16797, "doc/automata.xml", 286 ], [ 16826, "doc/automata.xml", 287 ], [ 16827, "doc/automata.xml", 288 ], [ 16828, "doc/automata.xml", 289 ], [ 16829, "doc/automata.xml", 290 ], [ 16843, "doc/automata.xml", 291 ], [ 16896, "doc/automata.xml", 292 ], [ 16910, "doc/automata.xml", 293 ], [ 16911, "doc/automata.xml", 294 ], [ 16966, "doc/automata.xml", 295 ], [ 16985, "doc/automata.xml", 296 ], [ 17046, "doc/automata.xml", 297 ], [ 17085, "doc/automata.xml", 298 ], [ 17120, "doc/automata.xml", 299 ], [ 17134, "doc/automata.xml", 300 ], [ 17163, "doc/automata.xml", 301 ], [ 17164, "doc/automata.xml", 302 ], [ 17165, "doc/automata.xml", 303 ], [ 17179, "doc/automata.xml", 304 ], [ 17229, "doc/automata.xml", 305 ], [ 17243, "doc/automata.xml", 306 ], [ 17244, "doc/automata.xml", 307 ], [ 17296, "doc/automata.xml", 308 ], [ 17315, "doc/automata.xml", 309 ], [ 17376, "doc/automata.xml", 310 ], [ 17412, "doc/automata.xml", 311 ], [ 17418, "doc/automata.xml", 312 ], [ 17432, "doc/automata.xml", 313 ], [ 17461, "doc/automata.xml", 314 ], [ 17462, "doc/automata.xml", 315 ], [ 17463, "doc/automata.xml", 316 ], [ 17477, "doc/automata.xml", 317 ], [ 17533, "doc/automata.xml", 318 ], [ 17547, "doc/automata.xml", 319 ], [ 17548, "doc/automata.xml", 320 ], [ 17597, "doc/automata.xml", 321 ], [ 17664, "doc/automata.xml", 322 ], [ 17683, "doc/automata.xml", 323 ], [ 17744, "doc/automata.xml", 324 ], [ 17785, "doc/automata.xml", 325 ], [ 17821, "doc/automata.xml", 326 ], [ 17827, "doc/automata.xml", 327 ], [ 17872, "doc/automata.xml", 328 ], [ 17908, "doc/automata.xml", 329 ], [ 17917, "doc/automata.xml", 330 ], [ 17931, "doc/automata.xml", 331 ], [ 17960, "doc/automata.xml", 332 ], [ 17961, "doc/automata.xml", 333 ], [ 17962, "doc/automata.xml", 334 ], [ 17976, "doc/automata.xml", 335 ], [ 18024, "doc/automata.xml", 336 ], [ 18038, "doc/automata.xml", 337 ], [ 18039, "doc/automata.xml", 338 ], [ 18089, "doc/automata.xml", 339 ], [ 18108, "doc/automata.xml", 340 ], [ 18169, "doc/automata.xml", 341 ], [ 18203, "doc/automata.xml", 342 ], [ 18209, "doc/automata.xml", 343 ], [ 18223, "doc/automata.xml", 344 ], [ 18252, "doc/automata.xml", 345 ], [ 18253, "doc/automata.xml", 346 ], [ 18254, "doc/automata.xml", 347 ], [ 18268, "doc/automata.xml", 348 ], [ 18322, "doc/automata.xml", 349 ], [ 18336, "doc/automata.xml", 350 ], [ 18337, "doc/automata.xml", 351 ], [ 18384, "doc/automata.xml", 352 ], [ 18451, "doc/automata.xml", 353 ], [ 18470, "doc/automata.xml", 354 ], [ 18531, "doc/automata.xml", 355 ], [ 18565, "doc/automata.xml", 356 ], [ 18571, "doc/automata.xml", 357 ], [ 18610, "doc/automata.xml", 358 ], [ 18644, "doc/automata.xml", 359 ], [ 18650, "doc/automata.xml", 360 ], [ 18664, "doc/automata.xml", 361 ], [ 18693, "doc/automata.xml", 362 ], [ 18694, "doc/automata.xml", 363 ], [ 18695, "doc/automata.xml", 364 ], [ 18709, "doc/automata.xml", 365 ], [ 18758, "doc/automata.xml", 366 ], [ 18772, "doc/automata.xml", 367 ], [ 18773, "doc/automata.xml", 368 ], [ 18827, "doc/automata.xml", 369 ], [ 18846, "doc/automata.xml", 370 ], [ 18907, "doc/automata.xml", 371 ], [ 18942, "doc/automata.xml", 372 ], [ 18944, "doc/automata.xml", 373 ], [ 18958, "doc/automata.xml", 374 ], [ 18987, "doc/automata.xml", 375 ], [ 18988, "doc/automata.xml", 376 ], [ 18999, "doc/automata.xml", 377 ], [ 19000, "doc/automata.xml", 378 ], [ 19001, "doc/automata.xml", 379 ], [ 19002, "doc/automata.xml", 380 ], [ 19053, "doc/automata.xml", 381 ], [ 19208, "doc/automata.xml", 382 ], [ 19254, "doc/automata.xml", 383 ], [ 19260, "doc/automata.xml", 384 ], [ 19332, "doc/automata.xml", 385 ], [ 19407, "doc/automata.xml", 386 ], [ 19417, "doc/automata.xml", 387 ], [ 19423, "doc/automata.xml", 388 ], [ 19448, "doc/automata.xml", 389 ], [ 19450, "doc/automata.xml", 390 ], [ 19457, "doc/automata.xml", 391 ], [ 19468, "doc/automata.xml", 392 ], [ 19521, "doc/automata.xml", 393 ], [ 19522, "doc/automata.xml", 394 ], [ 19583, "doc/automata.xml", 395 ], [ 19584, "doc/automata.xml", 396 ], [ 19598, "doc/automata.xml", 397 ], [ 19640, "doc/automata.xml", 398 ], [ 19654, "doc/automata.xml", 399 ], [ 19655, "doc/automata.xml", 400 ], [ 19720, "doc/automata.xml", 401 ], [ 19772, "doc/automata.xml", 402 ], [ 19791, "doc/automata.xml", 403 ], [ 19852, "doc/automata.xml", 404 ], [ 19913, "doc/automata.xml", 405 ], [ 19919, "doc/automata.xml", 406 ], [ 19933, "doc/automata.xml", 407 ], [ 19962, "doc/automata.xml", 408 ], [ 19963, "doc/automata.xml", 409 ], [ 19977, "doc/automata.xml", 410 ], [ 20026, "doc/automata.xml", 411 ], [ 20040, "doc/automata.xml", 412 ], [ 20152, "doc/automata.xml", 413 ], [ 20216, "doc/automata.xml", 414 ], [ 20246, "doc/automata.xml", 415 ], [ 20247, "doc/automata.xml", 416 ], [ 20266, "doc/automata.xml", 417 ], [ 20325, "doc/automata.xml", 418 ], [ 20366, "doc/automata.xml", 419 ], [ 20371, "doc/automata.xml", 420 ], [ 20372, "doc/automata.xml", 421 ], [ 20434, "doc/automata.xml", 422 ], [ 20475, "doc/automata.xml", 423 ], [ 20480, "doc/automata.xml", 424 ], [ 20494, "doc/automata.xml", 425 ], [ 20523, "doc/automata.xml", 426 ], [ 20524, "doc/automata.xml", 427 ], [ 20525, "doc/automata.xml", 428 ], [ 20538, "doc/automata.xml", 429 ], [ 20586, "doc/automata.xml", 430 ], [ 20600, "doc/automata.xml", 431 ], [ 20781, "doc/automata.xml", 432 ], [ 20856, "doc/automata.xml", 433 ], [ 20888, "doc/automata.xml", 434 ], [ 20893, "doc/automata.xml", 435 ], [ 20907, "doc/automata.xml", 436 ], [ 20936, "doc/automata.xml", 437 ], [ 20937, "doc/automata.xml", 438 ], [ 20950, "doc/automata.xml", 439 ], [ 20994, "doc/automata.xml", 440 ], [ 21008, "doc/automata.xml", 441 ], [ 21205, "doc/automata.xml", 442 ], [ 21277, "doc/automata.xml", 443 ], [ 21305, "doc/automata.xml", 444 ], [ 21310, "doc/automata.xml", 445 ], [ 21324, "doc/automata.xml", 446 ], [ 21325, "doc/automata.xml", 447 ], [ 21594, "doc/automata.xml", 448 ], [ 21623, "doc/automata.xml", 449 ], [ 21624, "doc/automata.xml", 450 ], [ 21637, "doc/automata.xml", 451 ], [ 21696, "doc/automata.xml", 452 ], [ 21710, "doc/automata.xml", 453 ], [ 21926, "doc/automata.xml", 454 ], [ 21946, "doc/automata.xml", 455 ], [ 22026, "doc/automata.xml", 456 ], [ 22040, "doc/automata.xml", 457 ], [ 22055, "doc/automata.xml", 458 ], [ 22069, "doc/automata.xml", 459 ], [ 22083, "doc/automata.xml", 460 ], [ 22106, "doc/automata.xml", 461 ], [ 22129, "doc/automata.xml", 462 ], [ 22183, "doc/automata.xml", 463 ], [ 22197, "doc/automata.xml", 464 ], [ 22212, "doc/automata.xml", 465 ], [ 22226, "doc/automata.xml", 466 ], [ 22240, "doc/automata.xml", 467 ], [ 22254, "doc/automata.xml", 468 ], [ 22265, "doc/automata.xml", 469 ], [ 22288, "doc/automata.xml", 470 ], [ 22311, "doc/automata.xml", 471 ], [ 22325, "doc/automata.xml", 472 ], [ 22354, "doc/automata.xml", 473 ], [ 22355, "doc/automata.xml", 474 ], [ 22368, "doc/automata.xml", 475 ], [ 22415, "doc/automata.xml", 476 ], [ 22429, "doc/automata.xml", 477 ], [ 22473, "doc/automata.xml", 478 ], [ 22631, "doc/automata.xml", 479 ], [ 22724, "doc/automata.xml", 480 ], [ 22743, "doc/automata.xml", 481 ], [ 22815, "doc/automata.xml", 482 ], [ 22846, "doc/automata.xml", 483 ], [ 22851, "doc/automata.xml", 484 ], [ 22865, "doc/automata.xml", 485 ], [ 22894, "doc/automata.xml", 486 ], [ 22895, "doc/automata.xml", 487 ], [ 22906, "doc/automata.xml", 488 ], [ 22907, "doc/automata.xml", 489 ], [ 22952, "doc/automata.xml", 490 ], [ 22953, "doc/automata.xml", 491 ], [ 22954, "doc/automata.xml", 492 ], [ 22967, "doc/automata.xml", 493 ], [ 23006, "doc/automata.xml", 494 ], [ 23020, "doc/automata.xml", 495 ], [ 23086, "doc/automata.xml", 496 ], [ 23118, "doc/automata.xml", 497 ], [ 23119, "doc/automata.xml", 498 ], [ 23120, "doc/automata.xml", 499 ], [ 23135, "doc/automata.xml", 500 ], [ 23184, "doc/automata.xml", 501 ], [ 23198, "doc/automata.xml", 502 ], [ 23199, "doc/automata.xml", 503 ], [ 23278, "doc/automata.xml", 504 ], [ 23427, "doc/automata.xml", 505 ], [ 23446, "doc/automata.xml", 506 ], [ 23507, "doc/automata.xml", 507 ], [ 23535, "doc/automata.xml", 508 ], [ 23541, "doc/automata.xml", 509 ], [ 23591, "doc/automata.xml", 510 ], [ 23611, "doc/automata.xml", 511 ], [ 23632, "doc/automata.xml", 512 ], [ 23652, "doc/automata.xml", 513 ], [ 23672, "doc/automata.xml", 514 ], [ 23695, "doc/automata.xml", 515 ], [ 23718, "doc/automata.xml", 516 ], [ 23732, "doc/automata.xml", 517 ], [ 23733, "doc/automata.xml", 518 ], [ 23988, "doc/automata.xml", 519 ], [ 24035, "doc/automata.xml", 520 ], [ 24067, "doc/automata.xml", 521 ], [ 24068, "doc/automata.xml", 522 ], [ 24081, "doc/automata.xml", 523 ], [ 24124, "doc/automata.xml", 524 ], [ 24138, "doc/automata.xml", 525 ], [ 24204, "doc/automata.xml", 526 ], [ 24223, "doc/automata.xml", 527 ], [ 24298, "doc/automata.xml", 528 ], [ 24325, "doc/automata.xml", 529 ], [ 24330, "doc/automata.xml", 530 ], [ 24402, "doc/automata.xml", 531 ], [ 24429, "doc/automata.xml", 532 ], [ 24435, "doc/automata.xml", 533 ], [ 24449, "doc/automata.xml", 534 ], [ 24481, "doc/automata.xml", 535 ], [ 24482, "doc/automata.xml", 536 ], [ 24495, "doc/automata.xml", 537 ], [ 24538, "doc/automata.xml", 538 ], [ 24552, "doc/automata.xml", 539 ], [ 24605, "doc/automata.xml", 540 ], [ 24624, "doc/automata.xml", 541 ], [ 24704, "doc/automata.xml", 542 ], [ 24718, "doc/automata.xml", 543 ], [ 24733, "doc/automata.xml", 544 ], [ 24747, "doc/automata.xml", 545 ], [ 24761, "doc/automata.xml", 546 ], [ 24784, "doc/automata.xml", 547 ], [ 24807, "doc/automata.xml", 548 ], [ 24850, "doc/automata.xml", 549 ], [ 24905, "doc/automata.xml", 550 ], [ 24916, "doc/automata.xml", 551 ], [ 24928, "doc/automata.xml", 552 ], [ 24936, "doc/automata.xml", 553 ], [ 24947, "doc/automata.xml", 554 ], [ 24970, "doc/automata.xml", 555 ], [ 24993, "doc/automata.xml", 556 ], [ 25007, "doc/automata.xml", 557 ], [ 25039, "doc/automata.xml", 558 ], [ 25040, "doc/automata.xml", 559 ], [ 25053, "doc/automata.xml", 560 ], [ 25096, "doc/automata.xml", 561 ], [ 25110, "doc/automata.xml", 562 ], [ 25158, "doc/automata.xml", 563 ], [ 25177, "doc/automata.xml", 564 ], [ 25249, "doc/automata.xml", 565 ], [ 25291, "doc/automata.xml", 566 ], [ 25315, "doc/automata.xml", 567 ], [ 25346, "doc/automata.xml", 568 ], [ 25376, "doc/automata.xml", 569 ], [ 25403, "doc/automata.xml", 570 ], [ 25426, "doc/automata.xml", 571 ], [ 25449, "doc/automata.xml", 572 ], [ 25463, "doc/automata.xml", 573 ], [ 25495, "doc/automata.xml", 574 ], [ 25496, "doc/automata.xml", 575 ], [ 25497, "doc/automata.xml", 576 ], [ 25510, "doc/automata.xml", 577 ], [ 25556, "doc/automata.xml", 578 ], [ 25570, "doc/automata.xml", 579 ], [ 25662, "doc/automata.xml", 580 ], [ 25705, "doc/automata.xml", 581 ], [ 25724, "doc/automata.xml", 582 ], [ 25796, "doc/automata.xml", 583 ], [ 25813, "doc/automata.xml", 584 ], [ 25831, "doc/automata.xml", 585 ], [ 25848, "doc/automata.xml", 586 ], [ 25865, "doc/automata.xml", 587 ], [ 25888, "doc/automata.xml", 588 ], [ 25911, "doc/automata.xml", 589 ], [ 25958, "doc/automata.xml", 590 ], [ 25975, "doc/automata.xml", 591 ], [ 25993, "doc/automata.xml", 592 ], [ 26010, "doc/automata.xml", 593 ], [ 26018, "doc/automata.xml", 594 ], [ 26041, "doc/automata.xml", 595 ], [ 26064, "doc/automata.xml", 596 ], [ 26078, "doc/automata.xml", 597 ], [ 26110, "doc/automata.xml", 598 ], [ 26111, "doc/automata.xml", 599 ], [ 26112, "doc/automata.xml", 600 ], [ 26113, "doc/automata.xml", 601 ], [ 26126, "doc/automata.xml", 602 ], [ 26172, "doc/automata.xml", 603 ], [ 26186, "doc/automata.xml", 604 ], [ 26265, "doc/automata.xml", 605 ], [ 26284, "doc/automata.xml", 606 ], [ 26359, "doc/automata.xml", 607 ], [ 26389, "doc/automata.xml", 608 ], [ 26448, "doc/automata.xml", 609 ], [ 26507, "doc/automata.xml", 610 ], [ 26566, "doc/automata.xml", 611 ], [ 26625, "doc/automata.xml", 612 ], [ 26684, "doc/automata.xml", 613 ], [ 26743, "doc/automata.xml", 614 ], [ 26757, "doc/automata.xml", 615 ], [ 26788, "doc/automata.xml", 616 ], [ 26790, "doc/automata.xml", 617 ], [ 26791, "doc/automata.xml", 618 ], [ 26804, "doc/automata.xml", 619 ], [ 26847, "doc/automata.xml", 620 ], [ 26861, "doc/automata.xml", 621 ], [ 26991, "doc/automata.xml", 622 ], [ 27010, "doc/automata.xml", 623 ], [ 27089, "doc/automata.xml", 624 ], [ 27103, "doc/automata.xml", 625 ], [ 27118, "doc/automata.xml", 626 ], [ 27129, "doc/automata.xml", 627 ], [ 27143, "doc/automata.xml", 628 ], [ 27167, "doc/automata.xml", 629 ], [ 27194, "doc/automata.xml", 630 ], [ 27232, "doc/automata.xml", 631 ], [ 27246, "doc/automata.xml", 632 ], [ 27261, "doc/automata.xml", 633 ], [ 27275, "doc/automata.xml", 634 ], [ 27286, "doc/automata.xml", 635 ], [ 27310, "doc/automata.xml", 636 ], [ 27337, "doc/automata.xml", 637 ], [ 27351, "doc/automata.xml", 638 ], [ 27383, "doc/automata.xml", 639 ], [ 27384, "doc/automata.xml", 640 ], [ 27397, "doc/automata.xml", 641 ], [ 27436, "doc/automata.xml", 642 ], [ 27450, "doc/automata.xml", 643 ], [ 27597, "doc/automata.xml", 644 ], [ 27616, "doc/automata.xml", 645 ], [ 27691, "doc/automata.xml", 646 ], [ 27769, "doc/automata.xml", 647 ], [ 27794, "doc/automata.xml", 648 ], [ 27853, "doc/automata.xml", 649 ], [ 27873, "doc/automata.xml", 650 ], [ 27918, "doc/automata.xml", 651 ], [ 27967, "doc/automata.xml", 652 ], [ 28015, "doc/automata.xml", 653 ], [ 28042, "doc/automata.xml", 654 ], [ 28069, "doc/automata.xml", 655 ], [ 28105, "doc/automata.xml", 656 ], [ 28119, "doc/automata.xml", 657 ], [ 28151, "doc/automata.xml", 658 ], [ 28152, "doc/automata.xml", 659 ], [ 28166, "doc/automata.xml", 660 ], [ 28210, "doc/automata.xml", 661 ], [ 28224, "doc/automata.xml", 662 ], [ 28319, "doc/automata.xml", 663 ], [ 28324, "doc/automata.xml", 664 ], [ 28446, "doc/automata.xml", 665 ], [ 28465, "doc/automata.xml", 666 ], [ 28513, "doc/automata.xml", 667 ], [ 28527, "doc/automata.xml", 668 ], [ 28542, "doc/automata.xml", 669 ], [ 28553, "doc/automata.xml", 670 ], [ 28564, "doc/automata.xml", 671 ], [ 28588, "doc/automata.xml", 672 ], [ 28618, "doc/automata.xml", 673 ], [ 28666, "doc/automata.xml", 674 ], [ 28680, "doc/automata.xml", 675 ], [ 28695, "doc/automata.xml", 676 ], [ 28706, "doc/automata.xml", 677 ], [ 28717, "doc/automata.xml", 678 ], [ 28741, "doc/automata.xml", 679 ], [ 28768, "doc/automata.xml", 680 ], [ 28812, "doc/automata.xml", 681 ], [ 28844, "doc/automata.xml", 682 ], [ 28877, "doc/automata.xml", 683 ], [ 28897, "doc/automata.xml", 684 ], [ 28917, "doc/automata.xml", 685 ], [ 28941, "doc/automata.xml", 686 ], [ 28980, "doc/automata.xml", 687 ], [ 28994, "doc/automata.xml", 688 ], [ 29010, "doc/automata.xml", 689 ], [ 29025, "doc/automata.xml", 690 ], [ 29026, "doc/automata.xml", 691 ], [ 29027, "doc/automata.xml", 692 ], [ 29041, "doc/automata.xml", 693 ], [ 29087, "doc/automata.xml", 694 ], [ 29101, "doc/automata.xml", 695 ], [ 29168, "doc/automata.xml", 696 ], [ 29237, "doc/automata.xml", 697 ], [ 29294, "doc/automata.xml", 698 ], [ 29346, "doc/automata.xml", 699 ], [ 29378, "doc/automata.xml", 700 ], [ 29397, "doc/automata.xml", 701 ], [ 29448, "doc/automata.xml", 702 ], [ 29503, "doc/automata.xml", 703 ], [ 29552, "doc/automata.xml", 704 ], [ 29607, "doc/automata.xml", 705 ], [ 29639, "doc/automata.xml", 706 ], [ 29694, "doc/automata.xml", 707 ], [ 29717, "doc/automata.xml", 708 ], [ 29730, "doc/automata.xml", 709 ], [ 29744, "doc/automata.xml", 710 ], [ 29760, "doc/automata.xml", 711 ], [ 29775, "doc/automata.xml", 712 ], [ 29776, "doc/automata.xml", 713 ], [ 29777, "doc/automata.xml", 714 ], [ 29788, "doc/automata.xml", 715 ], [ 29838, "doc/automata.xml", 716 ], [ 29839, "doc/automata.xml", 717 ], [ 29931, "doc/automata.xml", 718 ], [ 29991, "doc/automata.xml", 719 ], [ 30048, "doc/automata.xml", 720 ], [ 30049, "doc/automata.xml", 721 ], [ 30063, "doc/automata.xml", 722 ], [ 30108, "doc/automata.xml", 723 ], [ 30122, "doc/automata.xml", 724 ], [ 30123, "doc/automata.xml", 725 ], [ 30199, "doc/automata.xml", 726 ], [ 30218, "doc/automata.xml", 727 ], [ 30277, "doc/automata.xml", 728 ], [ 30322, "doc/automata.xml", 729 ], [ 30366, "doc/automata.xml", 730 ], [ 30446, "doc/automata.xml", 731 ], [ 30449, "doc/automata.xml", 732 ], [ 30463, "doc/automata.xml", 733 ], [ 30464, "doc/automata.xml", 734 ], [ 30540, "doc/automata.xml", 735 ], [ 30588, "doc/automata.xml", 736 ], [ 30589, "doc/automata.xml", 737 ], [ 30621, "doc/automata.xml", 738 ], [ 30635, "doc/automata.xml", 739 ], [ 30682, "doc/automata.xml", 740 ], [ 30696, "doc/automata.xml", 741 ], [ 30697, "doc/automata.xml", 742 ], [ 30840, "doc/automata.xml", 743 ], [ 30897, "doc/automata.xml", 744 ], [ 30916, "doc/automata.xml", 745 ], [ 30991, "doc/automata.xml", 746 ], [ 31026, "doc/automata.xml", 747 ], [ 31040, "doc/automata.xml", 748 ], [ 31042, "doc/automata.xml", 749 ], [ 31056, "doc/automata.xml", 750 ], [ 31086, "doc/automata.xml", 751 ], [ 31100, "doc/automata.xml", 752 ], [ 31148, "doc/automata.xml", 753 ], [ 31162, "doc/automata.xml", 754 ], [ 31255, "doc/automata.xml", 755 ], [ 31274, "doc/automata.xml", 756 ], [ 31324, "doc/automata.xml", 757 ], [ 31362, "doc/automata.xml", 758 ], [ 31376, "doc/automata.xml", 759 ], [ 31378, "doc/automata.xml", 760 ], [ 31392, "doc/automata.xml", 761 ], [ 31422, "doc/automata.xml", 762 ], [ 31433, "doc/automata.xml", 763 ], [ 31446, "doc/automata.xml", 764 ], [ 31447, "doc/automata.xml", 765 ], [ 31448, "doc/AutMan.xml", 88 ], [ 31449, "doc/rational.xml", 1 ], [ 31488, "doc/rational.xml", 2 ], [ 31529, "doc/rational.xml", 3 ], [ 31530, "doc/rational.xml", 4 ], [ 31577, "doc/rational.xml", 5 ], [ 31896, "doc/rational.xml", 6 ], [ 31932, "doc/rational.xml", 7 ], [ 31933, "doc/rational.xml", 8 ], [ 31982, "doc/rational.xml", 9 ], [ 32100, "doc/rational.xml", 10 ], [ 32101, "doc/rational.xml", 11 ], [ 32102, "doc/rational.xml", 12 ], [ 32117, "doc/rational.xml", 13 ], [ 32172, "doc/rational.xml", 14 ], [ 32186, "doc/rational.xml", 15 ], [ 32706, "doc/rational.xml", 16 ], [ 32725, "doc/rational.xml", 17 ], [ 32758, "doc/rational.xml", 18 ], [ 32763, "doc/rational.xml", 19 ], [ 32797, "doc/rational.xml", 20 ], [ 32803, "doc/rational.xml", 21 ], [ 32838, "doc/rational.xml", 22 ], [ 32845, "doc/rational.xml", 23 ], [ 32886, "doc/rational.xml", 24 ], [ 32893, "doc/rational.xml", 25 ], [ 32907, "doc/rational.xml", 26 ], [ 32922, "doc/rational.xml", 27 ], [ 32936, "doc/rational.xml", 28 ], [ 32937, "doc/rational.xml", 29 ], [ 32938, "doc/rational.xml", 30 ], [ 32953, "doc/rational.xml", 31 ], [ 33012, "doc/rational.xml", 32 ], [ 33026, "doc/rational.xml", 33 ], [ 33309, "doc/rational.xml", 34 ], [ 33383, "doc/rational.xml", 35 ], [ 33446, "doc/rational.xml", 36 ], [ 33462, "doc/rational.xml", 37 ], [ 33533, "doc/rational.xml", 38 ], [ 33618, "doc/rational.xml", 39 ], [ 33632, "doc/rational.xml", 40 ], [ 33633, "doc/rational.xml", 41 ], [ 33652, "doc/rational.xml", 42 ], [ 33671, "doc/rational.xml", 43 ], [ 33732, "doc/rational.xml", 44 ], [ 33790, "doc/rational.xml", 45 ], [ 33859, "doc/rational.xml", 46 ], [ 33869, "doc/rational.xml", 47 ], [ 33883, "doc/rational.xml", 48 ], [ 33885, "doc/rational.xml", 49 ], [ 33948, "doc/rational.xml", 50 ], [ 33967, "doc/rational.xml", 51 ], [ 34008, "doc/rational.xml", 52 ], [ 34010, "doc/rational.xml", 53 ], [ 34051, "doc/rational.xml", 54 ], [ 34061, "doc/rational.xml", 55 ], [ 34075, "doc/rational.xml", 56 ], [ 34105, "doc/rational.xml", 57 ], [ 34106, "doc/rational.xml", 58 ], [ 34120, "doc/rational.xml", 59 ], [ 34158, "doc/rational.xml", 60 ], [ 34172, "doc/rational.xml", 61 ], [ 34314, "doc/rational.xml", 62 ], [ 34378, "doc/rational.xml", 63 ], [ 34397, "doc/rational.xml", 64 ], [ 34419, "doc/rational.xml", 65 ], [ 34427, "doc/rational.xml", 66 ], [ 34452, "doc/rational.xml", 67 ], [ 34462, "doc/rational.xml", 68 ], [ 34487, "doc/rational.xml", 69 ], [ 34494, "doc/rational.xml", 70 ], [ 34521, "doc/rational.xml", 71 ], [ 34532, "doc/rational.xml", 72 ], [ 34546, "doc/rational.xml", 73 ], [ 34562, "doc/rational.xml", 74 ], [ 34577, "doc/rational.xml", 75 ], [ 34578, "doc/rational.xml", 76 ], [ 34592, "doc/rational.xml", 77 ], [ 34626, "doc/rational.xml", 78 ], [ 34640, "doc/rational.xml", 79 ], [ 34739, "doc/rational.xml", 80 ], [ 34758, "doc/rational.xml", 81 ], [ 34800, "doc/rational.xml", 82 ], [ 34811, "doc/rational.xml", 83 ], [ 34831, "doc/rational.xml", 84 ], [ 34833, "doc/rational.xml", 85 ], [ 34847, "doc/rational.xml", 86 ], [ 34863, "doc/rational.xml", 87 ], [ 34878, "doc/rational.xml", 88 ], [ 34879, "doc/rational.xml", 89 ], [ 34893, "doc/rational.xml", 90 ], [ 34937, "doc/rational.xml", 91 ], [ 34951, "doc/rational.xml", 92 ], [ 35001, "doc/rational.xml", 93 ], [ 35020, "doc/rational.xml", 94 ], [ 35052, "doc/rational.xml", 95 ], [ 35061, "doc/rational.xml", 96 ], [ 35123, "doc/rational.xml", 97 ], [ 35128, "doc/rational.xml", 98 ], [ 35175, "doc/rational.xml", 99 ], [ 35180, "doc/rational.xml", 100 ], [ 35194, "doc/rational.xml", 101 ], [ 35210, "doc/rational.xml", 102 ], [ 35225, "doc/rational.xml", 103 ], [ 35226, "doc/rational.xml", 104 ], [ 35240, "doc/rational.xml", 105 ], [ 35280, "doc/rational.xml", 106 ], [ 35294, "doc/rational.xml", 107 ], [ 35295, "doc/rational.xml", 108 ], [ 35378, "doc/rational.xml", 109 ], [ 35397, "doc/rational.xml", 110 ], [ 35422, "doc/rational.xml", 111 ], [ 35432, "doc/rational.xml", 112 ], [ 35458, "doc/rational.xml", 113 ], [ 35460, "doc/rational.xml", 114 ], [ 35488, "doc/rational.xml", 115 ], [ 35498, "doc/rational.xml", 116 ], [ 35524, "doc/rational.xml", 117 ], [ 35526, "doc/rational.xml", 118 ], [ 35560, "doc/rational.xml", 119 ], [ 35594, "doc/rational.xml", 120 ], [ 35623, "doc/rational.xml", 121 ], [ 35686, "doc/rational.xml", 122 ], [ 35712, "doc/rational.xml", 123 ], [ 35714, "doc/rational.xml", 124 ], [ 35728, "doc/rational.xml", 125 ], [ 35757, "doc/rational.xml", 126 ], [ 35758, "doc/rational.xml", 127 ], [ 35759, "doc/rational.xml", 128 ], [ 35773, "doc/rational.xml", 129 ], [ 35819, "doc/rational.xml", 130 ], [ 35833, "doc/rational.xml", 131 ], [ 35834, "doc/rational.xml", 132 ], [ 35898, "doc/rational.xml", 133 ], [ 35909, "doc/rational.xml", 134 ], [ 35984, "doc/rational.xml", 135 ], [ 36036, "doc/rational.xml", 136 ], [ 36094, "doc/rational.xml", 137 ], [ 36113, "doc/rational.xml", 138 ], [ 36138, "doc/rational.xml", 139 ], [ 36160, "doc/rational.xml", 140 ], [ 36192, "doc/rational.xml", 141 ], [ 36197, "doc/rational.xml", 142 ], [ 36225, "doc/rational.xml", 143 ], [ 36233, "doc/rational.xml", 144 ], [ 36265, "doc/rational.xml", 145 ], [ 36270, "doc/rational.xml", 146 ], [ 36297, "doc/rational.xml", 147 ], [ 36329, "doc/rational.xml", 148 ], [ 36400, "doc/rational.xml", 149 ], [ 36471, "doc/rational.xml", 150 ], [ 36535, "doc/rational.xml", 151 ], [ 36549, "doc/rational.xml", 152 ], [ 36578, "doc/rational.xml", 153 ], [ 36579, "doc/rational.xml", 154 ], [ 36580, "doc/rational.xml", 155 ], [ 36594, "doc/rational.xml", 156 ], [ 36628, "doc/rational.xml", 157 ], [ 36642, "doc/rational.xml", 158 ], [ 36706, "doc/rational.xml", 159 ], [ 36725, "doc/rational.xml", 160 ], [ 36750, "doc/rational.xml", 161 ], [ 36758, "doc/rational.xml", 162 ], [ 36778, "doc/rational.xml", 163 ], [ 36786, "doc/rational.xml", 164 ], [ 36800, "doc/rational.xml", 165 ], [ 36829, "doc/rational.xml", 166 ], [ 36830, "doc/rational.xml", 167 ], [ 36845, "doc/rational.xml", 168 ], [ 36846, "doc/rational.xml", 169 ], [ 36909, "doc/rational.xml", 170 ], [ 36991, "doc/rational.xml", 171 ], [ 37010, "doc/rational.xml", 172 ], [ 37026, "doc/rational.xml", 173 ], [ 37033, "doc/rational.xml", 174 ], [ 37051, "doc/rational.xml", 175 ], [ 37056, "doc/rational.xml", 176 ], [ 37090, "doc/rational.xml", 177 ], [ 37136, "doc/rational.xml", 178 ], [ 37219, "doc/rational.xml", 179 ], [ 37296, "doc/rational.xml", 180 ], [ 37376, "doc/rational.xml", 181 ], [ 37411, "doc/rational.xml", 182 ], [ 37487, "doc/rational.xml", 183 ], [ 37564, "doc/rational.xml", 184 ], [ 37600, "doc/rational.xml", 185 ], [ 37611, "doc/rational.xml", 186 ], [ 37612, "doc/rational.xml", 187 ], [ 37613, "doc/rational.xml", 188 ], [ 37676, "doc/rational.xml", 189 ], [ 37677, "doc/rational.xml", 190 ], [ 37753, "doc/rational.xml", 191 ], [ 37758, "doc/rational.xml", 192 ], [ 37794, "doc/rational.xml", 193 ], [ 37846, "doc/rational.xml", 194 ], [ 37903, "doc/rational.xml", 195 ], [ 37967, "doc/rational.xml", 196 ], [ 38027, "doc/rational.xml", 197 ], [ 38046, "doc/rational.xml", 198 ], [ 38069, "doc/rational.xml", 199 ], [ 38076, "doc/rational.xml", 200 ], [ 38094, "doc/rational.xml", 201 ], [ 38112, "doc/rational.xml", 202 ], [ 38119, "doc/rational.xml", 203 ], [ 38125, "doc/rational.xml", 204 ], [ 38144, "doc/rational.xml", 205 ], [ 38160, "doc/rational.xml", 206 ], [ 38167, "doc/rational.xml", 207 ], [ 38185, "doc/rational.xml", 208 ], [ 38192, "doc/rational.xml", 209 ], [ 38200, "doc/rational.xml", 210 ], [ 38201, "doc/rational.xml", 211 ], [ 38202, "doc/rational.xml", 212 ], [ 38268, "doc/rational.xml", 213 ], [ 38282, "doc/rational.xml", 214 ], [ 38283, "doc/rational.xml", 215 ], [ 38481, "doc/rational.xml", 216 ], [ 38574, "doc/rational.xml", 217 ], [ 38630, "doc/rational.xml", 218 ], [ 38644, "doc/rational.xml", 219 ], [ 38681, "doc/rational.xml", 220 ], [ 38697, "doc/rational.xml", 221 ], [ 38698, "doc/rational.xml", 222 ], [ 38713, "doc/rational.xml", 223 ], [ 38752, "doc/rational.xml", 224 ], [ 38768, "doc/rational.xml", 225 ], [ 38769, "doc/rational.xml", 226 ], [ 38784, "doc/rational.xml", 227 ], [ 38819, "doc/rational.xml", 228 ], [ 38833, "doc/rational.xml", 229 ], [ 38834, "doc/rational.xml", 230 ], [ 38835, "doc/rational.xml", 231 ], [ 38904, "doc/rational.xml", 232 ], [ 38923, "doc/rational.xml", 233 ], [ 38963, "doc/rational.xml", 234 ], [ 38965, "doc/rational.xml", 235 ], [ 39004, "doc/rational.xml", 236 ], [ 39006, "doc/rational.xml", 237 ], [ 39037, "doc/rational.xml", 238 ], [ 39041, "doc/rational.xml", 239 ], [ 39074, "doc/rational.xml", 240 ], [ 39081, "doc/rational.xml", 241 ], [ 39108, "doc/rational.xml", 242 ], [ 39118, "doc/rational.xml", 243 ], [ 39132, "doc/rational.xml", 244 ], [ 39161, "doc/rational.xml", 245 ], [ 39172, "doc/rational.xml", 246 ], [ 39185, "doc/rational.xml", 247 ], [ 39186, "doc/AutMan.xml", 89 ], [ 39187, "doc/aut-vs-rat.xml", 1 ], [ 39226, "doc/aut-vs-rat.xml", 2 ], [ 39269, "doc/aut-vs-rat.xml", 3 ], [ 39270, "doc/aut-vs-rat.xml", 4 ], [ 39348, "doc/aut-vs-rat.xml", 5 ], [ 39349, "doc/aut-vs-rat.xml", 6 ], [ 39350, "doc/aut-vs-rat.xml", 7 ], [ 39538, "doc/aut-vs-rat.xml", 8 ], [ 39543, "doc/aut-vs-rat.xml", 9 ], [ 39654, "doc/aut-vs-rat.xml", 10 ], [ 39770, "doc/aut-vs-rat.xml", 11 ], [ 39771, "doc/aut-vs-rat.xml", 12 ] , [ 39837, "doc/aut-vs-rat.xml", 13 ], [ 39838, "doc/aut-vs-rat.xml", 14 ], [ 39839, "doc/aut-vs-rat.xml", 15 ] , [ 39853, "doc/aut-vs-rat.xml", 16 ], [ 39895, "doc/aut-vs-rat.xml", 17 ], [ 39930, "doc/aut-vs-rat.xml", 18 ] , [ 39964, "doc/aut-vs-rat.xml", 19 ], [ 39978, "doc/aut-vs-rat.xml", 20 ], [ 40137, "doc/aut-vs-rat.xml", 21 ] , [ 40176, "doc/aut-vs-rat.xml", 22 ], [ 40186, "doc/aut-vs-rat.xml", 23 ], [ 40267, "doc/aut-vs-rat.xml", 24 ] , [ 40287, "doc/aut-vs-rat.xml", 25 ], [ 40300, "doc/aut-vs-rat.xml", 26 ], [ 40386, "doc/aut-vs-rat.xml", 27 ] , [ 40408, "doc/aut-vs-rat.xml", 28 ], [ 40421, "doc/aut-vs-rat.xml", 29 ], [ 40432, "doc/aut-vs-rat.xml", 30 ] , [ 40448, "doc/aut-vs-rat.xml", 31 ], [ 40463, "doc/aut-vs-rat.xml", 32 ], [ 40474, "doc/aut-vs-rat.xml", 33 ] , [ 40539, "doc/aut-vs-rat.xml", 34 ], [ 40540, "doc/aut-vs-rat.xml", 35 ], [ 40554, "doc/aut-vs-rat.xml", 36 ] , [ 40591, "doc/aut-vs-rat.xml", 37 ], [ 40605, "doc/aut-vs-rat.xml", 38 ], [ 40671, "doc/aut-vs-rat.xml", 39 ] , [ 40681, "doc/aut-vs-rat.xml", 40 ], [ 40717, "doc/aut-vs-rat.xml", 41 ], [ 40722, "doc/aut-vs-rat.xml", 42 ] , [ 40754, "doc/aut-vs-rat.xml", 43 ], [ 40780, "doc/aut-vs-rat.xml", 44 ], [ 40813, "doc/aut-vs-rat.xml", 45 ] , [ 40845, "doc/aut-vs-rat.xml", 46 ], [ 40861, "doc/aut-vs-rat.xml", 47 ], [ 40885, "doc/aut-vs-rat.xml", 48 ] , [ 40912, "doc/aut-vs-rat.xml", 49 ], [ 40949, "doc/aut-vs-rat.xml", 50 ], [ 40954, "doc/aut-vs-rat.xml", 51 ] , [ 40990, "doc/aut-vs-rat.xml", 52 ], [ 41016, "doc/aut-vs-rat.xml", 53 ], [ 41049, "doc/aut-vs-rat.xml", 54 ] , [ 41084, "doc/aut-vs-rat.xml", 55 ], [ 41119, "doc/aut-vs-rat.xml", 56 ], [ 41143, "doc/aut-vs-rat.xml", 57 ] , [ 41170, "doc/aut-vs-rat.xml", 58 ], [ 41181, "doc/aut-vs-rat.xml", 59 ], [ 41197, "doc/aut-vs-rat.xml", 60 ] , [ 41212, "doc/aut-vs-rat.xml", 61 ], [ 41213, "doc/aut-vs-rat.xml", 62 ], [ 41227, "doc/aut-vs-rat.xml", 63 ] , [ 41268, "doc/aut-vs-rat.xml", 64 ], [ 41303, "doc/aut-vs-rat.xml", 65 ], [ 41317, "doc/aut-vs-rat.xml", 66 ] , [ 41500, "doc/aut-vs-rat.xml", 67 ], [ 41510, "doc/aut-vs-rat.xml", 68 ], [ 41554, "doc/aut-vs-rat.xml", 69 ] , [ 41567, "doc/aut-vs-rat.xml", 70 ], [ 41597, "doc/aut-vs-rat.xml", 71 ], [ 41614, "doc/aut-vs-rat.xml", 72 ] , [ 41632, "doc/aut-vs-rat.xml", 73 ], [ 41649, "doc/aut-vs-rat.xml", 74 ], [ 41666, "doc/aut-vs-rat.xml", 75 ] , [ 41690, "doc/aut-vs-rat.xml", 76 ], [ 41717, "doc/aut-vs-rat.xml", 77 ], [ 41761, "doc/aut-vs-rat.xml", 78 ] , [ 41774, "doc/aut-vs-rat.xml", 79 ], [ 41818, "doc/aut-vs-rat.xml", 80 ], [ 41837, "doc/aut-vs-rat.xml", 81 ] , [ 41855, "doc/aut-vs-rat.xml", 82 ], [ 41874, "doc/aut-vs-rat.xml", 83 ], [ 41893, "doc/aut-vs-rat.xml", 84 ] , [ 41917, "doc/aut-vs-rat.xml", 85 ], [ 41944, "doc/aut-vs-rat.xml", 86 ], [ 41955, "doc/aut-vs-rat.xml", 87 ] , [ 41971, "doc/aut-vs-rat.xml", 88 ], [ 41986, "doc/aut-vs-rat.xml", 89 ], [ 41987, "doc/aut-vs-rat.xml", 90 ] , [ 41998, "doc/aut-vs-rat.xml", 91 ], [ 42009, "doc/aut-vs-rat.xml", 92 ], [ 42023, "doc/aut-vs-rat.xml", 93 ] , [ 42052, "doc/aut-vs-rat.xml", 94 ], [ 42067, "doc/aut-vs-rat.xml", 95 ], [ 42187, "doc/aut-vs-rat.xml", 96 ] , [ 42206, "doc/aut-vs-rat.xml", 97 ], [ 42250, "doc/aut-vs-rat.xml", 98 ], [ 42272, "doc/aut-vs-rat.xml", 99 ] , [ 42370, "doc/aut-vs-rat.xml", 100 ], [ 42386, "doc/aut-vs-rat.xml", 101 ], [ 42400, "doc/aut-vs-rat.xml", 102 ], [ 42417, "doc/aut-vs-rat.xml", 103 ], [ 42450, "doc/aut-vs-rat.xml", 104 ], [ 42460, "doc/aut-vs-rat.xml", 105 ], [ 42485, "doc/aut-vs-rat.xml", 106 ], [ 42495, "doc/aut-vs-rat.xml", 107 ], [ 42516, "doc/aut-vs-rat.xml", 108 ], [ 42521, "doc/aut-vs-rat.xml", 109 ], [ 42546, "doc/aut-vs-rat.xml", 110 ], [ 42550, "doc/aut-vs-rat.xml", 111 ], [ 42571, "doc/aut-vs-rat.xml", 112 ], [ 42577, "doc/aut-vs-rat.xml", 113 ], [ 42588, "doc/aut-vs-rat.xml", 114 ], [ 42611, "doc/aut-vs-rat.xml", 115 ], [ 42631, "doc/aut-vs-rat.xml", 116 ], [ 42650, "doc/aut-vs-rat.xml", 117 ], [ 42693, "doc/aut-vs-rat.xml", 118 ], [ 42715, "doc/aut-vs-rat.xml", 119 ], [ 42813, "doc/aut-vs-rat.xml", 120 ], [ 42829, "doc/aut-vs-rat.xml", 121 ], [ 42843, "doc/aut-vs-rat.xml", 122 ], [ 42860, "doc/aut-vs-rat.xml", 123 ], [ 42919, "doc/aut-vs-rat.xml", 124 ], [ 42933, "doc/aut-vs-rat.xml", 125 ], [ 42947, "doc/aut-vs-rat.xml", 126 ], [ 42962, "doc/aut-vs-rat.xml", 127 ], [ 42974, "doc/aut-vs-rat.xml", 128 ], [ 42984, "doc/aut-vs-rat.xml", 129 ], [ 43019, "doc/aut-vs-rat.xml", 130 ], [ 43023, "doc/aut-vs-rat.xml", 131 ], [ 43043, "doc/aut-vs-rat.xml", 132 ], [ 43049, "doc/aut-vs-rat.xml", 133 ], [ 43087, "doc/aut-vs-rat.xml", 134 ], [ 43094, "doc/aut-vs-rat.xml", 135 ], [ 43114, "doc/aut-vs-rat.xml", 136 ], [ 43119, "doc/aut-vs-rat.xml", 137 ], [ 43130, "doc/aut-vs-rat.xml", 138 ], [ 43153, "doc/aut-vs-rat.xml", 139 ], [ 43173, "doc/aut-vs-rat.xml", 140 ], [ 43174, "doc/aut-vs-rat.xml", 141 ], [ 43175, "doc/aut-vs-rat.xml", 142 ], [ 43189, "doc/aut-vs-rat.xml", 143 ], [ 43239, "doc/aut-vs-rat.xml", 144 ], [ 43279, "doc/aut-vs-rat.xml", 145 ], [ 43293, "doc/aut-vs-rat.xml", 146 ], [ 43451, "doc/aut-vs-rat.xml", 147 ], [ 43597, "doc/aut-vs-rat.xml", 148 ], [ 43607, "doc/aut-vs-rat.xml", 149 ], [ 43644, "doc/aut-vs-rat.xml", 150 ], [ 43681, "doc/aut-vs-rat.xml", 151 ], [ 43705, "doc/aut-vs-rat.xml", 152 ], [ 43711, "doc/aut-vs-rat.xml", 153 ], [ 43752, "doc/aut-vs-rat.xml", 154 ], [ 43762, "doc/aut-vs-rat.xml", 155 ], [ 43800, "doc/aut-vs-rat.xml", 156 ], [ 43807, "doc/aut-vs-rat.xml", 157 ], [ 43832, "doc/aut-vs-rat.xml", 158 ], [ 43838, "doc/aut-vs-rat.xml", 159 ], [ 43876, "doc/aut-vs-rat.xml", 160 ], [ 43883, "doc/aut-vs-rat.xml", 161 ], [ 43908, "doc/aut-vs-rat.xml", 162 ], [ 43913, "doc/aut-vs-rat.xml", 163 ], [ 43951, "doc/aut-vs-rat.xml", 164 ], [ 43958, "doc/aut-vs-rat.xml", 165 ], [ 43985, "doc/aut-vs-rat.xml", 166 ], [ 44036, "doc/aut-vs-rat.xml", 167 ], [ 44042, "doc/aut-vs-rat.xml", 168 ], [ 44053, "doc/aut-vs-rat.xml", 169 ], [ 44076, "doc/aut-vs-rat.xml", 170 ], [ 44096, "doc/aut-vs-rat.xml", 171 ], [ 44115, "doc/aut-vs-rat.xml", 172 ], [ 44168, "doc/aut-vs-rat.xml", 173 ], [ 44190, "doc/aut-vs-rat.xml", 174 ], [ 44286, "doc/aut-vs-rat.xml", 175 ], [ 44300, "doc/aut-vs-rat.xml", 176 ], [ 44315, "doc/aut-vs-rat.xml", 177 ], [ 44330, "doc/aut-vs-rat.xml", 178 ], [ 44432, "doc/aut-vs-rat.xml", 179 ], [ 44446, "doc/aut-vs-rat.xml", 180 ], [ 44461, "doc/aut-vs-rat.xml", 181 ], [ 44476, "doc/aut-vs-rat.xml", 182 ], [ 44488, "doc/aut-vs-rat.xml", 183 ], [ 44498, "doc/aut-vs-rat.xml", 184 ], [ 44534, "doc/aut-vs-rat.xml", 185 ], [ 44539, "doc/aut-vs-rat.xml", 186 ], [ 44577, "doc/aut-vs-rat.xml", 187 ], [ 44579, "doc/aut-vs-rat.xml", 188 ], [ 44606, "doc/aut-vs-rat.xml", 189 ], [ 44611, "doc/aut-vs-rat.xml", 190 ], [ 44638, "doc/aut-vs-rat.xml", 191 ], [ 44644, "doc/aut-vs-rat.xml", 192 ], [ 44655, "doc/aut-vs-rat.xml", 193 ], [ 44678, "doc/aut-vs-rat.xml", 194 ], [ 44698, "doc/aut-vs-rat.xml", 195 ], [ 44717, "doc/aut-vs-rat.xml", 196 ], [ 44770, "doc/aut-vs-rat.xml", 197 ], [ 44792, "doc/aut-vs-rat.xml", 198 ], [ 44885, "doc/aut-vs-rat.xml", 199 ], [ 44899, "doc/aut-vs-rat.xml", 200 ], [ 44914, "doc/aut-vs-rat.xml", 201 ], [ 44929, "doc/aut-vs-rat.xml", 202 ], [ 44943, "doc/aut-vs-rat.xml", 203 ], [ 44957, "doc/aut-vs-rat.xml", 204 ], [ 44972, "doc/aut-vs-rat.xml", 205 ], [ 44987, "doc/aut-vs-rat.xml", 206 ], [ 45011, "doc/aut-vs-rat.xml", 207 ], [ 45021, "doc/aut-vs-rat.xml", 208 ], [ 45058, "doc/aut-vs-rat.xml", 209 ], [ 45097, "doc/aut-vs-rat.xml", 210 ], [ 45124, "doc/aut-vs-rat.xml", 211 ], [ 45130, "doc/aut-vs-rat.xml", 212 ], [ 45141, "doc/aut-vs-rat.xml", 213 ], [ 45164, "doc/aut-vs-rat.xml", 214 ], [ 45184, "doc/aut-vs-rat.xml", 215 ], [ 45197, "doc/aut-vs-rat.xml", 216 ], [ 45198, "doc/aut-vs-rat.xml", 217 ], [ 45209, "doc/AutMan.xml", 90 ], [ 45210, "doc/aut-func.xml", 1 ], [ 45249, "doc/aut-func.xml", 2 ], [ 45290, "doc/aut-func.xml", 3 ], [ 45291, "doc/aut-func.xml", 4 ], [ 45353, "doc/aut-func.xml", 5 ], [ 45520, "doc/aut-func.xml", 6 ], [ 45521, "doc/aut-func.xml", 7 ], [ 45574, "doc/aut-func.xml", 8 ], [ 45664, "doc/aut-func.xml", 9 ], [ 45779, "doc/aut-func.xml", 10 ], [ 45780, "doc/aut-func.xml", 11 ], [ 45794, "doc/aut-func.xml", 12 ], [ 45830, "doc/aut-func.xml", 13 ], [ 45844, "doc/aut-func.xml", 14 ], [ 45917, "doc/aut-func.xml", 15 ], [ 45948, "doc/aut-func.xml", 16 ], [ 45967, "doc/aut-func.xml", 17 ], [ 46019, "doc/aut-func.xml", 18 ], [ 46049, "doc/aut-func.xml", 19 ], [ 46086, "doc/aut-func.xml", 20 ], [ 46119, "doc/aut-func.xml", 21 ], [ 46155, "doc/aut-func.xml", 22 ], [ 46191, "doc/aut-func.xml", 23 ], [ 46218, "doc/aut-func.xml", 24 ], [ 46248, "doc/aut-func.xml", 25 ], [ 46279, "doc/aut-func.xml", 26 ], [ 46312, "doc/aut-func.xml", 27 ], [ 46355, "doc/aut-func.xml", 28 ], [ 46394, "doc/aut-func.xml", 29 ], [ 46436, "doc/aut-func.xml", 30 ], [ 46466, "doc/aut-func.xml", 31 ], [ 46496, "doc/aut-func.xml", 32 ], [ 46510, "doc/aut-func.xml", 33 ], [ 46526, "doc/aut-func.xml", 34 ], [ 46541, "doc/aut-func.xml", 35 ], [ 46542, "doc/aut-func.xml", 36 ], [ 46543, "doc/aut-func.xml", 37 ], [ 46557, "doc/aut-func.xml", 38 ], [ 46596, "doc/aut-func.xml", 39 ], [ 46610, "doc/aut-func.xml", 40 ], [ 46683, "doc/aut-func.xml", 41 ], [ 46768, "doc/aut-func.xml", 42 ], [ 46832, "doc/aut-func.xml", 43 ], [ 46890, "doc/aut-func.xml", 44 ], [ 46906, "doc/aut-func.xml", 45 ], [ 46921, "doc/aut-func.xml", 46 ], [ 46922, "doc/aut-func.xml", 47 ], [ 46923, "doc/aut-func.xml", 48 ], [ 46924, "doc/aut-func.xml", 49 ], [ 46938, "doc/aut-func.xml", 50 ], [ 46981, "doc/aut-func.xml", 51 ], [ 46995, "doc/aut-func.xml", 52 ], [ 47066, "doc/aut-func.xml", 53 ], [ 47090, "doc/aut-func.xml", 54 ], [ 47131, "doc/aut-func.xml", 55 ], [ 47206, "doc/aut-func.xml", 56 ], [ 47237, "doc/aut-func.xml", 57 ], [ 47256, "doc/aut-func.xml", 58 ], [ 47308, "doc/aut-func.xml", 59 ], [ 47338, "doc/aut-func.xml", 60 ], [ 47375, "doc/aut-func.xml", 61 ], [ 47411, "doc/aut-func.xml", 62 ], [ 47447, "doc/aut-func.xml", 63 ], [ 47480, "doc/aut-func.xml", 64 ], [ 47504, "doc/aut-func.xml", 65 ], [ 47531, "doc/aut-func.xml", 66 ], [ 47569, "doc/aut-func.xml", 67 ], [ 47588, "doc/aut-func.xml", 68 ], [ 47614, "doc/aut-func.xml", 69 ], [ 47639, "doc/aut-func.xml", 70 ], [ 47664, "doc/aut-func.xml", 71 ], [ 47669, "doc/aut-func.xml", 72 ], [ 47693, "doc/aut-func.xml", 73 ], [ 47720, "doc/aut-func.xml", 74 ], [ 47734, "doc/aut-func.xml", 75 ], [ 47750, "doc/aut-func.xml", 76 ], [ 47765, "doc/aut-func.xml", 77 ], [ 47766, "doc/aut-func.xml", 78 ], [ 47767, "doc/aut-func.xml", 79 ], [ 47768, "doc/aut-func.xml", 80 ], [ 47782, "doc/aut-func.xml", 81 ], [ 47816, "doc/aut-func.xml", 82 ], [ 47830, "doc/aut-func.xml", 83 ], [ 47923, "doc/aut-func.xml", 84 ], [ 47937, "doc/aut-func.xml", 85 ], [ 48004, "doc/aut-func.xml", 86 ], [ 48018, "doc/aut-func.xml", 87 ], [ 48095, "doc/aut-func.xml", 88 ], [ 48128, "doc/aut-func.xml", 89 ], [ 48147, "doc/aut-func.xml", 90 ], [ 48198, "doc/aut-func.xml", 91 ], [ 48265, "doc/aut-func.xml", 92 ], [ 48336, "doc/aut-func.xml", 93 ], [ 48406, "doc/aut-func.xml", 94 ], [ 48476, "doc/aut-func.xml", 95 ], [ 48500, "doc/aut-func.xml", 96 ], [ 48533, "doc/aut-func.xml", 97 ], [ 48562, "doc/aut-func.xml", 98 ], [ 48609, "doc/aut-func.xml", 99 ], [ 48666, "doc/aut-func.xml", 100 ], [ 48722, "doc/aut-func.xml", 101 ], [ 48778, "doc/aut-func.xml", 102 ], [ 48802, "doc/aut-func.xml", 103 ], [ 48832, "doc/aut-func.xml", 104 ], [ 48846, "doc/aut-func.xml", 105 ], [ 48862, "doc/aut-func.xml", 106 ], [ 48877, "doc/aut-func.xml", 107 ], [ 48878, "doc/aut-func.xml", 108 ], [ 48879, "doc/aut-func.xml", 109 ], [ 48880, "doc/aut-func.xml", 110 ], [ 48894, "doc/aut-func.xml", 111 ], [ 48926, "doc/aut-func.xml", 112 ], [ 48940, "doc/aut-func.xml", 113 ], [ 49040, "doc/aut-func.xml", 114 ], [ 49137, "doc/aut-func.xml", 115 ], [ 49183, "doc/aut-func.xml", 116 ], [ 49202, "doc/aut-func.xml", 117 ], [ 49253, "doc/aut-func.xml", 118 ], [ 49274, "doc/aut-func.xml", 119 ], [ 49302, "doc/aut-func.xml", 120 ], [ 49329, "doc/aut-func.xml", 121 ], [ 49356, "doc/aut-func.xml", 122 ], [ 49383, "doc/aut-func.xml", 123 ], [ 49410, "doc/aut-func.xml", 124 ], [ 49437, "doc/aut-func.xml", 125 ], [ 49451, "doc/aut-func.xml", 126 ], [ 49466, "doc/aut-func.xml", 127 ], [ 49480, "doc/aut-func.xml", 128 ], [ 49494, "doc/aut-func.xml", 129 ], [ 49518, "doc/aut-func.xml", 130 ], [ 49548, "doc/aut-func.xml", 131 ], [ 49562, "doc/aut-func.xml", 132 ], [ 49578, "doc/aut-func.xml", 133 ], [ 49593, "doc/aut-func.xml", 134 ], [ 49594, "doc/aut-func.xml", 135 ], [ 49595, "doc/aut-func.xml", 136 ], [ 49609, "doc/aut-func.xml", 137 ], [ 49655, "doc/aut-func.xml", 138 ], [ 49669, "doc/aut-func.xml", 139 ], [ 49756, "doc/aut-func.xml", 140 ], [ 49846, "doc/aut-func.xml", 141 ], [ 49865, "doc/aut-func.xml", 142 ], [ 49913, "doc/aut-func.xml", 143 ], [ 49927, "doc/aut-func.xml", 144 ], [ 49942, "doc/aut-func.xml", 145 ], [ 49953, "doc/aut-func.xml", 146 ], [ 49964, "doc/aut-func.xml", 147 ], [ 49988, "doc/aut-func.xml", 148 ], [ 50018, "doc/aut-func.xml", 149 ], [ 50055, "doc/aut-func.xml", 150 ], [ 50082, "doc/aut-func.xml", 151 ], [ 50110, "doc/aut-func.xml", 152 ], [ 50132, "doc/aut-func.xml", 153 ], [ 50156, "doc/aut-func.xml", 154 ], [ 50186, "doc/aut-func.xml", 155 ], [ 50200, "doc/aut-func.xml", 156 ], [ 50216, "doc/aut-func.xml", 157 ], [ 50231, "doc/aut-func.xml", 158 ], [ 50232, "doc/aut-func.xml", 159 ], [ 50233, "doc/aut-func.xml", 160 ], [ 50234, "doc/aut-func.xml", 161 ], [ 50245, "doc/aut-func.xml", 162 ], [ 50246, "doc/aut-func.xml", 163 ], [ 50247, "doc/aut-func.xml", 164 ], [ 50306, "doc/aut-func.xml", 165 ], [ 50381, "doc/aut-func.xml", 166 ], [ 50406, "doc/aut-func.xml", 167 ], [ 50479, "doc/aut-func.xml", 168 ], [ 50576, "doc/aut-func.xml", 169 ], [ 50653, "doc/aut-func.xml", 170 ], [ 50743, "doc/aut-func.xml", 171 ], [ 50744, "doc/aut-func.xml", 172 ], [ 50758, "doc/aut-func.xml", 173 ], [ 50797, "doc/aut-func.xml", 174 ], [ 50811, "doc/aut-func.xml", 175 ], [ 50975, "doc/aut-func.xml", 176 ], [ 50994, "doc/aut-func.xml", 177 ], [ 51042, "doc/aut-func.xml", 178 ], [ 51059, "doc/aut-func.xml", 179 ], [ 51077, "doc/aut-func.xml", 180 ], [ 51091, "doc/aut-func.xml", 181 ], [ 51102, "doc/aut-func.xml", 182 ], [ 51126, "doc/aut-func.xml", 183 ], [ 51156, "doc/aut-func.xml", 184 ], [ 51190, "doc/aut-func.xml", 185 ], [ 51204, "doc/aut-func.xml", 186 ], [ 51219, "doc/aut-func.xml", 187 ], [ 51233, "doc/aut-func.xml", 188 ], [ 51247, "doc/aut-func.xml", 189 ], [ 51271, "doc/aut-func.xml", 190 ], [ 51298, "doc/aut-func.xml", 191 ], [ 51312, "doc/aut-func.xml", 192 ], [ 51328, "doc/aut-func.xml", 193 ], [ 51343, "doc/aut-func.xml", 194 ], [ 51344, "doc/aut-func.xml", 195 ], [ 51358, "doc/aut-func.xml", 196 ], [ 51396, "doc/aut-func.xml", 197 ], [ 51410, "doc/aut-func.xml", 198 ], [ 51464, "doc/aut-func.xml", 199 ], [ 51483, "doc/aut-func.xml", 200 ], [ 51531, "doc/aut-func.xml", 201 ], [ 51548, "doc/aut-func.xml", 202 ], [ 51566, "doc/aut-func.xml", 203 ], [ 51580, "doc/aut-func.xml", 204 ], [ 51594, "doc/aut-func.xml", 205 ], [ 51618, "doc/aut-func.xml", 206 ], [ 51648, "doc/aut-func.xml", 207 ], [ 51681, "doc/aut-func.xml", 208 ], [ 51692, "doc/aut-func.xml", 209 ], [ 51704, "doc/aut-func.xml", 210 ], [ 51715, "doc/aut-func.xml", 211 ], [ 51726, "doc/aut-func.xml", 212 ], [ 51749, "doc/aut-func.xml", 213 ], [ 51772, "doc/aut-func.xml", 214 ], [ 51786, "doc/aut-func.xml", 215 ], [ 51802, "doc/aut-func.xml", 216 ], [ 51817, "doc/aut-func.xml", 217 ], [ 51818, "doc/aut-func.xml", 218 ], [ 51832, "doc/aut-func.xml", 219 ], [ 51873, "doc/aut-func.xml", 220 ], [ 51887, "doc/aut-func.xml", 221 ], [ 51963, "doc/aut-func.xml", 222 ], [ 52035, "doc/aut-func.xml", 223 ], [ 52054, "doc/aut-func.xml", 224 ], [ 52102, "doc/aut-func.xml", 225 ], [ 52119, "doc/aut-func.xml", 226 ], [ 52137, "doc/aut-func.xml", 227 ], [ 52151, "doc/aut-func.xml", 228 ], [ 52165, "doc/aut-func.xml", 229 ], [ 52189, "doc/aut-func.xml", 230 ], [ 52219, "doc/aut-func.xml", 231 ], [ 52254, "doc/aut-func.xml", 232 ], [ 52262, "doc/aut-func.xml", 233 ], [ 52271, "doc/aut-func.xml", 234 ], [ 52279, "doc/aut-func.xml", 235 ], [ 52287, "doc/aut-func.xml", 236 ], [ 52310, "doc/aut-func.xml", 237 ], [ 52327, "doc/aut-func.xml", 238 ], [ 52341, "doc/aut-func.xml", 239 ], [ 52357, "doc/aut-func.xml", 240 ], [ 52372, "doc/aut-func.xml", 241 ], [ 52373, "doc/aut-func.xml", 242 ], [ 52387, "doc/aut-func.xml", 243 ], [ 52435, "doc/aut-func.xml", 244 ], [ 52449, "doc/aut-func.xml", 245 ], [ 52506, "doc/aut-func.xml", 246 ], [ 52641, "doc/aut-func.xml", 247 ], [ 52660, "doc/aut-func.xml", 248 ], [ 52708, "doc/aut-func.xml", 249 ], [ 52725, "doc/aut-func.xml", 250 ], [ 52743, "doc/aut-func.xml", 251 ], [ 52760, "doc/aut-func.xml", 252 ], [ 52774, "doc/aut-func.xml", 253 ], [ 52798, "doc/aut-func.xml", 254 ], [ 52828, "doc/aut-func.xml", 255 ], [ 52856, "doc/aut-func.xml", 256 ], [ 52871, "doc/aut-func.xml", 257 ], [ 52885, "doc/aut-func.xml", 258 ], [ 52901, "doc/aut-func.xml", 259 ], [ 52916, "doc/aut-func.xml", 260 ], [ 52917, "doc/aut-func.xml", 261 ], [ 52931, "doc/aut-func.xml", 262 ], [ 52974, "doc/aut-func.xml", 263 ], [ 52988, "doc/aut-func.xml", 264 ], [ 53059, "doc/aut-func.xml", 265 ], [ 53126, "doc/aut-func.xml", 266 ], [ 53176, "doc/aut-func.xml", 267 ], [ 53181, "doc/aut-func.xml", 268 ], [ 53260, "doc/aut-func.xml", 269 ], [ 53295, "doc/aut-func.xml", 270 ], [ 53296, "doc/aut-func.xml", 271 ], [ 53315, "doc/aut-func.xml", 272 ], [ 53363, "doc/aut-func.xml", 273 ], [ 53380, "doc/aut-func.xml", 274 ], [ 53398, "doc/aut-func.xml", 275 ], [ 53409, "doc/aut-func.xml", 276 ], [ 53423, "doc/aut-func.xml", 277 ], [ 53447, "doc/aut-func.xml", 278 ], [ 53474, "doc/aut-func.xml", 279 ], [ 53512, "doc/aut-func.xml", 280 ], [ 53529, "doc/aut-func.xml", 281 ], [ 53547, "doc/aut-func.xml", 282 ], [ 53564, "doc/aut-func.xml", 283 ], [ 53581, "doc/aut-func.xml", 284 ], [ 53605, "doc/aut-func.xml", 285 ], [ 53632, "doc/aut-func.xml", 286 ], [ 53646, "doc/aut-func.xml", 287 ], [ 53662, "doc/aut-func.xml", 288 ], [ 53677, "doc/aut-func.xml", 289 ], [ 53678, "doc/aut-func.xml", 290 ], [ 53692, "doc/aut-func.xml", 291 ], [ 53740, "doc/aut-func.xml", 292 ], [ 53789, "doc/aut-func.xml", 293 ], [ 53803, "doc/aut-func.xml", 294 ], [ 53952, "doc/aut-func.xml", 295 ], [ 54187, "doc/aut-func.xml", 296 ], [ 54206, "doc/aut-func.xml", 297 ], [ 54254, "doc/aut-func.xml", 298 ], [ 54268, "doc/aut-func.xml", 299 ], [ 54283, "doc/aut-func.xml", 300 ], [ 54294, "doc/aut-func.xml", 301 ], [ 54305, "doc/aut-func.xml", 302 ], [ 54329, "doc/aut-func.xml", 303 ], [ 54359, "doc/aut-func.xml", 304 ], [ 54407, "doc/aut-func.xml", 305 ], [ 54421, "doc/aut-func.xml", 306 ], [ 54436, "doc/aut-func.xml", 307 ], [ 54447, "doc/aut-func.xml", 308 ], [ 54458, "doc/aut-func.xml", 309 ], [ 54482, "doc/aut-func.xml", 310 ], [ 54509, "doc/aut-func.xml", 311 ], [ 54550, "doc/aut-func.xml", 312 ], [ 54561, "doc/aut-func.xml", 313 ], [ 54573, "doc/aut-func.xml", 314 ], [ 54584, "doc/aut-func.xml", 315 ], [ 54595, "doc/aut-func.xml", 316 ], [ 54618, "doc/aut-func.xml", 317 ], [ 54641, "doc/aut-func.xml", 318 ], [ 54655, "doc/aut-func.xml", 319 ], [ 54671, "doc/aut-func.xml", 320 ], [ 54686, "doc/aut-func.xml", 321 ], [ 54687, "doc/aut-func.xml", 322 ], [ 54688, "doc/aut-func.xml", 323 ], [ 54702, "doc/aut-func.xml", 324 ], [ 54748, "doc/aut-func.xml", 325 ], [ 54762, "doc/aut-func.xml", 326 ], [ 54853, "doc/aut-func.xml", 327 ], [ 54915, "doc/aut-func.xml", 328 ], [ 54936, "doc/aut-func.xml", 329 ], [ 54955, "doc/aut-func.xml", 330 ], [ 54991, "doc/aut-func.xml", 331 ], [ 55046, "doc/aut-func.xml", 332 ], [ 55078, "doc/aut-func.xml", 333 ], [ 55148, "doc/aut-func.xml", 334 ], [ 55200, "doc/aut-func.xml", 335 ], [ 55217, "doc/aut-func.xml", 336 ], [ 55231, "doc/aut-func.xml", 337 ], [ 55246, "doc/aut-func.xml", 338 ], [ 55260, "doc/aut-func.xml", 339 ], [ 55274, "doc/aut-func.xml", 340 ], [ 55298, "doc/aut-func.xml", 341 ], [ 55325, "doc/aut-func.xml", 342 ], [ 55339, "doc/aut-func.xml", 343 ], [ 55355, "doc/aut-func.xml", 344 ], [ 55370, "doc/aut-func.xml", 345 ], [ 55371, "doc/aut-func.xml", 346 ], [ 55372, "doc/aut-func.xml", 347 ], [ 55387, "doc/aut-func.xml", 348 ], [ 55398, "doc/aut-func.xml", 349 ], [ 55399, "doc/aut-func.xml", 350 ], [ 55400, "doc/aut-func.xml", 351 ], [ 55401, "doc/aut-func.xml", 352 ], [ 55402, "doc/AutMan.xml", 91 ], [ 55403, "doc/finitelang.xml", 1 ], [ 55442, "doc/finitelang.xml", 2 ], [ 55485, "doc/finitelang.xml", 3 ], [ 55486, "doc/finitelang.xml", 4 ], [ 55539, "doc/finitelang.xml", 5 ], [ 55616, "doc/finitelang.xml", 6 ], [ 55617, "doc/finitelang.xml", 7 ], [ 55683, "doc/finitelang.xml", 8 ], [ 55684, "doc/finitelang.xml", 9 ], [ 55698, "doc/finitelang.xml", 10 ], [ 55745, "doc/finitelang.xml", 11 ] , [ 55759, "doc/finitelang.xml", 12 ], [ 55830, "doc/finitelang.xml", 13 ], [ 55888, "doc/finitelang.xml", 14 ] , [ 55907, "doc/finitelang.xml", 15 ], [ 55929, "doc/finitelang.xml", 16 ], [ 55937, "doc/finitelang.xml", 17 ] , [ 55973, "doc/finitelang.xml", 18 ], [ 55979, "doc/finitelang.xml", 19 ], [ 56001, "doc/finitelang.xml", 20 ] , [ 56007, "doc/finitelang.xml", 21 ], [ 56043, "doc/finitelang.xml", 22 ], [ 56048, "doc/finitelang.xml", 23 ] , [ 56062, "doc/finitelang.xml", 24 ], [ 56078, "doc/finitelang.xml", 25 ], [ 56093, "doc/finitelang.xml", 26 ] , [ 56094, "doc/finitelang.xml", 27 ], [ 56095, "doc/finitelang.xml", 28 ], [ 56109, "doc/finitelang.xml", 29 ] , [ 56167, "doc/finitelang.xml", 30 ], [ 56181, "doc/finitelang.xml", 31 ], [ 56233, "doc/finitelang.xml", 32 ] , [ 56299, "doc/finitelang.xml", 33 ], [ 56318, "doc/finitelang.xml", 34 ], [ 56362, "doc/finitelang.xml", 35 ] , [ 56372, "doc/finitelang.xml", 36 ], [ 56417, "doc/finitelang.xml", 37 ], [ 56438, "doc/finitelang.xml", 38 ] , [ 56452, "doc/finitelang.xml", 39 ], [ 56468, "doc/finitelang.xml", 40 ], [ 56483, "doc/finitelang.xml", 41 ] , [ 56484, "doc/finitelang.xml", 42 ], [ 56485, "doc/finitelang.xml", 43 ], [ 56499, "doc/finitelang.xml", 44 ] , [ 56551, "doc/finitelang.xml", 45 ], [ 56565, "doc/finitelang.xml", 46 ], [ 56618, "doc/finitelang.xml", 47 ] , [ 56673, "doc/finitelang.xml", 48 ], [ 56714, "doc/finitelang.xml", 49 ], [ 56733, "doc/finitelang.xml", 50 ] , [ 56785, "doc/finitelang.xml", 51 ], [ 56840, "doc/finitelang.xml", 52 ], [ 56863, "doc/finitelang.xml", 53 ] , [ 56874, "doc/finitelang.xml", 54 ], [ 56888, "doc/finitelang.xml", 55 ], [ 56904, "doc/finitelang.xml", 56 ] , [ 56919, "doc/finitelang.xml", 57 ], [ 56920, "doc/finitelang.xml", 58 ], [ 56921, "doc/finitelang.xml", 59 ] , [ 56922, "doc/finitelang.xml", 60 ], [ 56923, "doc/finitelang.xml", 61 ], [ 56924, "doc/finitelang.xml", 62 ] , [ 56939, "doc/finitelang.xml", 63 ], [ 56950, "doc/finitelang.xml", 64 ], [ 56951, "doc/finitelang.xml", 65 ] , [ 56952, "doc/finitelang.xml", 66 ], [ 56953, "doc/finitelang.xml", 67 ], [ 56954, "doc/AutMan.xml", 92 ], [ 56955, "doc/AutMan.xml", 93 ], [ 56956, "doc/AutMan.xml", 94 ], [ 56964, "doc/AutMan.xml", 95 ], [ 56965, "doc/graphs.xml", 1 ], [ 57004, "doc/graphs.xml", 2 ], [ 57043, "doc/graphs.xml", 3 ], [ 57088, "doc/graphs.xml", 4 ], [ 57349, "doc/graphs.xml", 5 ], [ 57350, "doc/graphs.xml", 6 ], [ 57351, "doc/graphs.xml", 7 ], [ 57395, "doc/graphs.xml", 8 ], [ 57472, "doc/graphs.xml", 9 ], [ 57473, "doc/graphs.xml", 10 ], [ 57694, "doc/graphs.xml", 11 ], [ 57717, "doc/graphs.xml", 12 ], [ 57855, "doc/graphs.xml", 13 ], [ 57866, "doc/graphs.xml", 14 ], [ 57888, "doc/graphs.xml", 15 ], [ 57989, "doc/graphs.xml", 16 ], [ 58000, "doc/graphs.xml", 17 ], [ 58010, "doc/graphs.xml", 18 ], [ 58011, "doc/graphs.xml", 19 ], [ 58025, "doc/graphs.xml", 20 ], [ 58062, "doc/graphs.xml", 21 ], [ 58076, "doc/graphs.xml", 22 ], [ 58132, "doc/graphs.xml", 23 ], [ 58151, "doc/graphs.xml", 24 ], [ 58174, "doc/graphs.xml", 25 ], [ 58208, "doc/graphs.xml", 26 ], [ 58222, "doc/graphs.xml", 27 ], [ 58238, "doc/graphs.xml", 28 ], [ 58253, "doc/graphs.xml", 29 ], [ 58254, "doc/graphs.xml", 30 ], [ 58255, "doc/graphs.xml", 31 ], [ 58269, "doc/graphs.xml", 32 ], [ 58310, "doc/graphs.xml", 33 ], [ 58324, "doc/graphs.xml", 34 ], [ 58402, "doc/graphs.xml", 35 ], [ 58421, "doc/graphs.xml", 36 ], [ 58447, "doc/graphs.xml", 37 ], [ 58489, "doc/graphs.xml", 38 ], [ 58515, "doc/graphs.xml", 39 ], [ 58517, "doc/graphs.xml", 40 ], [ 58531, "doc/graphs.xml", 41 ], [ 58547, "doc/graphs.xml", 42 ], [ 58562, "doc/graphs.xml", 43 ], [ 58563, "doc/graphs.xml", 44 ], [ 58564, "doc/graphs.xml", 45 ], [ 58578, "doc/graphs.xml", 46 ], [ 58620, "doc/graphs.xml", 47 ], [ 58634, "doc/graphs.xml", 48 ], [ 58713, "doc/graphs.xml", 49 ], [ 58732, "doc/graphs.xml", 50 ], [ 58758, "doc/graphs.xml", 51 ], [ 58800, "doc/graphs.xml", 52 ], [ 58827, "doc/graphs.xml", 53 ], [ 58829, "doc/graphs.xml", 54 ], [ 58843, "doc/graphs.xml", 55 ], [ 58859, "doc/graphs.xml", 56 ], [ 58874, "doc/graphs.xml", 57 ], [ 58875, "doc/graphs.xml", 58 ], [ 58876, "doc/graphs.xml", 59 ], [ 58890, "doc/graphs.xml", 60 ], [ 58933, "doc/graphs.xml", 61 ], [ 58947, "doc/graphs.xml", 62 ], [ 59022, "doc/graphs.xml", 63 ], [ 59041, "doc/graphs.xml", 64 ], [ 59067, "doc/graphs.xml", 65 ], [ 59109, "doc/graphs.xml", 66 ], [ 59137, "doc/graphs.xml", 67 ], [ 59139, "doc/graphs.xml", 68 ], [ 59153, "doc/graphs.xml", 69 ], [ 59169, "doc/graphs.xml", 70 ], [ 59184, "doc/graphs.xml", 71 ], [ 59185, "doc/graphs.xml", 72 ], [ 59186, "doc/graphs.xml", 73 ], [ 59187, "doc/graphs.xml", 74 ], [ 59188, "doc/graphs.xml", 75 ], [ 59202, "doc/graphs.xml", 76 ], [ 59239, "doc/graphs.xml", 77 ], [ 59253, "doc/graphs.xml", 78 ], [ 59323, "doc/graphs.xml", 79 ], [ 59363, "doc/graphs.xml", 80 ], [ 59382, "doc/graphs.xml", 81 ], [ 59408, "doc/graphs.xml", 82 ], [ 59441, "doc/graphs.xml", 83 ], [ 59464, "doc/graphs.xml", 84 ], [ 59497, "doc/graphs.xml", 85 ], [ 59511, "doc/graphs.xml", 86 ], [ 59527, "doc/graphs.xml", 87 ], [ 59542, "doc/graphs.xml", 88 ], [ 59543, "doc/graphs.xml", 89 ], [ 59617, "doc/graphs.xml", 90 ], [ 59688, "doc/graphs.xml", 91 ], [ 59699, "doc/graphs.xml", 92 ], [ 59700, "doc/graphs.xml", 93 ], [ 59714, "doc/graphs.xml", 94 ], [ 59761, "doc/graphs.xml", 95 ], [ 59775, "doc/graphs.xml", 96 ], [ 59834, "doc/graphs.xml", 97 ], [ 59835, "doc/graphs.xml", 98 ], [ 59854, "doc/graphs.xml", 99 ], [ 59880, "doc/graphs.xml", 100 ], [ 59950, "doc/graphs.xml", 101 ], [ 59983, "doc/graphs.xml", 102 ], [ 60008, "doc/graphs.xml", 103 ], [ 60022, "doc/graphs.xml", 104 ], [ 60038, "doc/graphs.xml", 105 ], [ 60039, "doc/graphs.xml", 106 ], [ 60054, "doc/graphs.xml", 107 ], [ 60055, "doc/graphs.xml", 108 ], [ 60182, "doc/graphs.xml", 109 ], [ 60183, "doc/graphs.xml", 110 ], [ 60197, "doc/graphs.xml", 111 ], [ 60253, "doc/graphs.xml", 112 ], [ 60267, "doc/graphs.xml", 113 ], [ 60336, "doc/graphs.xml", 114 ], [ 60355, "doc/graphs.xml", 115 ], [ 60381, "doc/graphs.xml", 116 ], [ 60435, "doc/graphs.xml", 117 ], [ 60477, "doc/graphs.xml", 118 ], [ 60518, "doc/graphs.xml", 119 ], [ 60532, "doc/graphs.xml", 120 ], [ 60548, "doc/graphs.xml", 121 ], [ 60563, "doc/graphs.xml", 122 ], [ 60564, "doc/graphs.xml", 123 ], [ 60578, "doc/graphs.xml", 124 ], [ 60634, "doc/graphs.xml", 125 ], [ 60648, "doc/graphs.xml", 126 ], [ 60725, "doc/graphs.xml", 127 ], [ 60744, "doc/graphs.xml", 128 ], [ 60792, "doc/graphs.xml", 129 ], [ 60806, "doc/graphs.xml", 130 ], [ 60821, "doc/graphs.xml", 131 ], [ 60832, "doc/graphs.xml", 132 ], [ 60846, "doc/graphs.xml", 133 ], [ 60870, "doc/graphs.xml", 134 ], [ 60897, "doc/graphs.xml", 135 ], [ 60938, "doc/graphs.xml", 136 ], [ 60965, "doc/graphs.xml", 137 ], [ 60979, "doc/graphs.xml", 138 ], [ 60995, "doc/graphs.xml", 139 ], [ 61010, "doc/graphs.xml", 140 ], [ 61011, "doc/graphs.xml", 141 ], [ 61025, "doc/graphs.xml", 142 ], [ 61075, "doc/graphs.xml", 143 ], [ 61089, "doc/graphs.xml", 144 ], [ 61160, "doc/graphs.xml", 145 ], [ 61179, "doc/graphs.xml", 146 ], [ 61227, "doc/graphs.xml", 147 ], [ 61241, "doc/graphs.xml", 148 ], [ 61256, "doc/graphs.xml", 149 ], [ 61270, "doc/graphs.xml", 150 ], [ 61281, "doc/graphs.xml", 151 ], [ 61304, "doc/graphs.xml", 152 ], [ 61327, "doc/graphs.xml", 153 ], [ 61363, "doc/graphs.xml", 154 ], [ 61390, "doc/graphs.xml", 155 ], [ 61404, "doc/graphs.xml", 156 ], [ 61420, "doc/graphs.xml", 157 ], [ 61435, "doc/graphs.xml", 158 ], [ 61436, "doc/graphs.xml", 159 ], [ 61450, "doc/graphs.xml", 160 ], [ 61491, "doc/graphs.xml", 161 ], [ 61505, "doc/graphs.xml", 162 ], [ 61657, "doc/graphs.xml", 163 ], [ 61676, "doc/graphs.xml", 164 ], [ 61702, "doc/graphs.xml", 165 ], [ 61731, "doc/graphs.xml", 166 ], [ 61758, "doc/graphs.xml", 167 ], [ 61781, "doc/graphs.xml", 168 ], [ 61795, "doc/graphs.xml", 169 ], [ 61811, "doc/graphs.xml", 170 ], [ 61826, "doc/graphs.xml", 171 ], [ 61827, "doc/graphs.xml", 172 ], [ 61841, "doc/graphs.xml", 173 ], [ 61878, "doc/graphs.xml", 174 ], [ 61892, "doc/graphs.xml", 175 ], [ 61959, "doc/graphs.xml", 176 ], [ 62021, "doc/graphs.xml", 177 ], [ 62026, "doc/graphs.xml", 178 ], [ 62082, "doc/graphs.xml", 179 ], [ 62101, "doc/graphs.xml", 180 ], [ 62149, "doc/graphs.xml", 181 ], [ 62163, "doc/graphs.xml", 182 ], [ 62178, "doc/graphs.xml", 183 ], [ 62189, "doc/graphs.xml", 184 ], [ 62200, "doc/graphs.xml", 185 ], [ 62224, "doc/graphs.xml", 186 ], [ 62254, "doc/graphs.xml", 187 ], [ 62277, "doc/graphs.xml", 188 ], [ 62332, "doc/graphs.xml", 189 ], [ 62352, "doc/graphs.xml", 190 ], [ 62366, "doc/graphs.xml", 191 ], [ 62381, "doc/graphs.xml", 192 ], [ 62392, "doc/graphs.xml", 193 ], [ 62403, "doc/graphs.xml", 194 ], [ 62411, "doc/graphs.xml", 195 ], [ 62416, "doc/graphs.xml", 196 ], [ 62440, "doc/graphs.xml", 197 ], [ 62470, "doc/graphs.xml", 198 ], [ 62484, "doc/graphs.xml", 199 ], [ 62500, "doc/graphs.xml", 200 ], [ 62515, "doc/graphs.xml", 201 ], [ 62516, "doc/graphs.xml", 202 ], [ 62517, "doc/graphs.xml", 203 ], [ 62531, "doc/graphs.xml", 204 ], [ 62573, "doc/graphs.xml", 205 ], [ 62587, "doc/graphs.xml", 206 ], [ 62633, "doc/graphs.xml", 207 ], [ 62680, "doc/graphs.xml", 208 ], [ 62721, "doc/graphs.xml", 209 ], [ 62740, "doc/graphs.xml", 210 ], [ 62763, "doc/graphs.xml", 211 ], [ 62786, "doc/graphs.xml", 212 ], [ 62817, "doc/graphs.xml", 213 ], [ 62823, "doc/graphs.xml", 214 ], [ 62837, "doc/graphs.xml", 215 ], [ 62853, "doc/graphs.xml", 216 ], [ 62868, "doc/graphs.xml", 217 ], [ 62869, "doc/graphs.xml", 218 ], [ 62870, "doc/graphs.xml", 219 ], [ 62881, "doc/graphs.xml", 220 ], [ 62893, "doc/graphs.xml", 221 ], [ 62894, "doc/AutMan.xml", 96 ], [ 62895, "doc/drawing.xml", 1 ], [ 62934, "doc/drawing.xml", 2 ], [ 62976, "doc/drawing.xml", 3 ], [ 62989, "doc/drawing.xml", 4 ], [ 63003, "doc/drawing.xml", 5 ], [ 63026, "doc/drawing.xml", 6 ], [ 63041, "doc/drawing.xml", 7 ], [ 63087, "doc/drawing.xml", 8 ], [ 63189, "doc/drawing.xml", 9 ], [ 63212, "doc/drawing.xml", 10 ], [ 63225, "doc/drawing.xml", 11 ], [ 63236, "doc/drawing.xml", 12 ], [ 63258, "doc/drawing.xml", 13 ], [ 63282, "doc/drawing.xml", 14 ], [ 63300, "doc/drawing.xml", 15 ], [ 63313, "doc/drawing.xml", 16 ], [ 63336, "doc/drawing.xml", 17 ], [ 63350, "doc/drawing.xml", 18 ], [ 63363, "doc/drawing.xml", 19 ], [ 63374, "doc/drawing.xml", 20 ], [ 63410, "doc/drawing.xml", 21 ], [ 63451, "doc/drawing.xml", 22 ], [ 63465, "doc/drawing.xml", 23 ], [ 63481, "doc/drawing.xml", 24 ], [ 63523, "doc/drawing.xml", 25 ], [ 63540, "doc/drawing.xml", 26 ], [ 63649, "doc/drawing.xml", 27 ], [ 63762, "doc/drawing.xml", 28 ], [ 63829, "doc/drawing.xml", 29 ], [ 63903, "doc/drawing.xml", 30 ], [ 63963, "doc/drawing.xml", 31 ], [ 63978, "doc/drawing.xml", 32 ], [ 63992, "doc/drawing.xml", 33 ], [ 64008, "doc/drawing.xml", 34 ], [ 64043, "doc/drawing.xml", 35 ], [ 64060, "doc/drawing.xml", 36 ], [ 64079, "doc/drawing.xml", 37 ], [ 64149, "doc/drawing.xml", 38 ], [ 64171, "doc/drawing.xml", 39 ], [ 64211, "doc/drawing.xml", 40 ], [ 64231, "doc/drawing.xml", 41 ], [ 64307, "doc/drawing.xml", 42 ], [ 64308, "doc/drawing.xml", 43 ], [ 64317, "doc/drawing.xml", 44 ], [ 64402, "doc/drawing.xml", 45 ], [ 64450, "doc/drawing.xml", 46 ], [ 64542, "doc/drawing.xml", 47 ], [ 64590, "doc/drawing.xml", 48 ], [ 64591, "doc/drawing.xml", 49 ], [ 64600, "doc/drawing.xml", 50 ], [ 64687, "doc/drawing.xml", 51 ], [ 64734, "doc/drawing.xml", 52 ], [ 64735, "doc/drawing.xml", 53 ], [ 64744, "doc/drawing.xml", 54 ], [ 64844, "doc/drawing.xml", 55 ], [ 64901, "doc/drawing.xml", 56 ], [ 64920, "doc/drawing.xml", 57 ], [ 64998, "doc/drawing.xml", 58 ], [ 65033, "doc/drawing.xml", 59 ], [ 65083, "doc/drawing.xml", 60 ], [ 65084, "doc/drawing.xml", 61 ], [ 65138, "doc/drawing.xml", 62 ], [ 65188, "doc/drawing.xml", 63 ], [ 65189, "doc/drawing.xml", 64 ], [ 65243, "doc/drawing.xml", 65 ], [ 65293, "doc/drawing.xml", 66 ], [ 65307, "doc/drawing.xml", 67 ], [ 65442, "doc/drawing.xml", 68 ], [ 65456, "doc/drawing.xml", 69 ], [ 65462, "doc/drawing.xml", 70 ], [ 65485, "doc/drawing.xml", 71 ], [ 65624, "doc/drawing.xml", 72 ], [ 65635, "doc/drawing.xml", 73 ], [ 65657, "doc/drawing.xml", 74 ], [ 65757, "doc/drawing.xml", 75 ], [ 65768, "doc/drawing.xml", 76 ], [ 65778, "doc/drawing.xml", 77 ], [ 65801, "doc/drawing.xml", 78 ], [ 65945, "doc/drawing.xml", 79 ], [ 65956, "doc/drawing.xml", 80 ], [ 65978, "doc/drawing.xml", 81 ], [ 66080, "doc/drawing.xml", 82 ], [ 66091, "doc/drawing.xml", 83 ], [ 66101, "doc/drawing.xml", 84 ], [ 66124, "doc/drawing.xml", 85 ], [ 66268, "doc/drawing.xml", 86 ], [ 66279, "doc/drawing.xml", 87 ], [ 66301, "doc/drawing.xml", 88 ], [ 66403, "doc/drawing.xml", 89 ], [ 66414, "doc/drawing.xml", 90 ], [ 66424, "doc/drawing.xml", 91 ], [ 66447, "doc/drawing.xml", 92 ], [ 66467, "doc/drawing.xml", 93 ], [ 66486, "doc/drawing.xml", 94 ], [ 66543, "doc/drawing.xml", 95 ], [ 66565, "doc/drawing.xml", 96 ], [ 66608, "doc/drawing.xml", 97 ], [ 66622, "doc/drawing.xml", 98 ], [ 66636, "doc/drawing.xml", 99 ], [ 66651, "doc/drawing.xml", 100 ], [ 66682, "doc/drawing.xml", 101 ], [ 66696, "doc/drawing.xml", 102 ], [ 66710, "doc/drawing.xml", 103 ], [ 66725, "doc/drawing.xml", 104 ], [ 66755, "doc/drawing.xml", 105 ], [ 66769, "doc/drawing.xml", 106 ], [ 66783, "doc/drawing.xml", 107 ], [ 66798, "doc/drawing.xml", 108 ], [ 66838, "doc/drawing.xml", 109 ], [ 66852, "doc/drawing.xml", 110 ], [ 66866, "doc/drawing.xml", 111 ], [ 66881, "doc/drawing.xml", 112 ], [ 66971, "doc/drawing.xml", 113 ], [ 66994, "doc/drawing.xml", 114 ], [ 67014, "doc/drawing.xml", 115 ], [ 67033, "doc/drawing.xml", 116 ], [ 67084, "doc/drawing.xml", 117 ], [ 67106, "doc/drawing.xml", 118 ], [ 67161, "doc/drawing.xml", 119 ], [ 67181, "doc/drawing.xml", 120 ], [ 67204, "doc/drawing.xml", 121 ], [ 67224, "doc/drawing.xml", 122 ], [ 67243, "doc/drawing.xml", 123 ], [ 67316, "doc/drawing.xml", 124 ], [ 67338, "doc/drawing.xml", 125 ], [ 67364, "doc/drawing.xml", 126 ], [ 67378, "doc/drawing.xml", 127 ], [ 67392, "doc/drawing.xml", 128 ], [ 67407, "doc/drawing.xml", 129 ], [ 67517, "doc/drawing.xml", 130 ], [ 67526, "doc/drawing.xml", 131 ], [ 67617, "doc/drawing.xml", 132 ], [ 67650, "doc/drawing.xml", 133 ], [ 67673, "doc/drawing.xml", 134 ], [ 67693, "doc/drawing.xml", 135 ], [ 67708, "doc/drawing.xml", 136 ], [ 67709, "doc/drawing.xml", 137 ], [ 67723, "doc/drawing.xml", 138 ], [ 67773, "doc/drawing.xml", 139 ], [ 67860, "doc/drawing.xml", 140 ], [ 67891, "doc/drawing.xml", 141 ], [ 67984, "doc/drawing.xml", 142 ], [ 68017, "doc/drawing.xml", 143 ], [ 68032, "doc/drawing.xml", 144 ], [ 68037, "doc/drawing.xml", 145 ], [ 68051, "doc/drawing.xml", 146 ], [ 68114, "doc/drawing.xml", 147 ], [ 68201, "doc/drawing.xml", 148 ], [ 68232, "doc/drawing.xml", 149 ], [ 68325, "doc/drawing.xml", 150 ], [ 68358, "doc/drawing.xml", 151 ], [ 68373, "doc/drawing.xml", 152 ], [ 68387, "doc/AutMan.xml", 97 ], [ 68388, "doc/foldings.xml", 1 ], [ 68427, "doc/foldings.xml", 2 ], [ 68468, "doc/foldings.xml", 3 ], [ 68469, "doc/foldings.xml", 4 ], [ 68547, "doc/foldings.xml", 5 ], [ 68548, "doc/foldings.xml", 6 ], [ 68878, "doc/foldings.xml", 7 ], [ 68879, "doc/foldings.xml", 8 ], [ 68880, "doc/foldings.xml", 9 ], [ 68943, "doc/foldings.xml", 10 ], [ 68944, "doc/foldings.xml", 11 ], [ 69018, "doc/foldings.xml", 12 ], [ 69089, "doc/foldings.xml", 13 ], [ 69163, "doc/foldings.xml", 14 ], [ 69461, "doc/foldings.xml", 15 ], [ 69466, "doc/foldings.xml", 16 ], [ 69539, "doc/foldings.xml", 17 ], [ 69626, "doc/foldings.xml", 18 ], [ 69631, "doc/foldings.xml", 19 ], [ 69722, "doc/foldings.xml", 20 ], [ 69785, "doc/foldings.xml", 21 ], [ 70026, "doc/foldings.xml", 22 ], [ 70027, "doc/foldings.xml", 23 ], [ 70041, "doc/foldings.xml", 24 ], [ 70095, "doc/foldings.xml", 25 ], [ 70110, "doc/foldings.xml", 26 ], [ 70129, "doc/foldings.xml", 27 ], [ 70158, "doc/foldings.xml", 28 ], [ 70198, "doc/foldings.xml", 29 ], [ 70239, "doc/foldings.xml", 30 ], [ 70253, "doc/foldings.xml", 31 ], [ 70269, "doc/foldings.xml", 32 ], [ 70284, "doc/foldings.xml", 33 ], [ 70285, "doc/foldings.xml", 34 ], [ 70286, "doc/foldings.xml", 35 ], [ 70300, "doc/foldings.xml", 36 ], [ 70354, "doc/foldings.xml", 37 ], [ 70368, "doc/foldings.xml", 38 ], [ 70387, "doc/foldings.xml", 39 ], [ 70423, "doc/foldings.xml", 40 ], [ 70463, "doc/foldings.xml", 41 ], [ 70486, "doc/foldings.xml", 42 ], [ 70500, "doc/foldings.xml", 43 ], [ 70530, "doc/foldings.xml", 44 ], [ 70531, "doc/foldings.xml", 45 ], [ 70545, "doc/foldings.xml", 46 ], [ 70584, "doc/foldings.xml", 47 ], [ 70598, "doc/foldings.xml", 48 ], [ 70671, "doc/foldings.xml", 49 ], [ 70741, "doc/foldings.xml", 50 ], [ 70760, "doc/foldings.xml", 51 ], [ 70790, "doc/foldings.xml", 52 ], [ 70818, "doc/foldings.xml", 53 ], [ 70877, "doc/foldings.xml", 54 ], [ 70894, "doc/foldings.xml", 55 ], [ 70963, "doc/foldings.xml", 56 ], [ 71033, "doc/foldings.xml", 57 ], [ 71097, "doc/foldings.xml", 58 ], [ 71161, "doc/foldings.xml", 59 ], [ 71184, "doc/foldings.xml", 60 ], [ 71207, "doc/foldings.xml", 61 ], [ 71221, "doc/foldings.xml", 62 ], [ 71251, "doc/foldings.xml", 63 ], [ 71252, "doc/foldings.xml", 64 ], [ 71266, "doc/foldings.xml", 65 ], [ 71309, "doc/foldings.xml", 66 ], [ 71323, "doc/foldings.xml", 67 ], [ 71452, "doc/foldings.xml", 68 ], [ 71457, "doc/foldings.xml", 69 ], [ 71688, "doc/foldings.xml", 70 ], [ 71707, "doc/foldings.xml", 71 ], [ 71741, "doc/foldings.xml", 72 ], [ 71796, "doc/foldings.xml", 73 ], [ 71813, "doc/foldings.xml", 74 ], [ 71839, "doc/foldings.xml", 75 ], [ 71866, "doc/foldings.xml", 76 ], [ 71892, "doc/foldings.xml", 77 ], [ 71918, "doc/foldings.xml", 78 ], [ 71941, "doc/foldings.xml", 79 ], [ 71964, "doc/foldings.xml", 80 ], [ 71978, "doc/foldings.xml", 81 ], [ 72007, "doc/foldings.xml", 82 ], [ 72020, "doc/foldings.xml", 83 ], [ 72064, "doc/foldings.xml", 84 ], [ 72078, "doc/foldings.xml", 85 ], [ 72148, "doc/foldings.xml", 86 ], [ 72158, "doc/foldings.xml", 87 ], [ 72177, "doc/foldings.xml", 88 ], [ 72207, "doc/foldings.xml", 89 ], [ 72236, "doc/foldings.xml", 90 ], [ 72291, "doc/foldings.xml", 91 ], [ 72311, "doc/foldings.xml", 92 ], [ 72340, "doc/foldings.xml", 93 ], [ 72370, "doc/foldings.xml", 94 ], [ 72396, "doc/foldings.xml", 95 ], [ 72422, "doc/foldings.xml", 96 ], [ 72445, "doc/foldings.xml", 97 ], [ 72468, "doc/foldings.xml", 98 ], [ 72469, "doc/foldings.xml", 99 ], [ 72483, "doc/foldings.xml", 100 ], [ 72512, "doc/foldings.xml", 101 ], [ 72523, "doc/foldings.xml", 102 ], [ 72586, "doc/foldings.xml", 103 ], [ 72838, "doc/foldings.xml", 104 ], [ 72839, "doc/foldings.xml", 105 ], [ 72853, "doc/foldings.xml", 106 ], [ 72907, "doc/foldings.xml", 107 ], [ 72921, "doc/foldings.xml", 108 ], [ 73058, "doc/foldings.xml", 109 ], [ 73077, "doc/foldings.xml", 110 ], [ 73155, "doc/foldings.xml", 111 ], [ 73200, "doc/foldings.xml", 112 ], [ 73255, "doc/foldings.xml", 113 ], [ 73272, "doc/foldings.xml", 114 ], [ 73289, "doc/foldings.xml", 115 ], [ 73307, "doc/foldings.xml", 116 ], [ 73315, "doc/foldings.xml", 117 ], [ 73329, "doc/foldings.xml", 118 ], [ 73352, "doc/foldings.xml", 119 ], [ 73375, "doc/foldings.xml", 120 ], [ 73389, "doc/foldings.xml", 121 ], [ 73405, "doc/foldings.xml", 122 ], [ 73420, "doc/foldings.xml", 123 ], [ 73421, "doc/foldings.xml", 124 ], [ 73435, "doc/foldings.xml", 125 ], [ 73487, "doc/foldings.xml", 126 ], [ 73501, "doc/foldings.xml", 127 ], [ 73577, "doc/foldings.xml", 128 ], [ 73651, "doc/foldings.xml", 129 ], [ 73670, "doc/foldings.xml", 130 ], [ 73714, "doc/foldings.xml", 131 ], [ 73735, "doc/foldings.xml", 132 ], [ 73749, "doc/foldings.xml", 133 ], [ 73765, "doc/foldings.xml", 134 ], [ 73780, "doc/foldings.xml", 135 ], [ 73781, "doc/foldings.xml", 136 ], [ 73792, "doc/foldings.xml", 137 ], [ 73804, "doc/foldings.xml", 138 ], [ 73805, "doc/AutMan.xml", 98 ], [ 73806, "doc/AutMan.xml", 99 ], [ 73807, "doc/AutMan.xml", 100 ], [ 73808, "doc/AutMan.xml", 101 ], [ 73809, "doc/AutMan.xml", 102 ], [ 73845, "doc/AutMan.xml", 103 ], [ 73846, "doc/AutMan.xml", 104 ], [ 73858, "doc/AutMan.xml", 105 ], [ 73859, "doc/AutMan.xml", 106 ], [ 73867, "doc/AutMan.xml", 107 ], [ 73868, "doc/AutMan.xml", 108 ] ], labels := rec( (" MinimalAutomaton") := [ "5.2-3", "chap5_mj.html#X7F7AE088808A5D00" ], (" StarRatExp") := [ "3.3-3", "chap3_mj.html#X83D8DAE6862C8A96" ], AccessibleAutomaton := [ "5.2-5", "chap5_mj.html#X804A6BC979DA6E61" ], AccessibleStates := [ "5.2-4", "chap5_mj.html#X7F484D5A781BB643" ], AddInverseEdgesToInverseAutomaton := [ "2.4-5", "chap2_mj.html#X7A4CDEFB84B97849" ], AlphabetOfAutomaton := [ "2.2-1", "chap2_mj.html#X7A34B47778B50FFE" ], AlphabetOfAutomatonAsList := [ "2.2-2", "chap2_mj.html#X8044B24B82C59BBF" ], AlphabetOfRatExp := [ "3.1-6", "chap3_mj.html#X8773359880149A98" ], AlphabetOfRatExpAsList := [ "3.1-7", "chap3_mj.html#X84B9922B7C006158" ] , AreDisjointLang := [ "4.3-5", "chap4_mj.html#X83F1DE067C2D31A5" ], AreEqualLang := [ "4.3-3", "chap4_mj.html#X8346D1B17DBF96E7" ], AreEquivAut := [ "4.3-3", "chap4_mj.html#X8346D1B17DBF96E7" ], AutToRatExp := [ "4.1-1", "chap4_mj.html#X8751E3927CA4DEA1" ], AutoConnectedComponents := [ "A.1-6", "chapA_mj.html#X7F23780E7A12A79E" ], AutoIsAcyclicGraph := [ "A.1-12", "chapA_mj.html#X7971EE367B6B7F36" ], AutoVertexDegree := [ "A.1-4", "chapA_mj.html#X7FA6FAAE7AA8715D" ], Automaton := [ "2.1-1", "chap2_mj.html#X87D8222D7B50731E" ], AutomatonAllPairsPaths := [ "5.2-7", "chap5_mj.html#X8460C44386EE6225" ] , ("AutomatonToRatExp ") := [ "4.1-1", "chap4_mj.html#X8751E3927CA4DEA1" ] , CopyAutomaton := [ "2.5-1", "chap2_mj.html#X8225A1B886131707" ], CopyRatExp := [ "3.1-8", "chap3_mj.html#X786A096681CAC3CD" ], DiGraphToRelation := [ "A.1-10", "chapA_mj.html#X78869D478792B3AD" ], DrawAutomata := [ "B.2-2", "chapB_mj.html#X7AEE146D8391CA3D" ], DrawAutomaton := [ "B.2-1", "chapB_mj.html#X7BC2FDA77FD0237B" ], DrawGraph := [ "B.2-3", "chapB_mj.html#X7D17B77F829F9CCB" ], DrawSCCAutomaton := [ "B.2-4", "chapB_mj.html#X7E478FDD807853CA" ], EpsilonCompactedAut := [ "5.1-3", "chap5_mj.html#X871F807D79CE148C" ], EpsilonToNFA := [ "5.1-1", "chap5_mj.html#X81E06D518428CA3C" ], EpsilonToNFASet := [ "5.1-2", "chap5_mj.html#X81DC84E17A170270" ], FAtoRatExp := [ "4.1-1", "chap4_mj.html#X8751E3927CA4DEA1" ], FinalStatesOfAutomaton := [ "2.2-6", "chap2_mj.html#X78CDDCC27D085F00" ] , FiniteRegularLanguageToListOfWords := [ "6.1-2", "chap6_mj.html#X7E48CD3E78277FF7" ], FlowerAutomaton := [ "C.1-3", "chapC_mj.html#X7EAFF7E879D115C5" ], FoldFlowerAutomaton := [ "C.1-4", "chapC_mj.html#X7F729A4E8784D92E" ], FuseSymbolsAut := [ "5.1-6", "chap5_mj.html#X7B61945581FE4AC6" ], GeneratorsToListRepresentation := [ "C.1-1", "chapC_mj.html#X85358D097C314EB5" ], GeodesicTreeOfInverseAutomaton := [ "C.2-1", "chapC_mj.html#X81DA149779A167BD" ], GraphStronglyConnectedComponents := [ "A.1-7", "chapA_mj.html#X7D5288C982F92481" ], InitialStatesOfAutomaton := [ "2.2-4", "chap2_mj.html#X7B5C3CFA83FF80EA" ], IntersectionAutomaton := [ "5.2-6", "chap5_mj.html#X7BAACCAF7E2D213B" ], IntersectionLanguage := [ "5.2-6", "chap5_mj.html#X7BAACCAF7E2D213B" ], InverseAutomatonToGenerators := [ "C.2-2", "chapC_mj.html#X7F117C43814F2CDE" ], IsAutomaton := [ "2.1-2", "chap2_mj.html#X83CCDEF9814F1E6D" ], IsContainedLang := [ "4.3-4", "chap4_mj.html#X7FCB176285FA5BBB" ], IsDenseAutomaton := [ "2.4-1", "chap2_mj.html#X8356E41086482483" ], IsDeterministicAutomaton := [ "2.1-3", "chap2_mj.html#X7D39CECC7E12DD8A" ], IsEmptyLang := [ "4.3-1", "chap4_mj.html#X84E0143A860889A6" ], IsEpsilonAutomaton := [ "2.1-5", "chap2_mj.html#X81EC5331790D6022" ], IsFiniteRegularLanguage := [ "6.1-1", "chap6_mj.html#X82971FC2851B7B30" ], IsFullLang := [ "4.3-2", "chap4_mj.html#X86AA1A5F7E1EEAFE" ], IsInverseAutomaton := [ "2.4-4", "chap2_mj.html#X7B7CA23680888C9C" ], IsNonDeterministicAutomaton := [ "2.1-4", "chap2_mj.html#X83C1148481BAA3DD" ], IsPermutationAutomaton := [ "2.4-3", "chap2_mj.html#X80CCDD438258CD25" ] , IsRationalExpression := [ "3.1-5", "chap3_mj.html#X7DDB46817D6E79BE" ], IsRecognizedByAutomaton := [ "2.4-2", "chap2_mj.html#X8676D8388053F1E7" ], IsReversibleAutomaton := [ "2.4-6", "chap2_mj.html#X8321BCE57E55FB30" ], ListOfWordsToAutomaton := [ "6.1-3", "chap6_mj.html#X7F9C5C6F815773E6" ] , ListPermutedAutomata := [ "2.5-7", "chap2_mj.html#X7A72DDF0782E8D5E" ], ListSinkStatesAut := [ "2.5-3", "chap2_mj.html#X79F052EC81135807" ], ListToGeneratorsRepresentation := [ "C.1-2", "chapC_mj.html#X80F3E10784590374" ], MSccAutomaton := [ "A.1-11", "chapA_mj.html#X7D63604A8413AAAF" ], MinimalizedAut := [ "5.2-2", "chap5_mj.html#X83C26846866AEE46" ], NFAtoDFA := [ "5.1-5", "chap5_mj.html#X87D0F9F17F2BEB57" ], NormalizedAutomaton := [ "2.5-8", "chap2_mj.html#X7FA7DF6D87D63D67" ], NullCompletionAutomaton := [ "2.5-2", "chap2_mj.html#X80D423A584246E2E" ], NumberStatesOfAutomaton := [ "2.2-8", "chap2_mj.html#X7D22AD207A3D5FF4" ], PermutedAutomaton := [ "2.5-6", "chap2_mj.html#X7A4A066583C71ABE" ], ProductAutomaton := [ "2.5-10", "chap2_mj.html#X83E772F2878546A4" ], ProductOfLanguages := [ "2.5-11", "chap2_mj.html#X85F6AD697DCA5765" ], ProductRatExp := [ "3.3-2", "chap3_mj.html#X7E29107587611CE2" ], RandomAutomaton := [ "2.1-7", "chap2_mj.html#X801019097C93BCCC" ], RandomDiGraph := [ "A.1-1", "chapA_mj.html#X86CF9F66788B2A24" ], RandomRatExp := [ "3.1-3", "chap3_mj.html#X7DA59CBE8571796C" ], RatExpOnnLetters := [ "3.1-2", "chap3_mj.html#X7EE5A70F7F237C41" ], RatExpToAut := [ "4.2-2", "chap4_mj.html#X866BCCB2788E8561" ], RatExpToAutomaton := [ "4.2-2", "chap4_mj.html#X866BCCB2788E8561" ], RatExpToNDAut := [ "4.2-1", "chap4_mj.html#X840EEB7B7DD8B03D" ], RationalExpression := [ "3.1-1", "chap3_mj.html#X801EC6F38568426D" ], ReducedNFA := [ "5.1-4", "chap5_mj.html#X83B0473278DC14F3" ], RemovedSinkStates := [ "2.5-4", "chap2_mj.html#X8240136E7A26B1A6" ], ReversedAutomaton := [ "2.5-5", "chap2_mj.html#X7C0526217BFE7A65" ], ReversedGraph := [ "A.1-5", "chapA_mj.html#X7BA5F1DF7DA89DC5" ], SetFinalStatesOfAutomaton := [ "2.2-7", "chap2_mj.html#X80689F1480F9D959" ], SetInitialStatesOfAutomaton := [ "2.2-5", "chap2_mj.html#X8408FE8487028B7F" ], SizeRatExp := [ "3.1-4", "chap3_mj.html#X7E3AA84784019E6C" ], String := [ "2.1-6", "chap2_mj.html#X81FB5BE27903EC32" ], SubgroupGenToInvAut := [ "C.1-5", "chapC_mj.html#X826D581D794F1BFB" ], SyntacticSemigroupAut := [ "2.6-2", "chap2_mj.html#X7E3F29DF86A26347" ], SyntacticSemigroupLang := [ "2.6-3", "chap2_mj.html#X7D058F0D83D7B49B" ] , TransitionMatrixOfAutomaton := [ "2.2-3", "chap2_mj.html#X872BB42A81E4D0E7" ], TransitionSemigroup := [ "2.6-1", "chap2_mj.html#X7B9994827CF94CC7" ], UnderlyingGraphOfAutomaton := [ "A.1-9", "chapA_mj.html#X78CF8E507E100C62" ], UnderlyingMultiGraphOfAutomaton := [ "A.1-8", "chapA_mj.html#X859B7C517AFBD198" ], UnionAutomata := [ "2.5-9", "chap2_mj.html#X7A94A77A7C65BA90" ], UnionRatExp := [ "3.3-1", "chap3_mj.html#X8206BD4E82A81D8F" ], UsefulAutomaton := [ "5.2-1", "chap5_mj.html#X7B5B5B10868FB525" ], VertexInDegree := [ "A.1-2", "chapA_mj.html#X868EE741872B932D" ], VertexOutDegree := [ "A.1-3", "chapA_mj.html#X84DF2E8E7A7B32C6" ] ), labeltexts := rec( ), linelength := 76, mathmode := "MathJax", name := "WHOLEDOCUMENT", next := 73962, root := ~, six := [ [ "Title page", ".", [ 0, 0, 0 ], 1,, "title page", "X7D2C85EC87DD46E5" ], [ "Copyright", ".-1", [ 0, 0, 1 ], 25,, "copyright", "X81488B807F2A1CF1" ], [ "Acknowledgements", ".-3", [ 0, 0, 3 ], 33,, "acknowledgements", "X82A988D47DFAFCFA" ], [ "Colophon", ".-2", [ 0, 0, 2 ], 60,, "colophon", "X7982162280BC7A61" ] , [ "Table of Contents", ".-4", [ 0, 0, 4 ], 80,, "table of contents", "X8537FEB07AF2BEC8" ], [ "\033[1X\033[33X\033[0;-2YIntroduction\033[133X\033[101X", "1", [ 1, 0, 0 ], 1,, "introduction", "X7DFB63A97E67C0A1" ], [ "\033[1X\033[33X\033[0;-2YFinite Automata\033[133X\033[101X", "2", [ 2, 0, 0 ], 1,, "finite automata", "X811E5FC2849C5644" ], [ "\033[1X\033[33X\033[0;-2YAutomata generation\033[133X\033[101X", "2.1", [ 2, 1, 0 ], 23,, "automata generation", "X821C3B3687B1F2FF" ], [ "\033[1X\033[33X\033[0;-2YAutomata internals\033[133X\033[101X", "2.2", [ 2, 2, 0 ], 236,, "automata internals", "X80AB906D86BBC153" ], [ "\033[1X\033[33X\033[0;-2YComparison of automata\033[133X\033[101X", "2.3", [ 2, 3, 0 ], 368,, "comparison of automata", "X8454E24E7D9FC1C2" ], [ "\033[1X\033[33X\033[0;-2YTests involving automata\033[133X\033[101X", "2.4", [ 2, 4, 0 ], 384,, "tests involving automata", "X867887A683961C63" ], [ "\033[1X\033[33X\033[0;-2YBasic operations\033[133X\033[101X", "2.5", [ 2, 5, 0 ], 494,, "basic operations", "X82EB5BE77F9F686A" ], [ "\033[1X\033[33X\033[0;-2YLinks with Semigroups\033[133X\033[101X", "2.6", [ 2, 6, 0 ], 725,, "links with semigroups", "X79F21CB37B34A354" ], [ "\033[1X\033[33X\033[0;-2YRational languages\033[133X\033[101X", "3", [ 3, 0, 0 ], 1,, "rational languages", "X833D315483172905" ], [ "\033[1X\033[33X\033[0;-2YRational Expressions\033[133X\033[101X", "3.1", [ 3, 1, 0 ], 9,, "rational expressions", "X7C144D368043DE01" ], [ "\033[1X\033[33X\033[0;-2YComparison of rational expressions\033[133X\\ 033[101X", "3.2", [ 3, 2, 0 ], 176,, "comparison of rational expressions", "X7FB9270D7E8FABF3" ], [ "\033[1X\033[33X\033[0;-2YOperations with rational languages\033[133X\\ 033[101X", "3.3", [ 3, 3, 0 ], 189,, "operations with rational languages", "X83A280D47DB3A033" ], [ "\033[1X\033[33X\033[0;-2YAutomata \033[13Xversus\033[113X\033[101X\\ 027\033[1X\027 rational expressions\033[133X\033[101X", "4", [ 4, 0, 0 ], 1,, "automata versus\027\027 rational expressions", "X814B7AD47E8EDAFA" ], [ "\033[1X\033[33X\033[0;-2YFrom automata to rational expressions\033[133\ X\033[101X", "4.1", [ 4, 1, 0 ], 12,, "from automata to rational expressions", "X7E631B92873300C1" ], [ "\033[1X\033[33X\033[0;-2YFrom rational expression to automata\033[133X\ \033[101X", "4.2", [ 4, 2, 0 ], 34,, "from rational expression to automata", "X8138227D7E65FC8C" ], [ "\033[1X\033[33X\033[0;-2YSome tests on automata\033[133X\033[101X", "4.3", [ 4, 3, 0 ], 94,, "some tests on automata", "X85DCEFB88712056E" ], [ "\033[1X\033[33X\033[0;-2YSome functions involving automata\033[133X\\ 033[101X", "5", [ 5, 0, 0 ], 1,, "some functions involving automata", "X7919AA9384EBC6A5" ], [ "\033[1X\033[33X\033[0;-2YFrom one type to another\033[133X\033[101X", "5.1", [ 5, 1, 0 ], 8,, "from one type to another", "X8050E142796E0CBF" ], [ "\033[1X\033[33X\033[0;-2YMinimalization of an automaton\033[133X\033[1\ 01X", "5.2", [ 5, 2, 0 ], 150,, "minimalization of an automaton", "X862A34E9801BEB25" ], [ "\033[1X\033[33X\033[0;-2YFinite regular languages\033[133X\033[101X", "6", [ 6, 0, 0 ], 1,, "finite regular languages", "X7AF3E5D081126EBD" ], [ "\033[1X\033[33X\033[0;-2YDealing with finite regular languages\033[133\ X\033[101X", "6.1", [ 6, 1, 0 ], 6,, "dealing with finite regular languages", "X85643AEB7E7FB39A" ], [ "\033[1X\033[33X\033[0;-2YDirected graphs\033[133X\033[101X", "A", [ "A", 0, 0 ], 1,, "directed graphs", "X82FB3D357E1BE288" ], [ "\033[1X\033[33X\033[0;-2YDirected graphs\033[133X\033[101X", "A.1", [ "A", 1, 0 ], 9,, "directed graphs", "X82FB3D357E1BE288" ], [ "\033[1X\033[33X\033[0;-2YDrawing automata\033[133X\033[101X", "B", [ "B", 0, 0 ], 1,, "drawing automata", "X82D249F0793E6561" ], [ "\033[1X\033[33X\033[0;-2YInstalling some external programs\033[133X\\ 033[101X", "B.1", [ "B", 1, 0 ], 8,, "installing some external programs", "X7988DBAB78EA0C06" ], [ "\033[1X\033[33X\033[0;-2YFunctions to draw automata\033[133X\033[101X" , "B.2", [ "B", 2, 0 ], 18,, "functions to draw automata", "X84C97CA079719B11" ], [ "\033[1X\033[33X\033[0;-2YDrawings output formats\033[133X\033[101X", "B.3", [ "B", 3, 0 ], 78,, "drawings output formats", "X7F5419527FFCD1DF" ], [ "\033[1X\033[33X\033[0;-2YDrawings extra graph attributes\033[133X\033[\ 101X", "B.4", [ "B", 4, 0 ], 86,, "drawings extra graph attributes", "X795DD98D86A1A441" ], [ "\033[1X\033[33X\033[0;-2YInverse automata and subgroups of the free gr\ oup\033[133X\033[101X", "C", [ "C", 0, 0 ], 1,, "inverse automata and subgroups of the free group", "X7DBBB0537ADC9899" ], [ "\033[1X\033[33X\033[0;-2YFrom subgroups to inverse automata\033[133X\\ 033[101X", "C.1", [ "C", 1, 0 ], 9,, "from subgroups to inverse automata", "X7DDDA5127A3D170C" ], [ "\033[1X\033[33X\033[0;-2YFrom inverse automata to subgroups\033[133X\\ 033[101X", "C.2", [ "C", 2, 0 ], 113,, "from inverse automata to subgroups", "X85F2060A86DBE62B" ], [ "Bibliography", "Bib", [ "Bib", 0, 0 ], 1,, "bibliography", "X7A6F98FD85F02BFE" ], [ "References", "Bib", [ "Bib", 0, 0 ], 1,, "references", "X7A6F98FD85F02BFE" ], [ "Index", "Ind", [ "Ind", 0, 0 ], 1,, "index", "X83A0356F839C696F" ], [ "\033[2XAutomaton\033[102X", "2.1-1", [ 2, 1, 1 ], 28,, "automaton", "X87D8222D7B50731E" ], [ "\033[2XIsAutomaton\033[102X", "2.1-2", [ 2, 1, 2 ], 122,, "isautomaton", "X83CCDEF9814F1E6D" ], [ "\033[2XIsDeterministicAutomaton\033[102X", "2.1-3", [ 2, 1, 3 ], 135, , "isdeterministicautomaton", "X7D39CECC7E12DD8A" ], [ "\033[2XIsNonDeterministicAutomaton\033[102X", "2.1-4", [ 2, 1, 4 ], 147,, "isnondeterministicautomaton", "X83C1148481BAA3DD" ], [ "\033[2XIsEpsilonAutomaton\033[102X", "2.1-5", [ 2, 1, 5 ], 159,, "isepsilonautomaton", "X81EC5331790D6022" ], [ "\033[2XString\033[102X", "2.1-6", [ 2, 1, 6 ], 171,, "string", "X81FB5BE27903EC32" ], [ "\033[2XRandomAutomaton\033[102X", "2.1-7", [ 2, 1, 7 ], 194,, "randomautomaton", "X801019097C93BCCC" ], [ "\033[2XAlphabetOfAutomaton\033[102X", "2.2-1", [ 2, 2, 1 ], 242,, "alphabetofautomaton", "X7A34B47778B50FFE" ], [ "\033[2XAlphabetOfAutomatonAsList\033[102X", "2.2-2", [ 2, 2, 2 ], 254,, "alphabetofautomatonaslist", "X8044B24B82C59BBF" ], [ "\033[2XTransitionMatrixOfAutomaton\033[102X", "2.2-3", [ 2, 2, 3 ], 287,, "transitionmatrixofautomaton", "X872BB42A81E4D0E7" ], [ "\033[2XInitialStatesOfAutomaton\033[102X", "2.2-4", [ 2, 2, 4 ], 299, , "initialstatesofautomaton", "X7B5C3CFA83FF80EA" ], [ "\033[2XSetInitialStatesOfAutomaton\033[102X", "2.2-5", [ 2, 2, 5 ], 311,, "setinitialstatesofautomaton", "X8408FE8487028B7F" ], [ "\033[2XFinalStatesOfAutomaton\033[102X", "2.2-6", [ 2, 2, 6 ], 328,, "finalstatesofautomaton", "X78CDDCC27D085F00" ], [ "\033[2XSetFinalStatesOfAutomaton\033[102X", "2.2-7", [ 2, 2, 7 ], 340,, "setfinalstatesofautomaton", "X80689F1480F9D959" ], [ "\033[2XNumberStatesOfAutomaton\033[102X", "2.2-8", [ 2, 2, 8 ], 356, , "numberstatesofautomaton", "X7D22AD207A3D5FF4" ], [ "\033[2XIsDenseAutomaton\033[102X", "2.4-1", [ 2, 4, 1 ], 389,, "isdenseautomaton", "X8356E41086482483" ], [ "\033[2XIsRecognizedByAutomaton\033[102X", "2.4-2", [ 2, 4, 2 ], 402, , "isrecognizedbyautomaton", "X8676D8388053F1E7" ], [ "\033[2XIsPermutationAutomaton\033[102X", "2.4-3", [ 2, 4, 3 ], 420,, "ispermutationautomaton", "X80CCDD438258CD25" ], [ "\033[2XIsInverseAutomaton\033[102X", "2.4-4", [ 2, 4, 4 ], 433,, "isinverseautomaton", "X7B7CA23680888C9C" ], [ "\033[2XAddInverseEdgesToInverseAutomaton\033[102X", "2.4-5", [ 2, 4, 5 ], 452,, "addinverseedgestoinverseautomaton", "X7A4CDEFB84B97849" ], [ "\033[2XIsReversibleAutomaton\033[102X", "2.4-6", [ 2, 4, 6 ], 479,, "isreversibleautomaton", "X8321BCE57E55FB30" ], [ "\033[2XCopyAutomaton\033[102X", "2.5-1", [ 2, 5, 1 ], 497,, "copyautomaton", "X8225A1B886131707" ], [ "\033[2XNullCompletionAutomaton\033[102X", "2.5-2", [ 2, 5, 2 ], 503, , "nullcompletionautomaton", "X80D423A584246E2E" ], [ "\033[2XListSinkStatesAut\033[102X", "2.5-3", [ 2, 5, 3 ], 529,, "listsinkstatesaut", "X79F052EC81135807" ], [ "\033[2XRemovedSinkStates\033[102X", "2.5-4", [ 2, 5, 4 ], 544,, "removedsinkstates", "X8240136E7A26B1A6" ], [ "\033[2XReversedAutomaton\033[102X", "2.5-5", [ 2, 5, 5 ], 568,, "reversedautomaton", "X7C0526217BFE7A65" ], [ "\033[2XPermutedAutomaton\033[102X", "2.5-6", [ 2, 5, 6 ], 585,, "permutedautomaton", "X7A4A066583C71ABE" ], [ "\033[2XListPermutedAutomata\033[102X", "2.5-7", [ 2, 5, 7 ], 609,, "listpermutedautomata", "X7A72DDF0782E8D5E" ], [ "\033[2XNormalizedAutomaton\033[102X", "2.5-8", [ 2, 5, 8 ], 626,, "normalizedautomaton", "X7FA7DF6D87D63D67" ], [ "\033[2XUnionAutomata\033[102X", "2.5-9", [ 2, 5, 9 ], 650,, "unionautomata", "X7A94A77A7C65BA90" ], [ "\033[2XProductAutomaton\033[102X", "2.5-10", [ 2, 5, 10 ], 671,, "productautomaton", "X83E772F2878546A4" ], [ "\033[2XProductOfLanguages\033[102X", "2.5-11", [ 2, 5, 11 ], 705,, "productoflanguages", "X85F6AD697DCA5765" ], [ "\033[2XTransitionSemigroup\033[102X", "2.6-1", [ 2, 6, 1 ], 732,, "transitionsemigroup", "X7B9994827CF94CC7" ], [ "\033[2XSyntacticSemigroupAut\033[102X", "2.6-2", [ 2, 6, 2 ], 749,, "syntacticsemigroupaut", "X7E3F29DF86A26347" ], [ "\033[2XSyntacticSemigroupLang\033[102X", "2.6-3", [ 2, 6, 3 ], 764,, "syntacticsemigrouplang", "X7D058F0D83D7B49B" ], [ "rational expressions", "3.", [ 3, 0, 0 ], 1,, "rational expressions", "X833D315483172905" ], [ "\033[2XRationalExpression\033[102X", "3.1-1", [ 3, 1, 1 ], 15,, "rationalexpression", "X801EC6F38568426D" ], [ "\033[2XRatExpOnnLetters\033[102X", "3.1-2", [ 3, 1, 2 ], 38,, "ratexponnletters", "X7EE5A70F7F237C41" ], [ "\033[2XRandomRatExp\033[102X", "3.1-3", [ 3, 1, 3 ], 67,, "randomratexp", "X7DA59CBE8571796C" ], [ "\033[2XSizeRatExp\033[102X", "3.1-4", [ 3, 1, 4 ], 86,, "sizeratexp", "X7E3AA84784019E6C" ], [ "\033[2XIsRationalExpression\033[102X", "3.1-5", [ 3, 1, 5 ], 100,, "isrationalexpression", "X7DDB46817D6E79BE" ], [ "\033[2XAlphabetOfRatExp\033[102X", "3.1-6", [ 3, 1, 6 ], 115,, "alphabetofratexp", "X8773359880149A98" ], [ "\033[2XAlphabetOfRatExpAsList\033[102X", "3.1-7", [ 3, 1, 7 ], 138,, "alphabetofratexpaslist", "X84B9922B7C006158" ], [ "\033[2XCopyRatExp\033[102X", "3.1-8", [ 3, 1, 8 ], 163,, "copyratexp", "X786A096681CAC3CD" ], [ "\033[2XUnionRatExp\033[102X", "3.3-1", [ 3, 3, 1 ], 204,, "unionratexp", "X8206BD4E82A81D8F" ], [ "\033[2XProductRatExp\033[102X", "3.3-2", [ 3, 3, 2 ], 207,, "productratexp", "X7E29107587611CE2" ], [ "\033[2X StarRatExp\033[102X", "3.3-3", [ 3, 3, 3 ], 210,, "starratexp", "X83D8DAE6862C8A96" ], [ "\033[2XAutomatonToRatExp \033[102X", "4.1-1", [ 4, 1, 1 ], 15,, "automatontoratexp", "X8751E3927CA4DEA1" ], [ "\033[2XAutToRatExp\033[102X", "4.1-1", [ 4, 1, 1 ], 15,, "auttoratexp", "X8751E3927CA4DEA1" ], [ "\033[2XFAtoRatExp\033[102X", "4.1-1", [ 4, 1, 1 ], 15,, "fatoratexp", "X8751E3927CA4DEA1" ], [ "\033[2XRatExpToNDAut\033[102X", "4.2-1", [ 4, 2, 1 ], 37,, "ratexptondaut", "X840EEB7B7DD8B03D" ], [ "\033[2XRatExpToAutomaton\033[102X", "4.2-2", [ 4, 2, 2 ], 64,, "ratexptoautomaton", "X866BCCB2788E8561" ], [ "\033[2XRatExpToAut\033[102X", "4.2-2", [ 4, 2, 2 ], 64,, "ratexptoaut", "X866BCCB2788E8561" ], [ "\033[2XIsEmptyLang\033[102X", "4.3-1", [ 4, 3, 1 ], 100,, "isemptylang", "X84E0143A860889A6" ], [ "\033[2XIsFullLang\033[102X", "4.3-2", [ 4, 3, 2 ], 118,, "isfulllang", "X86AA1A5F7E1EEAFE" ], [ "\033[2XAreEqualLang\033[102X", "4.3-3", [ 4, 3, 3 ], 136,, "areequallang", "X8346D1B17DBF96E7" ], [ "\033[2XAreEquivAut\033[102X", "4.3-3", [ 4, 3, 3 ], 136,, "areequivaut", "X8346D1B17DBF96E7" ], [ "\033[2XIsContainedLang\033[102X", "4.3-4", [ 4, 3, 4 ], 168,, "iscontainedlang", "X7FCB176285FA5BBB" ], [ "\033[2XAreDisjointLang\033[102X", "4.3-5", [ 4, 3, 5 ], 187,, "aredisjointlang", "X83F1DE067C2D31A5" ], [ "\033[2XEpsilonToNFA\033[102X", "5.1-1", [ 5, 1, 1 ], 15,, "epsilontonfa", "X81E06D518428CA3C" ], [ "\033[2XEpsilonToNFASet\033[102X", "5.1-2", [ 5, 1, 2 ], 40,, "epsilontonfaset", "X81DC84E17A170270" ], [ "\033[2XEpsilonCompactedAut\033[102X", "5.1-3", [ 5, 1, 3 ], 49,, "epsiloncompactedaut", "X871F807D79CE148C" ], [ "\033[2XReducedNFA\033[102X", "5.1-4", [ 5, 1, 4 ], 76,, "reducednfa", "X83B0473278DC14F3" ], [ "\033[2XNFAtoDFA\033[102X", "5.1-5", [ 5, 1, 5 ], 102,, "nfatodfa", "X87D0F9F17F2BEB57" ], [ "\033[2XFuseSymbolsAut\033[102X", "5.1-6", [ 5, 1, 6 ], 127,, "fusesymbolsaut", "X7B61945581FE4AC6" ], [ "\033[2XUsefulAutomaton\033[102X", "5.2-1", [ 5, 2, 1 ], 160,, "usefulautomaton", "X7B5B5B10868FB525" ], [ "\033[2XMinimalizedAut\033[102X", "5.2-2", [ 5, 2, 2 ], 184,, "minimalizedaut", "X83C26846866AEE46" ], [ "\033[2X MinimalAutomaton\033[102X", "5.2-3", [ 5, 2, 3 ], 207,, "minimalautomaton", "X7F7AE088808A5D00" ], [ "\033[2XAccessibleStates\033[102X", "5.2-4", [ 5, 2, 4 ], 231,, "accessiblestates", "X7F484D5A781BB643" ], [ "\033[2XAccessibleAutomaton\033[102X", "5.2-5", [ 5, 2, 5 ], 251,, "accessibleautomaton", "X804A6BC979DA6E61" ], [ "\033[2XIntersectionLanguage\033[102X", "5.2-6", [ 5, 2, 6 ], 279,, "intersectionlanguage", "X7BAACCAF7E2D213B" ], [ "\033[2XIntersectionAutomaton\033[102X", "5.2-6", [ 5, 2, 6 ], 279,, "intersectionautomaton", "X7BAACCAF7E2D213B" ], [ "\033[2XAutomatonAllPairsPaths\033[102X", "5.2-7", [ 5, 2, 7 ], 314,, "automatonallpairspaths", "X8460C44386EE6225" ], [ "\033[2XIsFiniteRegularLanguage\033[102X", "6.1-1", [ 6, 1, 1 ], 9,, "isfiniteregularlanguage", "X82971FC2851B7B30" ], [ "\033[2XFiniteRegularLanguageToListOfWords\033[102X", "6.1-2", [ 6, 1, 2 ], 27,, "finiteregularlanguagetolistofwords", "X7E48CD3E78277FF7" ], [ "\033[2XListOfWordsToAutomaton\033[102X", "6.1-3", [ 6, 1, 3 ], 41,, "listofwordstoautomaton", "X7F9C5C6F815773E6" ], [ "\033[2XRandomDiGraph\033[102X", "A.1-1", [ "A", 1, 1 ], 17,, "randomdigraph", "X86CF9F66788B2A24" ], [ "\033[2XVertexInDegree\033[102X", "A.1-2", [ "A", 1, 2 ], 28,, "vertexindegree", "X868EE741872B932D" ], [ "\033[2XVertexOutDegree\033[102X", "A.1-3", [ "A", 1, 3 ], 41,, "vertexoutdegree", "X84DF2E8E7A7B32C6" ], [ "\033[2XAutoVertexDegree\033[102X", "A.1-4", [ "A", 1, 4 ], 54,, "autovertexdegree", "X7FA6FAAE7AA8715D" ], [ "\033[2XReversedGraph\033[102X", "A.1-5", [ "A", 1, 5 ], 67,, "reversedgraph", "X7BA5F1DF7DA89DC5" ], [ "\033[2XAutoConnectedComponents\033[102X", "A.1-6", [ "A", 1, 6 ], 85, , "autoconnectedcomponents", "X7F23780E7A12A79E" ], [ "\033[2XGraphStronglyConnectedComponents\033[102X", "A.1-7", [ "A", 1, 7 ], 101,, "graphstronglyconnectedcomponents", "X7D5288C982F92481" ], [ "\033[2XUnderlyingMultiGraphOfAutomaton\033[102X", "A.1-8", [ "A", 1, 8 ], 114,, "underlyingmultigraphofautomaton", "X859B7C517AFBD198" ], [ "\033[2XUnderlyingGraphOfAutomaton\033[102X", "A.1-9", [ "A", 1, 9 ], 132,, "underlyinggraphofautomaton", "X78CF8E507E100C62" ], [ "\033[2XDiGraphToRelation\033[102X", "A.1-10", [ "A", 1, 10 ], 150,, "digraphtorelation", "X78869D478792B3AD" ], [ "\033[2XMSccAutomaton\033[102X", "A.1-11", [ "A", 1, 11 ], 165,, "msccautomaton", "X7D63604A8413AAAF" ], [ "\033[2XAutoIsAcyclicGraph\033[102X", "A.1-12", [ "A", 1, 12 ], 195,, "autoisacyclicgraph", "X7971EE367B6B7F36" ], [ "\033[2XDrawAutomaton\033[102X", "B.2-1", [ "B", 2, 1 ], 21,, "drawautomaton", "X7BC2FDA77FD0237B" ], [ "\033[2XDrawAutomata\033[102X", "B.2-2", [ "B", 2, 2 ], 54,, "drawautomata", "X7AEE146D8391CA3D" ], [ "\033[2XDrawGraph\033[102X", "B.2-3", [ "B", 2, 3 ], 62,, "drawgraph", "X7D17B77F829F9CCB" ], [ "\033[2XDrawSCCAutomaton\033[102X", "B.2-4", [ "B", 2, 4 ], 68,, "drawsccautomaton", "X7E478FDD807853CA" ], [ "\033[2XGeneratorsToListRepresentation\033[102X", "C.1-1", [ "C", 1, 1 ], 30,, "generatorstolistrepresentation", "X85358D097C314EB5" ], [ "\033[2XListToGeneratorsRepresentation\033[102X", "C.1-2", [ "C", 1, 2 ], 40,, "listtogeneratorsrepresentation", "X80F3E10784590374" ], [ "\033[2XFlowerAutomaton\033[102X", "C.1-3", [ "C", 1, 3 ], 50,, "flowerautomaton", "X7EAFF7E879D115C5" ], [ "\033[2XFoldFlowerAutomaton\033[102X", "C.1-4", [ "C", 1, 4 ], 70,, "foldflowerautomaton", "X7F729A4E8784D92E" ], [ "\033[2XSubgroupGenToInvAut\033[102X", "C.1-5", [ "C", 1, 5 ], 93,, "subgroupgentoinvaut", "X826D581D794F1BFB" ], [ "\033[2XGeodesicTreeOfInverseAutomaton\033[102X", "C.2-1", [ "C", 2, 1 ], 121,, "geodesictreeofinverseautomaton", "X81DA149779A167BD" ], [ "\033[2XInverseAutomatonToGenerators\033[102X", "C.2-2", [ "C", 2, 2 ], 141,, "inverseautomatontogenerators", "X7F117C43814F2CDE" ] ], sixcount := [ [ 0, 0, 0 ], [ 0, 0, 1 ], [ 0, 0, 2 ], [ 0, 0, 3 ], [ 0, 0, 4 ], [ 1, 0, 0 ], [ 2, 0, 0 ], [ 2, 1, 0 ], [ 2, 1, 1 ], [ 2, 1, 2 ], [ 2, 1, 3 ], [ 2, 1, 4 ], [ 2, 1, 5 ], [ 2, 1, 6 ], [ 2, 1, 7 ], [ 2, 2, 0 ], [ 2, 2, 1 ], [ 2, 2, 2 ], [ 2, 2, 3 ], [ 2, 2, 4 ], [ 2, 2, 5 ], [ 2, 2, 6 ], [ 2, 2, 7 ], [ 2, 2, 8 ], [ 2, 3, 0 ], [ 2, 4, 0 ], [ 2, 4, 1 ], [ 2, 4, 2 ], [ 2, 4, 3 ], [ 2, 4, 4 ], [ 2, 4, 5 ], [ 2, 4, 6 ], [ 2, 5, 0 ], [ 2, 5, 1 ], [ 2, 5, 2 ], [ 2, 5, 3 ], [ 2, 5, 4 ], [ 2, 5, 5 ], [ 2, 5, 6 ], [ 2, 5, 7 ], [ 2, 5, 8 ], [ 2, 5, 9 ], [ 2, 5, 10 ], [ 2, 5, 11 ], [ 2, 6, 0 ], [ 2, 6, 1 ], [ 2, 6, 2 ], [ 2, 6, 3 ], [ 3, 0, 0 ], [ 3, 0, 0 ], [ 3, 1, 0 ], [ 3, 1, 1 ], [ 3, 1, 2 ], [ 3, 1, 3 ], [ 3, 1, 4 ], [ 3, 1, 5 ], [ 3, 1, 6 ], [ 3, 1, 7 ], [ 3, 1, 8 ], [ 3, 2, 0 ], [ 3, 3, 0 ], [ 3, 3, 1 ], [ 3, 3, 2 ], [ 3, 3, 3 ], [ 4, 0, 0 ], [ 4, 1, 0 ], [ 4, 1, 1 ], [ 4, 1, 1 ], [ 4, 1, 1 ], [ 4, 2, 0 ], [ 4, 2, 1 ], [ 4, 2, 2 ], [ 4, 2, 2 ], [ 4, 3, 0 ], [ 4, 3, 1 ], [ 4, 3, 2 ], [ 4, 3, 3 ], [ 4, 3, 3 ], [ 4, 3, 4 ], [ 4, 3, 5 ], [ 5, 0, 0 ], [ 5, 1, 0 ], [ 5, 1, 1 ], [ 5, 1, 2 ], [ 5, 1, 3 ], [ 5, 1, 4 ], [ 5, 1, 5 ], [ 5, 1, 6 ], [ 5, 2, 0 ], [ 5, 2, 1 ], [ 5, 2, 2 ], [ 5, 2, 3 ], [ 5, 2, 4 ], [ 5, 2, 5 ], [ 5, 2, 6 ], [ 5, 2, 6 ], [ 5, 2, 7 ], [ 6, 0, 0 ], [ 6, 1, 0 ], [ 6, 1, 1 ], [ 6, 1, 2 ], [ 6, 1, 3 ], [ "A", 0, 0 ], [ "A", 1, 0 ], [ "A", 1, 1 ], [ "A", 1, 2 ], [ "A", 1, 3 ], [ "A", 1, 4 ], [ "A", 1, 5 ], [ "A", 1, 6 ], [ "A", 1, 7 ], [ "A", 1, 8 ], [ "A", 1, 9 ], [ "A", 1, 10 ], [ "A", 1, 11 ], [ "A", 1, 12 ], [ "B", 0, 0 ], [ "B", 1, 0 ], [ "B", 2, 0 ], [ "B", 2, 1 ], [ "B", 2, 2 ], [ "B", 2, 3 ], [ "B", 2, 4 ], [ "B", 3, 0 ], [ "B", 4, 0 ], [ "Bib", 0, 0 ], [ "Bib", 0, 0 ], [ "C", 0, 0 ], [ "C", 1, 0 ], [ "C", 1, 1 ], [ "C", 1, 2 ], [ "C", 1, 3 ], [ "C", 1, 4 ], [ "C", 1, 5 ], [ "C", 2, 0 ], [ "C", 2, 1 ], [ "C", 2, 2 ], [ "Ind", 0, 0 ] ], sixindex := [ 1, 2, 4, 3, 5, 6, 7, 8, 40, 41, 42, 43, 44, 45, 46, 9, 47, 48, 49, 50, 51, 52, 53, 54, 10, 11, 55, 56, 57, 58, 59, 60, 12, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 13, 72, 73, 74, 75, 14, 15, 76, 77, 78, 79, 80, 81, 82, 83, 16, 17, 84, 85, 86, 18, 19, 87, 88, 89, 20, 90, 92, 91, 21, 93, 94, 96, 95, 97, 98, 22, 23, 99, 100, 101, 102, 103, 104, 24, 105, 106, 107, 108, 109, 110, 111, 112, 25, 26, 113, 114, 115, 27, 28, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 29, 30, 31, 128, 129, 130, 131, 32, 33, 38, 37, 34, 35, 132, 133, 134, 135, 136, 36, 137, 138, 39 ], start := 0, stop := 73961, toctext := "\n<\ div class=\"ContChap\">2 Finite Automata\n\n 2.2 Auto\ mata internals\n\n\n\n\n\n\n\n
4 Automata versus rational expressions\n
 4.1 From automat\ a to rational expressions\n\n<\ /div>\n\n
5 Some functions involving automata\n\n
6 Finite regular languages\n\n\n\n
C Inverse automata and subgroups\ of the free group\n\n\n\n\n\n\n\n
\n\n\n\n\n\n\n\n\n" ) gap> gap> #I File: /builddir/build/BUILD/automata/../pkg/automata/doc/manual.lab written. gap> + rm -fr ../../doc ../pkg + exit 0 Executing(%install): /bin/sh -e /var/tmp/rpm-tmp.TKmiTD + umask 022 + cd /builddir/build/BUILD + '[' /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64 '!=' / ']' + rm -rf /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64 ++ dirname /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64 + mkdir -p /builddir/build/BUILDROOT + mkdir /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64 + cd automata + mkdir -p /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg + cp -a ../automata /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata + rm -f /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/CHANGES /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/EXAMPLES /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/LICENSE /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/README + rm -f '/builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/doc/*.aux' /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/doc/AutMan.bbl /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/doc/AutMan.blg /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/doc/AutMan.brf /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/doc/AutMan.idx /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/doc/AutMan.ilg /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/doc/AutMan.ind '/builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/doc/*.log' /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/doc/AutMan.out /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/doc/AutMan.pnr /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/doc/AutMan.tex /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/lib/gap/pkg/automata/doc/AutMan.toc + /usr/lib/rpm/find-debuginfo.sh --strict-build-id -m --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 110000000 /builddir/build/BUILD/automata /usr/lib/rpm/sepdebugcrcfix: Updated 0 CRC32s, 0 CRC32s did match. find: 'debug': No such file or directory + /usr/lib/rpm/check-buildroot + /usr/lib/rpm/redhat/brp-compress + /usr/lib/rpm/redhat/brp-strip-static-archive /usr/bin/strip + /usr/lib/rpm/brp-python-bytecompile /usr/bin/python 1 + /usr/lib/rpm/redhat/brp-python-hardlink + /usr/lib/rpm/redhat/brp-java-repack-jars Processing files: gap-pkg-automata-1.13-0.3.el7.centos.noarch Executing(%doc): /bin/sh -e /var/tmp/rpm-tmp.PACgTv + umask 022 + cd /builddir/build/BUILD + cd automata + DOCDIR=/builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/share/doc/gap-pkg-automata-1.13 + export DOCDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/share/doc/gap-pkg-automata-1.13 + cp -pr CHANGES /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/share/doc/gap-pkg-automata-1.13 + cp -pr EXAMPLES /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/share/doc/gap-pkg-automata-1.13 + cp -pr README /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/share/doc/gap-pkg-automata-1.13 + exit 0 Executing(%license): /bin/sh -e /var/tmp/rpm-tmp.Ry2LUn + umask 022 + cd /builddir/build/BUILD + cd automata + LICENSEDIR=/builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/share/licenses/gap-pkg-automata-1.13 + export LICENSEDIR + /usr/bin/mkdir -p /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/share/licenses/gap-pkg-automata-1.13 + cp -pr LICENSE /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64/usr/share/licenses/gap-pkg-automata-1.13 + exit 0 Provides: gap-pkg-automata = 1.13-0.3.el7.centos Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1 Checking for unpackaged file(s): /usr/lib/rpm/check-files /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64 Wrote: /builddir/build/RPMS/gap-pkg-automata-1.13-0.3.el7.centos.noarch.rpm Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.HlNzTc + umask 022 + cd /builddir/build/BUILD + cd automata + /usr/bin/rm -rf /builddir/build/BUILDROOT/gap-pkg-automata-1.13-0.3.el7.centos.x86_64 + exit 0 Child return code was: 0