2022-10-15 12:05:14 +00:00
|
|
|
#!/usr/bin/python
|
|
|
|
|
|
|
|
import coxeter_automaton
|
2023-01-04 21:52:21 +00:00
|
|
|
from pprint import pprint
|
|
|
|
|
|
|
|
# the (3, 3, 3) triangle group; or equivalently, the
|
|
|
|
# equilateral triangle tiling of the Euclidean plane
|
|
|
|
coxeter_matrix = [[1, 3, 3],
|
|
|
|
[3, 1, 3],
|
|
|
|
[3, 3, 1]]
|
2022-10-15 12:05:14 +00:00
|
|
|
|
|
|
|
# (2, 3, infinity) triangle group; 0 stands for infinity
|
2023-01-04 21:52:21 +00:00
|
|
|
# coxeter_matrix = [[1, 0, 3],
|
|
|
|
# [0, 1, 2],
|
|
|
|
# [3, 2, 1]]
|
|
|
|
|
|
|
|
# coxeter_matrix = [[1, 2, 0, 0, 0, 2],
|
|
|
|
# [2, 1, 2, 0, 0, 0],
|
|
|
|
# [0, 2, 1, 2, 0, 0],
|
|
|
|
# [0, 0, 2, 1, 2, 0],
|
|
|
|
# [0, 0, 0, 2, 1, 2],
|
|
|
|
# [2, 0, 0, 0, 2, 1]]
|
2022-10-15 12:05:14 +00:00
|
|
|
|
|
|
|
graph = coxeter_automaton.generate_automaton_coxeter_matrix(coxeter_matrix, lex_reduced = False)
|
|
|
|
graph_shortlex = coxeter_automaton.generate_automaton_coxeter_matrix(coxeter_matrix, lex_reduced = True)
|
|
|
|
|
2023-01-04 21:52:21 +00:00
|
|
|
pprint(graph)
|
2022-10-15 12:05:14 +00:00
|
|
|
|
2023-01-04 21:52:21 +00:00
|
|
|
# group = coxeter_automaton.enumerate_group(graph, graph_shortlex, 10)
|
2022-10-15 12:05:14 +00:00
|
|
|
|
|
|
|
# for each group element g and generator a, print index of a*g
|
2023-01-04 21:52:21 +00:00
|
|
|
# print([[l.id if l else None for l in g.left] for g in group])
|