Skip to content

Commit 0443977

Browse files
committed
Documentation Update
- Named examples included with some short comments - References included from the paper - Examples renamed to fit latest numbering scheme
1 parent 45c4870 commit 0443977

31 files changed

+192
-65
lines changed

docs/examples_table.txt

Lines changed: 86 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,86 @@
1+
alphabet_size_two
2+
A toy example to test that the program works in :math:`V_{3,2}`.
3+
arity_four
4+
Another example for sanity checking. This is an automorphism of :math:`V_{4,1}`.
5+
arity_three_order_inf
6+
A purely :mod:`~thompson.infinite` automorphism of :math:`V_{3,1}`
7+
cyclic_order_six
8+
An introductory example drawn on the board by NB. It is purely periodic of order six.
9+
example_4_1
10+
This example is used in the paper to illustrate the meaning of a semi-normal form (Example :paperref:`ex:snf1`) and of a tree pair diagram (Example :paperref:`snf0`).
11+
example_4_11
12+
This example is used in the paper to illustrate the meaning of a semi-normal form (Example :paperref:`ex:snf1`) and of a tree pair diagram (Example :paperref:`snf0`).
13+
example_4_12
14+
This example is used in the paper to illustrate the meaning of a semi-normal form. This example needs to be expanded from its minimal representation to find a semi-normal (in fact quasi-normal) form.
15+
example_4_17
16+
Nathan's example of an automorphism containing a pond. This was simpler than the first example found.
17+
example_4_33
18+
Nathan's example of an automorphism containing a pond. This was simpler than the first example found.
19+
example_4_35
20+
Nathan's example of an automorphism containing a pond. This was simpler than the first example found.
21+
example_4_5
22+
This example is used to illustrate the different types of :mod:`components/orbits <thompson.orbits>` in the paper.
23+
example_4_7
24+
This example is used to illustrate the different types of :mod:`components/orbits <thompson.orbits>` in the paper.
25+
example_5_12_phi
26+
The example used in the paper to demonstrate the :meth:`periodic conjugacy test <thompson.periodic.PeriodicAut.test_conjugate_to>`.
27+
example_5_12_psi
28+
The example used in the paper to demonstrate the :meth:`periodic conjugacy test <thompson.periodic.PeriodicAut.test_conjugate_to>`.
29+
example_5_15
30+
This example is used in the paper to illustrate the process of finding the :meth:`quasi-normal basis <thompson.automorphism.Automorphism.compute_quasinormal_basis>`.
31+
example_5_18
32+
This example is used in the paper to illustrate the process of finding the :meth:`quasi-normal basis <thompson.automorphism.Automorphism.compute_quasinormal_basis>`.
33+
example_5_2
34+
This example is used to illustrate the different types of :mod:`components/orbits <thompson.orbits>` in the paper.
35+
example_5_26_phi
36+
This example is used in the paper to illustrate the process of finding the :meth:`quasi-normal basis <thompson.automorphism.Automorphism.compute_quasinormal_basis>`.
37+
example_5_26_psi
38+
The example used in the paper to demonstrate the :meth:`infinite conjugacy test <thompson.infinite.InfiniteAut.test_conjugate_to>`.
39+
example_5_3
40+
This example is used to demonstrate how we can break down an automorphism into its :meth:`~thompson.mixed.MixedAut.free_factors`.
41+
example_5_3_i
42+
A purely infinite free factor, extracted from example_5_3.
43+
example_5_3_p
44+
A purely periodic free factor, extracted from example_5_3.
45+
example_5_9
46+
This example is used in the paper to illustrate the definition of :class:`cycle types <thompson.periodic.PeriodicAut>`.
47+
example_6_2
48+
Example :paperref:`pcExample1` of the paper, used to illustrate lemma :paperref:`AJDLEMMACMa`.
49+
example_6_8_phi
50+
A purely infinite automorphism which illustrates the bounds :math:`\hat a, \hat b` for power conjugacy.
51+
example_6_8_psi
52+
This example is used in the paper to illustrate the meaning of a semi-normal form (Example :paperref:`ex:snf1`) and of a tree pair diagram (Example :paperref:`snf0`).
53+
example_6_9_phi
54+
Example :paperref:`pcExample1` of the paper, used to illustrate lemma :paperref:`AJDLEMMACMa`.
55+
example_6_9_psi
56+
This example is used in the paper to illustrate the meaning of a semi-normal form (Example :paperref:`ex:snf1`) and of a tree pair diagram (Example :paperref:`snf0`).
57+
first_pond_example_phi
58+
The first example of a pond orbit, found by a random search. Its banks are :math:`x\alpha_1^4\alpha_2` and :math:`x\alpha_1\alpha_2^2`.
59+
first_pond_example_psi
60+
The element which was conjugate to the first example of a pond orbit, found by a random search.
61+
inf_conj_phi
62+
An example used to debug the :meth:`infinite conjugacy test <thompson.infinite.InfiniteAut.test_conjugate_to>`.
63+
inf_conj_psi
64+
An example used to debug the :meth:`infinite conjugacy test <thompson.infinite.InfiniteAut.test_conjugate_to>`.
65+
mixed_pconj_phi
66+
An example of mixed power conjugacy found by random search. Should have :math:`\psi^{-4} \sim \phi^2`.
67+
mixed_pconj_psi
68+
An example of mixed power conjugacy found by random search. Should have :math:`\psi^{-4} \sim \phi^2`.
69+
nathan1_example
70+
One of Nathan's examples. This is *almost*, but not quite conjugate to nathan_pond_example. Nathan had this to say: *"I untwisted one of the infinite orbits after a conjugation and so they definitely should not be conjugate."*
71+
nathan2_example
72+
One of Nathan's examples. Nathan had this to say: "*nathan2_example is conjugate to nathan3_example, via a rho that can be found using your program or nathan4_example. Note that characteristics are not the same for two of the semi-infinite orbits.*"
73+
nathan3_example
74+
One of Nathan's examples. Nathan had this to say: "*nathan2_example is conjugate to nathan3_example, via a rho that can be found using your program or nathan4_example. Note that characteristics are not the same for two of the semi-infinite orbits.*"
75+
nathan4_example
76+
One of Nathan's examples. Nathan had this to say: "*nathan2_example is conjugate to nathan3_example, via a rho that can be found using your program or nathan4_example. Note that characteristics are not the same for two of the semi-infinite orbits.*"
77+
nathan_pond_example
78+
Nathan's example of an automorphism containing a pond. This was simpler than the first example found.
79+
periodic_QNB_206
80+
This purely periodic automorphism (again found by random search) has a quasinormal basis of size 206.
81+
periodic_QNB_344
82+
This purely periodic automorphism (again found by random search) has a quasinormal basis of size 344.
83+
pond_width_4
84+
An example found by random search of a pond orbit of width 4. Prior to this we had only seen ponds of width 1 or 2.
85+
power_smaller_QNB
86+
The square of this automorphism appears to have a QNB above the QNB of the original automorphism.

