#!/usr/bin/python import coxeter_automaton 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]] # (2, 3, infinity) triangle group; 0 stands for infinity # 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]] 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) pprint(graph) # group = coxeter_automaton.enumerate_group(graph, graph_shortlex, 10) # for each group element g and generator a, print index of a*g # print([[l.id if l else None for l in g.left] for g in group])