docs/generate_examples_table.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import os, sys
2+
os.chdir('..')
3+
sys.path.append(os.getcwd())
4+
5+
from thompson import Automorphism
6+
import thompson.examples
7+
8+
automorphisms = []
9+
10+
for name, attr in thompson.examples.__dict__.items():
11+
if not isinstance(attr, Automorphism):
12+
continue
13+
doc = attr.__doc__.split('\n', maxsplit=1)[0]
14+
automorphisms.append((name, doc))
15+
16+
automorphisms.sort()
17+
18+
widths = [max(len(item[i]) for item in automorphisms) for i in range(2)]
19+
print(widths)
20+
format_string = "{}\n\t{}"
21+
22+
23+
os.chdir('docs')
24+
25+
with open('examples_table.txt', 'wt') as f:
26+
for name, docstring in automorphisms:
27+
print(format_string.format(name, docstring), file=f)

docs/generate_references.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ def bibliography_entries(tex_source):
2828
("~" , ' '),
2929
(r"\'{e}", "é"),
3030
(r"\'{o}", "ó"),
31+
(r"\"{o}", "ö"),
3132
("---" , "—"), #em dash
3233
("--" , "–"), #en dash
3334
(r"\\" , "")
@@ -44,7 +45,9 @@ def bibliography_entries(tex_source):
4445
re.compile(tex_group.format('bf')),
4546
re.compile(tex_macro.format('textbf'))
4647
]
48+
code = re.compile(tex_group.format('tt'))
4749
maths = re.compile(r'\$(.+?)\$')
50+
url = re.compile(tex_macro.format('url'))
4851

4952
def tidy_up(text):
5053
text = text.strip()
@@ -55,7 +58,9 @@ def tidy_up(text):
5558
text = italic.sub(r' *\1* ', text)
5659
for bold in bolds:
5760
text = bold.sub(r' **\1** ', text)
58-
text = maths.sub(r' :math:`\1` ', text)
61+
text = code.sub(r'``\1``', text)
62+
text = url.sub(r'\1', text)
63+
text = maths.sub(r' :math:`\1`', text)
5964
return text
6065

6166
if __name__ == '__main__':

docs/paper_bibliography.txt

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,22 @@
11
.. [AS74] \M. Anshel and P. Stebe, "The solvability of the conjugacy problem for certain HNN groups", *Bull. Amer. Math. Soc.* , **80** (2) (1974) 266–270.
22
.. [B] \K. Brown, "Finiteness properties of groups". *J. Pure Appl. Algebra* **44** (1987), no. 1-3, 45–75.
3-
.. [BGG11] \C. Bleak, , H. Bowman, A. Gordon, G. Graham, J.Hughes, F. Matucci , J.Sapir, F. Matucci, "Centralizers in R.Thompson's group :math:`V_{n}` ", *Groups, Geometry and Dynamics* **7** , No. 4 (2013), 821-865.
3+
.. [BCR] \J. Burillo, S. Cleary and C. E. R\"over, "Obstructions for subgroups of Thompson's group :math:`V`", arxiv.org/abs/1402.3860
4+
.. [BGG11] \C. Bleak, , H. Bowman, A. Gordon, G. Graham, J. Hughes, F. Matucci and J. Sapir, "Centralizers in R.Thompson's group :math:`V_{n}`", *Groups, Geometry and Dynamics* **7** , No. 4 (2013), 821-865.
45
.. [BM07] \J. M. Belk and F. Matucci, "Conjugacy and dynamics in Thompson's groups", *Geom. Dedicata* **169** (1) (2014) 239-261.
56
.. [BO93] \R. V. Book and F. Otto, "String-rewriting Systems", Springer, (1993).
6-
.. [Brin04] \M.G. Brin, "Higher dimensional Thompson groups", *Geom. Dedicata* , **108** (2004) 163-192.
7-
.. [CFP96] \J.W. Cannon, W.J. Floyd and W.R. Parry, "Introductory notes on Richard Thompson's groups", *Enseign. Math.* , (2) **42** (3-4) (1996) 215-256.
7+
.. [Brin04] \M. G. Brin, "Higher dimensional Thompson groups", *Geom. Dedicata* , **108** (2004) 163-192.
8+
.. [CFP96] \J. W. Cannon, W.J. Floyd and W. R. Parry, "Introductory notes on Richard Thompson's groups", *Enseign. Math.* , (2) **42** (3-4) (1996) 215-256.
89
.. [Cohn81] \P. M. Cohn, "Universal Algebra". Mathematics and its Applications, 6, D. Reidel Pub. Company, (1981).
910
.. [Cohn91] \P. M. Cohn, "Algebra, Volume 3". J. Wiley, (1991).
10-
.. [Com77] \L. P. J. Comerford, "A note on power-conjugacy", *Houston J. Math.* 3 (1977), no. 3, 337—341.
1111
.. [DMP] \W. Dicks, C. Martinez-Pérez, "Isomorphisms of Brin-Higman-Thompson groups", *Israel Journal of Mathematics* , **199** (2014), 189–218.
12+
.. [DMR] \D. M. Robertson, "``thompson``: a package for Python 3.3+ to work with elements of the Higman-Thompson groups :math:`G_{n,r}`". Source code available from https://github.com/DMRobertson/thompsons\_v and documentation available from http://thompsons-v.readthedocs.org/.
1213
.. [Hig74] \G. Higman, "Finitely presented infinite simple groups", *Notes on Pure Mathematics* , Vol. 8 (1974).
1314
.. [JT61] \B. Jónsson and A. Tarski, "On two properties of free algebras", *Math. Scand.* , **9** (1961) 95-101.
1415
.. [Lip66] \S. Lipschutz, "Generalisation of Dehn's result on the conjugacy problem", *Proc. Amer. Math. Soc.* , **17** (1966) 759–762.
1516
.. [Lot83] \M. Lothaire, "Combinatorics on Words", Addison-Wesley, Advanced Book Program, World Science Division, (1983).
1617
.. [MPN] \C. Martinez-Perez, B. Nukinkis, "Bredon cohomological finiteness conditions for generalisations of Thompson's groups", *Groups Geom. Dyn.* **7** (4) (2013) 931–959.
17-
.. [MT] \McKenzie, Ralph; Thompson, Richard J."An elementary construction of unsolvable word problems in group theory", Word problems: decision problems and the Burnside problem in group theory, Studies in Logic and the Foundations of Math., 71, pp. 457–478. North-Holland, Amsterdam, (1973).
18+
.. [MT] \R. McKenzie and R. J. Thompson, "An elementary construction of unsolvable word problems in group theory", Word problems: decision problems and the Burnside problem in group theory, Studies in Logic and the Foundations of Math., 71, pp. 457–478. North-Holland, Amsterdam, (1973).
1819
.. [Pardo] \E. Pardo, "The isomorphism problem for Higman-Thompson groups", *Journal of Algebra* , **344** (2011), 172-–183.
1920
.. [Pride08] \S. J. Pride, "On the residual finiteness and other properties of (relative) one-relator groups", *Proc. Amer. Math. Soc.* **136** (2) (2008) 377–386.
20-
.. [SD10] \O.P. Salazar-Diaz, "Thompson's group V from a dynamical viewpoint", *Internat. J. Algebra Comput.* , 1, 39-70, 20, (2010).
21-
.. [Tho] \R.J. Thompson, unpublished notes. http://www.math.binghamton.edu/matt/thompson/index.html
21+
.. [SD10] \O. P. Salazar-Diaz, "Thompson's group V from a dynamical viewpoint", *Internat. J. Algebra Comput.* , 1, 39-70, 20, (2010).
22+
.. [Tho] \R. J. Thompson, unpublished notes. http://www.math.binghamton.edu/matt/thompson/index.html

docs/references.rst

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Other references
1414
----------------
1515

1616
.. [Kogan] \R. Kogan, "`nVTrees Applet <http://www.math.tamu.edu/~romwell/nvTrees/>`_" (2008). Accessed 17th September, 2014.
17-
.. [Mill] \B. Mill, "`Drawing Presentable Trees <http://billmill.org/pymag-trees/>_" (2010). Accessed 3rd September, 2014.
17+
.. [Mill] \B. Mill, "`Drawing Presentable Trees <http://billmill.org/pymag-trees/>`_" (2010). Accessed 3rd September, 2014.
1818
.. [RT] \E. M. Reingold and J. S. Tilford. "`Tidier Drawings of Trees <http://emr.cs.iit.edu/~reingold/tidier-drawings.pdf>`_", *IEEE Transactions on Software Engineering* 7, no. 2, pp. 223--228 (1981). See also sec. "`Trees as Blocks <http://billmill.org/pymag-trees/#heading6>`_" of [Mill].
1919
20-
.. comment [Zaks] Zaks, S. (1980). `Lexicographic generation of ordered trees <http://ac.els-cdn.com/0304397580900730/1-s2.0-0304397580900730-main.pdf?_tid=a998eb50-4d3a-11e4-88d6-00000aacb35d&acdnat=1412587687_576aee4e88c728ef1ad84538f82f736d>`_. *Theoretical Computer Science* 10 (1980): 63-82.
20+
.. [Zaks] \S. Zaks, "`Lexicographic generation of ordered trees <http://ac.els-cdn.com/0304397580900730/1-s2.0-0304397580900730-main.pdf?_tid=a998eb50-4d3a-11e4-88d6-00000aacb35d&acdnat=1412587687_576aee4e88c728ef1ad84538f82f736d>`_", *Theoretical Computer Science* 10: 63-82 (1980).

docs/thompson.examples.rst

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,18 +3,16 @@ Examples
33

44
This module provides a number of explicit examples for use in doctests. Additionally, functions to generate random automorphisms are provided.
55

6+
.. automodule:: thompson.examples
7+
68
Explict named examples
79
----------------------
810

9-
A list of named examples is loaded from the ``.aut`` files in `the examples folder <https://github.com/DMRobertson/thompsons_v/tree/master/thompson/examples>`_. This includes all the examples given in AJD and NB's paper.
11+
A list of named examples is loaded from the ``.aut`` files in `the examples folder <https://github.com/DMRobertson/thompsons_v/tree/master/thompson/examples>`_. This includes all the examples given in the paper.
1012

11-
.. todo:: Make Sphinx show these examples here? A better system for importing/loading examples?
13+
.. todo:: The numbered examples need updating to a current version of the paper.
1214

13-
.. automodule:: thompson.examples
14-
:members:
15-
:undoc-members:
16-
:show-inheritance:
17-
:exclude-members: random_signature, random_simple_word, random_basis, random_automorphism, random_periodic_automorphism, random_infinite_automorphism, random_conjugate_pair, random_conjugate_periodic_pair, random_conjugate_infinite_pair, random_powers, random_power_conjugate_pair
15+
.. include:: examples_table.txt
1816

1917
Randomly generated examples
2018
---------------------------

thompson/automorphism.py

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,13 @@ def image(self, key, inverse=False):
9494
9595
Examples of finding inverse images:
9696
97-
>>> print(example_4_25.image('x1 a2 a2', inverse=True))
97+
>>> print(example_5_15.image('x1 a2 a2', inverse=True))
9898
x1 a2 a2 a1 a1
99-
>>> print(example_4_25.image('x1 a1 a1 a2 a2 a1', inverse=True))
99+
>>> print(example_5_15.image('x1 a1 a1 a2 a2 a1', inverse=True))
100100
x1 a2 a1 a2 a1
101-
>>> print(example_4_25.image('x a2', inverse=True))
101+
>>> print(example_5_15.image('x a2', inverse=True))
102102
x1 a2 a2 a2 x1 a2 a2 a1 a1 L
103-
>>> print(example_4_25.image('x a2 a2 x a1 a2 L', inverse=True))
103+
>>> print(example_5_15.image('x a2 a2 x a1 a2 L', inverse=True))
104104
x1 a2 a2 a1
105105
"""
106106
if inverse:
@@ -130,9 +130,9 @@ def repeated_image(self, key, power):
130130
131131
.. doctest::
132132
133-
>>> print(example_4_25.repeated_image('x1 a1', 10))
133+
>>> print(example_5_15.repeated_image('x1 a1', 10))
134134
x1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1 a1
135-
>>> print(example_4_25.repeated_image('x1 a1 a1 a1 a1 a1 a1 a1', -3))
135+
>>> print(example_5_15.repeated_image('x1 a1 a1 a1 a1 a1 a1 a1', -3))
136136
x1 a1
137137
>>> print(arity_four.repeated_image('x1 a4 a4 a2', 4))
138138
x1 a3 a3 a2
@@ -335,7 +335,7 @@ def seminormal_form_start_point(self):
335335
Generators((2, 1), ['x1 a1', 'x1 a2'])
336336
>>> example_4_12.seminormal_form_start_point()
337337
Generators((2, 1), ['x1 a1', 'x1 a2'])
338-
>>> example_4_25.seminormal_form_start_point()
338+
>>> example_5_15.seminormal_form_start_point()
339339
Generators((2, 1), ['x1 a1', 'x1 a2 a1', 'x1 a2 a2'])
340340
>>> cyclic_order_six.seminormal_form_start_point()
341341
Generators((2, 1), ['x1 a1 a1', 'x1 a1 a2 a1', 'x1 a1 a2 a2', 'x1 a2'])
@@ -400,7 +400,7 @@ def orbit_type(self, y, basis):
400400
x1 a2 a2: Periodic component of order 4
401401
with respect to the basis [x1 a1 a1, x1 a1 a2, x1 a2 a1, x1 a2 a2]
402402
>>> #Example 4.25
403-
>>> print_component_types(example_4_25)
403+
>>> print_component_types(example_5_15)
404404
x1 a1: Right semi-infinite component with characteristic (1, a1 a1)
405405
x1 a2 a1: Bi-infinite component
406406
x1 a2 a2: Left semi-infinite component with characteristic (-1, a1 a1)
@@ -538,7 +538,7 @@ def semi_infinite_end_points(self, exclude_characteristics=False):
538538
[x1 a1] [x1 a2]
539539
>>> print(*example_4_12.semi_infinite_end_points())
540540
[] []
541-
>>> print(*example_4_25.semi_infinite_end_points())
541+
>>> print(*example_5_15.semi_infinite_end_points())
542542
[x1 a2 a2, x1 a2 a2 a1] [x1 a1, x1 a1 a1]
543543
>>> print(*example_6_2.semi_infinite_end_points())
544544
[x1 a1 a1] [x1 a2]
@@ -610,7 +610,7 @@ def print_characteristics(self):
610610
>>> example_4_1.print_characteristics()
611611
(-1, a1)
612612
(1, a2)
613-
>>> example_4_25.print_characteristics()
613+
>>> example_5_15.print_characteristics()
614614
(-1, a1 a1)
615615
(1, a1 a1)
616616
>>> example_6_2.print_characteristics()
@@ -675,9 +675,9 @@ def share_orbit(self, u, v):
675675
>>> u = Word('x a2 a2 a1 a1 a2', (2, 1))
676676
>>> v1 = Word('x a1 a2', (2, 1))
677677
>>> v2 = Word('x a1 a1 a2', (2, 1))
678-
>>> print(example_4_25.share_orbit(u, v1))
678+
>>> print(example_5_15.share_orbit(u, v1))
679679
{}
680-
>>> print(example_4_25.share_orbit(u, v2))
680+
>>> print(example_5_15.share_orbit(u, v2))
681681
{3}
682682
>>> u = Word('x a2 a2 x a1 a2 L x a2 a1 L x a1 a1 a1 a2 L', (2, 1))
683683
>>> vs = [
@@ -686,7 +686,7 @@ def share_orbit(self, u, v):
686686
... Word('x a2 a2 x a1 a2 L', (2, 1)),
687687
... Word('x a1 a1 x a1 a2 x a2 a2 L L', (2, 1))]
688688
...
689-
>>> for v in vs: print(example_4_25.share_orbit(u, v))
689+
>>> for v in vs: print(example_5_15.share_orbit(u, v))
690690
{-4}
691691
{}
692692
{-1}
@@ -788,12 +788,12 @@ def _type_b_descendant(self, head, tail, head_data):
788788
* :math:`\widetilde{y}\widetilde{\Gamma}` is in the same orbit as :math:`y\Gamma`.
789789
* :math:`\widetilde{\Gamma}` does not start with the characteristic multiplier of :math:`\widetilde{y}`.
790790
791-
>>> basis = example_4_25.quasinormal_basis
791+
>>> basis = example_5_15.quasinormal_basis
792792
>>> basis
793793
Generators((2, 1), ['x1 a1', 'x1 a2 a1', 'x1 a2 a2'])
794794
>>> head = Word('x a2 a2', (2, 1))
795-
>>> _, _, type_b_data = example_4_25.orbit_type(head, basis)
796-
>>> example_4_25._type_b_descendant(head, from_string('a1 a1 a2'), type_b_data)
795+
>>> _, _, type_b_data = example_5_15.orbit_type(head, basis)
796+
>>> example_5_15._type_b_descendant(head, from_string('a1 a1 a2'), type_b_data)
797797
(1, Word('x1 a2 a2', (2, 1)), (-2,))
798798
"""
799799
orig_head = head

thompson/examples/__init__.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
def add_module_attribute(name, value):
2525
globals()[name] = value
26+
# print('loading', name)
2627
__all__.append(name)
2728

2829
remove_whitespace = str.maketrans('', '', string.whitespace)
@@ -47,6 +48,8 @@ def read_examples():
4748
p, i = aut.free_factors()
4849
add_module_attribute(name + '_p', p)
4950
add_module_attribute(name + '_i', i)
51+
p.__doc__ = "A purely periodic free factor, extracted from {}.".format(name)
52+
i.__doc__ = "A purely infinite free factor, extracted from {}.".format(name)
5053

5154
#3. If any examples have more than one name, deal with that next.
5255
aliases = pkg_resources.resource_filename("thompson.examples", "aliases.txt")

0 commit comments

Comments
 (0)