-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfactorize.py
184 lines (133 loc) · 33.7 KB
/
factorize.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
from collections import Counter
def expand_tuple_list(tp):
def expand_tuple_helper(acc, tp_comp):
if type(tp_comp) is list:
return [x + (y,) for x in acc for y in tp_comp]
return [x + (tp_comp,) for x in acc]
return reduce(expand_tuple_helper, tp, [tuple()])
def expand_map_all(xs):
return {k: [tp for v in vs for tp in expand_tuple_list(v)] for k, vs in xs.items()}
def deep_freeze(x):
type_x = type(x)
if type_x is list or type_x is set:
return frozenset([deep_freeze(el) for el in x])
if type_x is tuple:
return tuple(map(deep_freeze, x))
return x
def deep_thaw(x):
type_x = type(x)
if type_x is list or type_x is set or type_x is frozenset:
return [deep_thaw(el) for el in x]
if type_x is tuple:
return tuple(map(deep_thaw, x))
return x
def unnest(ls):
if type(ls) is list:
if len(ls) == 1:
return unnest(ls[0])
return ls
return [ls]
def factorize(tps):
results = tps
last_size = -1
def tuple_diff_indices(tp1, tp2):
return [i for i, (l, r) in enumerate(zip(tp1, tp2)) if l != r]
def combine_component(a, b):
if type(a) is list:
if type(b) is list:
return sorted(a + b)
return sorted(a + [b])
if type(b) is list:
return sorted([a] + b)
return sorted([a, b])
def merge_adjacent_tuples(acc, tp):
for i in range(len(acc)):
idxs = tuple_diff_indices(acc[i], tp)
if len(idxs) == 1:
tp_list = list(acc[i])
tp_list[idxs[0]] = combine_component(acc[i][idxs[0]], tp[idxs[0]])
acc[i] = tuple(tp_list)
return acc
return acc + [tp]
while len(results) - last_size:
last_size = len(results)
results = reduce(merge_adjacent_tuples, results, [])
return results
def factorize_cycles(tps, derivative_op):
if not tps:
return tps
def is_adjacent(a, b):
da = derivative_op(a)
db = derivative_op(b)
results = tps
queue = []
# iterate through each tuple component
for idx in range(len(tps[0])):
queue, results = results, queue
while queue:
cur = queue.pop(0)
def tuple_diff_indices(tp1, tp2):
return [i for i, (l, r) in enumerate(zip(tp1, tp2)) if l != r]
def combine_component(a, b):
if type(a) is list:
if type(b) is list:
return sorted(a + b)
return sorted(a + [b])
if type(b) is list:
return sorted([a] + b)
return sorted([a, b])
def merge_adjacent_tuples(acc, tp):
for i in range(len(acc)):
idxs = tuple_diff_indices(acc[i], tp)
if len(idxs) == 1:
tp_list = list(acc[i])
# only combine if the two components are touching
if set(derivative_op(acc[i][idxs[0]])).intersection(set(derivative_op(tp[idxs[0]]))):
tp_list[idxs[0]] = combine_component(acc[i][idxs[0]], tp[idxs[0]])
acc[i] = tuple(tp_list)
return acc
return acc + [tp]
while len(results) - last_size:
last_size = len(results)
results = reduce(merge_adjacent_tuples, results, [])
return results
def main():
delta_g_DGC = {'h1_0': [('v', 'a'), ('a', 'v')], 'h0_0': [('v', 'v')], 'h2_0': [('v', 'ab'), ('a', 'b'), ('ab', 'v')]}
delta_g_BR = {'h0_0': [('v_{1}', 'v_{1}')],
'h2_1': [('m_{6}', 'c_{9}'), ('c_{6}', 'm_{8}'), ('v_{6}', 't_{5}'), ('c_{10}', 'm_{8}'),
('v_{6}', 't_{6}'), ('m_{9}', 'c_{6}'), ('c_{9}', 'm_{8}'), ('m_{9}', 'c_{9}'),
('c_{6}', 'm_{7}'), ('v_{6}', 't_{8}'), ('c_{10}', 'm_{7}'), ('t_{8}', 'v_{10}'),
('c_{5}', 'm_{7}'), ('c_{9}', 'm_{7}'), ('m_{6}', 'c_{5}'), ('v_{6}', 't_{7}'),
('m_{6}', 'c_{6}'), ('t_{5}', 'v_{10}'), ('m_{9}', 'c_{5}'), ('m_{9}', 'c_{10}'),
('t_{6}', 'v_{10}'), ('t_{7}', 'v_{10}'), ('m_{6}', 'c_{10}'), ('c_{5}', 'm_{8}')],
'h2_0': [('c_{8}', 'm_{10}'), ('c_{3}', 'm_{10}'), ('m_{4}', 'c_{4}'), ('m_{4}', 'c_{3}'),
('m_{11}', 'c_{7}'), ('m_{4}', 'c_{8}'), ('v_{1}', 't_{2}'), ('c_{7}', 'm_{5}'),
('v_{1}', 't_{1}'), ('c_{3}', 'm_{5}'), ('c_{4}', 'm_{5}'), ('m_{11}', 'c_{8}'),
('m_{4}', 'c_{7}'), ('c_{7}', 'm_{10}'), ('t_{3}', 'v_{5}'), ('t_{2}', 'v_{5}'),
('t_{4}', 'v_{5}'), ('v_{1}', 't_{4}'), ('m_{11}', 'c_{3}'), ('m_{11}', 'c_{4}'),
('c_{8}', 'm_{5}'), ('c_{4}', 'm_{10}'), ('v_{1}', 't_{3}'), ('t_{1}', 'v_{5}')],
'h1_0': [('v_{1}', 'm_{11}'), ('m_{11}', 'v_{2}'), ('m_{4}', 'v_{2}'), ('v_{1}', 'm_{4}')],
'h1_1': [('c_{7}', 'v_{3}'), ('v_{2}', 'c_{3}'), ('c_{3}', 'v_{3}'), ('v_{2}', 'c_{7}')],
'h1_2': [('m_{9}', 'v_{7}'), ('m_{6}', 'v_{7}'), ('v_{6}', 'm_{9}'), ('v_{6}', 'm_{6}')]
}
simple_triples = [(1, 1, 1), (1, 1, 2), (1, 2, 1), (1, 2, 2), (2, 1, 1), (2, 1, 2), (2, 2, 1), (2, 2, 2),
(1, 3, 1), (1, 3, 2), (2, 3, 1), (2, 3, 2)]
print "DGC Toy"
for k, vs in delta_g_DGC.items():
print k, " = ", factorize(vs)
print "\n\nBorromean Rings"
for k, vs in delta_g_BR.items():
print k, " = ", factorize(vs)
print "\n\n3-Tuples Factoring"
print factorize(simple_triples)
print "\n\n4-Tuple Factoring"
print factorize([(1,3,5,7), (2,3,5,7), (1,4,5,7), (2,4,5,7),
(1,3,6,7), (2,3,6,7), (1,4,6,7), (2,4,6,7),
(1,3,5,8), (2,3,5,8), (1,4,5,8), (2,4,5,8),
(1,3,6,8), (2,3,6,8), (1,4,6,8), (2,4,6,8),])
BR_phi_1 = {'h0_0': [], 'h2_1': [('v_{1}', 't_{5}', 'm_{4}'), ('v_{1}', 't_{5}', 'm_{7}'), ('v_{1}', 't_{5}', 'm_{13}'), ('v_{1}', 't_{5}', 'c_{3}'), ('v_{1}', 't_{6}', 'm_{4}'), ('v_{1}', 't_{6}', 'm_{7}'), ('v_{1}', 't_{6}', 'm_{13}'), ('v_{1}', 't_{6}', 'c_{3}'), ('v_{1}', 't_{7}', 'm_{4}'), ('v_{1}', 't_{7}', 'm_{7}'), ('v_{1}', 't_{7}', 'm_{13}'), ('v_{1}', 't_{7}', 'c_{3}'), ('v_{1}', 't_{8}', 'm_{4}'), ('v_{1}', 't_{8}', 'm_{7}'), ('v_{1}', 't_{8}', 'm_{13}'), ('v_{1}', 't_{8}', 'c_{3}'), ('v_{1}', 's_{5}', 'm_{7}'), ('v_{1}', 's_{5}', 'm_{8}'), ('v_{1}', 's_{6}', 'm_{7}'), ('v_{1}', 's_{6}', 'm_{8}'), ('v_{1}', 'm_{6}', 's_{1}'), ('v_{1}', 'm_{6}', 's_{2}'), ('v_{1}', 'm_{6}', 's_{5}'), ('v_{1}', 'm_{6}', 's_{6}'), ('v_{1}', 'm_{6}', 's_{9}'), ('v_{1}', 'm_{6}', 's_{10}'), ('v_{1}', 'm_{9}', 's_{1}'), ('v_{1}', 'm_{9}', 's_{2}'), ('v_{1}', 'm_{9}', 's_{5}'), ('v_{1}', 'm_{9}', 's_{6}'), ('v_{1}', 'm_{9}', 's_{9}'), ('v_{1}', 'm_{9}', 's_{10}'), ('v_{1}', 'm_{2}', 't_{5}'), ('v_{1}', 'm_{2}', 't_{6}'), ('v_{1}', 'm_{2}', 't_{7}'), ('v_{1}', 'm_{2}', 't_{8}'), ('v_{1}', 'c_{3}', 't_{5}'), ('v_{1}', 'c_{3}', 't_{6}'), ('v_{1}', 'c_{3}', 't_{7}'), ('v_{1}', 'c_{3}', 't_{8}'), ('t_{5}', 'm_{4}', 'v_{1}'), ('t_{5}', 'm_{7}', 'v_{1}'), ('t_{5}', 'm_{13}', 'v_{1}'), ('t_{5}', 'c_{3}', 'v_{1}'), ('t_{6}', 'm_{4}', 'v_{1}'), ('t_{6}', 'm_{7}', 'v_{1}'), ('t_{6}', 'm_{13}', 'v_{1}'), ('t_{6}', 'c_{3}', 'v_{1}'), ('t_{7}', 'm_{4}', 'v_{1}'), ('t_{7}', 'm_{7}', 'v_{1}'), ('t_{7}', 'm_{13}', 'v_{1}'), ('t_{7}', 'c_{3}', 'v_{1}'), ('t_{8}', 'm_{4}', 'v_{1}'), ('t_{8}', 'm_{7}', 'v_{1}'), ('t_{8}', 'm_{13}', 'v_{1}'), ('t_{8}', 'c_{3}', 'v_{1}'), ('s_{1}', 'm_{7}', 'v_{1}'), ('s_{1}', 'm_{8}', 'v_{1}'), ('s_{2}', 'm_{7}', 'v_{1}'), ('s_{2}', 'm_{8}', 'v_{1}'), ('s_{5}', 'm_{7}', 'v_{1}'), ('s_{5}', 'm_{8}', 'v_{1}'), ('s_{6}', 'm_{7}', 'v_{1}'), ('s_{6}', 'm_{8}', 'v_{1}'), ('s_{9}', 'm_{7}', 'v_{1}'), ('s_{9}', 'm_{8}', 'v_{1}'), ('s_{10}', 'm_{7}', 'v_{1}'), ('s_{10}', 'm_{8}', 'v_{1}'), ('m_{6}', 's_{1}', 'v_{1}'), ('m_{6}', 's_{2}', 'v_{1}'), ('m_{6}', 's_{5}', 'v_{1}'), ('m_{6}', 's_{6}', 'v_{1}'), ('m_{6}', 's_{9}', 'v_{1}'), ('m_{6}', 's_{10}', 'v_{1}'), ('m_{9}', 's_{1}', 'v_{1}'), ('m_{9}', 's_{2}', 'v_{1}'), ('m_{9}', 's_{5}', 'v_{1}'), ('m_{9}', 's_{6}', 'v_{1}'), ('m_{9}', 's_{9}', 'v_{1}'), ('m_{9}', 's_{10}', 'v_{1}'), ('m_{2}', 't_{5}', 'v_{1}'), ('m_{2}', 't_{6}', 'v_{1}'), ('m_{2}', 't_{7}', 'v_{1}'), ('m_{2}', 't_{8}', 'v_{1}'), ('m_{4}', 't_{5}', 'v_{1}'), ('m_{4}', 't_{6}', 'v_{1}'), ('m_{4}', 't_{7}', 'v_{1}'), ('m_{4}', 't_{8}', 'v_{1}'), ('c_{3}', 't_{5}', 'v_{1}'), ('c_{3}', 't_{6}', 'v_{1}'), ('c_{3}', 't_{7}', 'v_{1}'), ('c_{3}', 't_{8}', 'v_{1}'), ('t_{5}', 'v_{1}', 'm_{4}'), ('t_{5}', 'm_{4}', 'v_{2}'), ('t_{5}', 'm_{7}', 'v_{10}'), ('t_{5}', 'v_{9}', 'm_{7}'), ('t_{5}', 'm_{13}', 'v_{9}'), ('t_{5}', 'v_{3}', 'm_{13}'), ('t_{5}', 'v_{2}', 'c_{3}'), ('t_{5}', 'c_{3}', 'v_{3}'), ('t_{6}', 'v_{1}', 'm_{4}'), ('t_{6}', 'm_{4}', 'v_{2}'), ('t_{6}', 'm_{7}', 'v_{10}'), ('t_{6}', 'v_{9}', 'm_{7}'), ('t_{6}', 'm_{13}', 'v_{9}'), ('t_{6}', 'v_{3}', 'm_{13}'), ('t_{6}', 'v_{2}', 'c_{3}'), ('t_{6}', 'c_{3}', 'v_{3}'), ('t_{7}', 'v_{1}', 'm_{4}'), ('t_{7}', 'm_{4}', 'v_{2}'), ('t_{7}', 'm_{7}', 'v_{10}'), ('t_{7}', 'v_{9}', 'm_{7}'), ('t_{7}', 'm_{13}', 'v_{9}'), ('t_{7}', 'v_{3}', 'm_{13}'), ('t_{7}', 'v_{2}', 'c_{3}'), ('t_{7}', 'c_{3}', 'v_{3}'), ('t_{8}', 'v_{1}', 'm_{4}'), ('t_{8}', 'm_{4}', 'v_{2}'), ('t_{8}', 'm_{7}', 'v_{10}'), ('t_{8}', 'v_{9}', 'm_{7}'), ('t_{8}', 'm_{13}', 'v_{9}'), ('t_{8}', 'v_{3}', 'm_{13}'), ('t_{8}', 'v_{2}', 'c_{3}'), ('t_{8}', 'c_{3}', 'v_{3}'), ('s_{1}', 'm_{7}', 'v_{10}'), ('s_{1}', 'v_{9}', 'm_{7}'), ('s_{1}', 'v_{9}', 'm_{8}'), ('s_{1}', 'm_{8}', 'v_{10}'), ('s_{2}', 'm_{7}', 'v_{10}'), ('s_{2}', 'v_{9}', 'm_{7}'), ('s_{2}', 'v_{9}', 'm_{8}'), ('s_{2}', 'm_{8}', 'v_{10}'), ('s_{5}', 'm_{7}', 'v_{10}'), ('s_{5}', 'v_{9}', 'm_{7}'), ('s_{5}', 'v_{9}', 'm_{8}'), ('s_{5}', 'm_{8}', 'v_{10}'), ('s_{6}', 'm_{7}', 'v_{10}'), ('s_{6}', 'v_{9}', 'm_{7}'), ('s_{6}', 'v_{9}', 'm_{8}'), ('s_{6}', 'm_{8}', 'v_{10}'), ('s_{9}', 'm_{7}', 'v_{10}'), ('s_{9}', 'v_{9}', 'm_{7}'), ('s_{9}', 'v_{9}', 'm_{8}'), ('s_{9}', 'm_{8}', 'v_{10}'), ('s_{10}', 'm_{7}', 'v_{10}'), ('s_{10}', 'v_{9}', 'm_{7}'), ('s_{10}', 'v_{9}', 'm_{8}'), ('s_{10}', 'm_{8}', 'v_{10}'), ('m_{6}', 'c_{3}', 'm_{3}'), ('m_{6}', 'c_{5}', 'm_{3}'), ('m_{6}', 'v_{1}', 's_{1}'), ('m_{6}', 'm_{4}', 'c_{3}'), ('m_{6}', 'c_{3}', 'c_{5}'), ('m_{6}', 'm_{2}', 'c_{5}'), ('m_{6}', 'c_{3}', 'm_{6}'), ('m_{6}', 'm_{4}', 'c_{5}'), ('m_{6}', 'c_{3}', 'm_{2}'), ('m_{6}', 's_{1}', 'v_{11}'), ('m_{6}', 'm_{6}', 'c_{5}'), ('m_{6}', 'c_{7}', 'm_{6}'), ('m_{6}', 'v_{1}', 's_{2}'), ('m_{6}', 'c_{7}', 'c_{9}'), ('m_{6}', 'm_{4}', 'c_{9}'), ('m_{6}', 'c_{7}', 'm_{2}'), ('m_{6}', 'c_{7}', 'm_{3}'), ('m_{6}', 'c_{9}', 'm_{3}'), ('m_{6}', 'm_{4}', 'c_{7}'), ('m_{6}', 'm_{2}', 'c_{9}'), ('m_{6}', 'm_{6}', 'c_{9}'), ('m_{6}', 's_{2}', 'v_{11}'), ('m_{6}', 'c_{6}', 'c_{13}'), ('m_{6}', 'v_{8}', 's_{5}'), ('m_{6}', 's_{5}', 'v_{11}'), ('m_{6}', 'm_{7}', 'c_{13}'), ('m_{6}', 'c_{10}', 'c_{14}'), ('m_{6}', 'v_{8}', 's_{6}'), ('m_{6}', 'm_{7}', 'c_{14}'), ('m_{6}', 's_{6}', 'v_{11}'), ('m_{6}', 'm_{8}', 'c_{13}'), ('m_{6}', 's_{9}', 'v_{11}'), ('m_{6}', 'm_{11}', 'c_{13}'), ('m_{6}', 'v_{1}', 's_{9}'), ('m_{6}', 'm_{11}', 'c_{3}'), ('m_{6}', 'c_{3}', 'm_{13}'), ('m_{6}', 'c_{3}', 'm_{8}'), ('m_{6}', 'm_{13}', 'c_{13}'), ('m_{6}', 'c_{3}', 'c_{13}'), ('m_{6}', 'c_{7}', 'c_{14}'), ('m_{6}', 'm_{11}', 'c_{14}'), ('m_{6}', 'c_{7}', 'm_{8}'), ('m_{6}', 'm_{8}', 'c_{14}'), ('m_{6}', 'c_{7}', 'm_{13}'), ('m_{6}', 'm_{13}', 'c_{14}'), ('m_{6}', 'm_{11}', 'c_{7}'), ('m_{6}', 'v_{1}', 's_{10}'), ('m_{6}', 's_{10}', 'v_{11}'), ('m_{9}', 'c_{3}', 'm_{3}'), ('m_{9}', 'c_{5}', 'm_{3}'), ('m_{9}', 'v_{1}', 's_{1}'), ('m_{9}', 'm_{4}', 'c_{3}'), ('m_{9}', 'c_{3}', 'c_{5}'), ('m_{9}', 'm_{2}', 'c_{5}'), ('m_{9}', 'c_{3}', 'm_{6}'), ('m_{9}', 'm_{4}', 'c_{5}'), ('m_{9}', 'c_{3}', 'm_{2}'), ('m_{9}', 's_{1}', 'v_{11}'), ('m_{9}', 'm_{6}', 'c_{5}'), ('m_{9}', 'c_{7}', 'm_{6}'), ('m_{9}', 'v_{1}', 's_{2}'), ('m_{9}', 'c_{7}', 'c_{9}'), ('m_{9}', 'm_{4}', 'c_{9}'), ('m_{9}', 'c_{7}', 'm_{2}'), ('m_{9}', 'c_{7}', 'm_{3}'), ('m_{9}', 'c_{9}', 'm_{3}'), ('m_{9}', 'm_{4}', 'c_{7}'), ('m_{9}', 'm_{2}', 'c_{9}'), ('m_{9}', 'm_{6}', 'c_{9}'), ('m_{9}', 's_{2}', 'v_{11}'), ('m_{9}', 'c_{6}', 'c_{13}'), ('m_{9}', 'v_{8}', 's_{5}'), ('m_{9}', 's_{5}', 'v_{11}'), ('m_{9}', 'm_{7}', 'c_{13}'), ('m_{9}', 'c_{10}', 'c_{14}'), ('m_{9}', 'v_{8}', 's_{6}'), ('m_{9}', 'm_{7}', 'c_{14}'), ('m_{9}', 's_{6}', 'v_{11}'), ('m_{9}', 'm_{8}', 'c_{13}'), ('m_{9}', 's_{9}', 'v_{11}'), ('m_{9}', 'm_{11}', 'c_{13}'), ('m_{9}', 'v_{1}', 's_{9}'), ('m_{9}', 'm_{11}', 'c_{3}'), ('m_{9}', 'c_{3}', 'm_{13}'), ('m_{9}', 'c_{3}', 'm_{8}'), ('m_{9}', 'm_{13}', 'c_{13}'), ('m_{9}', 'c_{3}', 'c_{13}'), ('m_{9}', 'c_{7}', 'c_{14}'), ('m_{9}', 'm_{11}', 'c_{14}'), ('m_{9}', 'c_{7}', 'm_{8}'), ('m_{9}', 'm_{8}', 'c_{14}'), ('m_{9}', 'c_{7}', 'm_{13}'), ('m_{9}', 'm_{13}', 'c_{14}'), ('m_{9}', 'm_{11}', 'c_{7}'), ('m_{9}', 'v_{1}', 's_{10}'), ('m_{9}', 's_{10}', 'v_{11}'), ('m_{2}', 'c_{6}', 'm_{8}'), ('m_{2}', 'm_{9}', 'c_{6}'), ('m_{2}', 't_{5}', 'v_{10}'), ('m_{2}', 'm_{9}', 'c_{5}'), ('m_{2}', 'm_{6}', 'c_{6}'), ('m_{2}', 'm_{6}', 'c_{5}'), ('m_{2}', 'c_{6}', 'm_{7}'), ('m_{2}', 't_{6}', 'v_{10}'), ('m_{2}', 'c_{10}', 'm_{8}'), ('m_{2}', 'm_{9}', 'c_{9}'), ('m_{2}', 'm_{9}', 'c_{10}'), ('m_{2}', 't_{7}', 'v_{10}'), ('m_{2}', 'm_{6}', 'c_{9}'), ('m_{2}', 't_{8}', 'v_{10}'), ('m_{2}', 'm_{6}', 'c_{10}'), ('m_{2}', 'c_{10}', 'm_{7}'), ('m_{4}', 'c_{6}', 'm_{8}'), ('m_{4}', 'v_{6}', 't_{5}'), ('m_{4}', 'm_{9}', 'c_{6}'), ('m_{4}', 't_{5}', 'v_{10}'), ('m_{4}', 'm_{9}', 'c_{5}'), ('m_{4}', 'm_{6}', 'c_{6}'), ('m_{4}', 'm_{6}', 'c_{5}'), ('m_{4}', 'v_{6}', 't_{6}'), ('m_{4}', 'c_{6}', 'm_{7}'), ('m_{4}', 't_{6}', 'v_{10}'), ('m_{4}', 'c_{10}', 'm_{8}'), ('m_{4}', 'v_{6}', 't_{7}'), ('m_{4}', 'm_{9}', 'c_{9}'), ('m_{4}', 'm_{9}', 'c_{10}'), ('m_{4}', 't_{7}', 'v_{10}'), ('m_{4}', 'm_{6}', 'c_{9}'), ('m_{4}', 't_{8}', 'v_{10}'), ('m_{4}', 'm_{6}', 'c_{10}'), ('m_{4}', 'v_{6}', 't_{8}'), ('m_{4}', 'c_{10}', 'm_{7}'), ('c_{3}', 'c_{6}', 'm_{8}'), ('c_{3}', 'v_{6}', 't_{5}'), ('c_{3}', 'm_{9}', 'c_{6}'), ('c_{3}', 't_{5}', 'v_{10}'), ('c_{3}', 'm_{9}', 'c_{5}'), ('c_{3}', 'm_{6}', 'c_{6}'), ('c_{3}', 'm_{6}', 'c_{5}'), ('c_{3}', 'v_{6}', 't_{6}'), ('c_{3}', 'c_{6}', 'm_{7}'), ('c_{3}', 't_{6}', 'v_{10}'), ('c_{3}', 'c_{9}', 'm_{8}'), ('c_{3}', 'c_{10}', 'm_{8}'), ('c_{3}', 'v_{6}', 't_{7}'), ('c_{3}', 'm_{9}', 'c_{9}'), ('c_{3}', 'm_{9}', 'c_{10}'), ('c_{3}', 't_{7}', 'v_{10}'), ('c_{3}', 'm_{6}', 'c_{9}'), ('c_{3}', 't_{8}', 'v_{10}'), ('c_{3}', 'm_{6}', 'c_{10}'), ('c_{3}', 'v_{6}', 't_{8}'), ('c_{3}', 'c_{10}', 'm_{7}'), ('c_{3}', 'c_{9}', 'm_{7}'), ('c_{6}', 'm_{8}', 'm_{4}'), ('v_{6}', 't_{5}', 'm_{4}'), ('m_{9}', 'c_{6}', 'm_{4}'), ('t_{5}', 'v_{10}', 'm_{4}'), ('m_{9}', 'c_{5}', 'm_{4}'), ('c_{5}', 'm_{8}', 'm_{4}'), ('c_{6}', 'm_{8}', 'm_{7}'), ('v_{6}', 't_{5}', 'm_{7}'), ('t_{5}', 'v_{10}', 'm_{7}'), ('m_{9}', 'c_{5}', 'm_{7}'), ('c_{5}', 'm_{8}', 'm_{7}'), ('c_{6}', 'm_{8}', 'm_{13}'), ('v_{6}', 't_{5}', 'm_{13}'), ('m_{9}', 'c_{6}', 'm_{13}'), ('t_{5}', 'v_{10}', 'm_{13}'), ('m_{9}', 'c_{5}', 'm_{13}'), ('c_{5}', 'm_{8}', 'm_{13}'), ('c_{6}', 'm_{8}', 'c_{3}'), ('v_{6}', 't_{5}', 'c_{3}'), ('m_{9}', 'c_{6}', 'c_{3}'), ('t_{5}', 'v_{10}', 'c_{3}'), ('m_{9}', 'c_{5}', 'c_{3}'), ('c_{5}', 'm_{8}', 'c_{3}'), ('m_{6}', 'c_{6}', 'm_{4}'), ('c_{5}', 'm_{7}', 'm_{4}'), ('m_{6}', 'c_{5}', 'm_{4}'), ('v_{6}', 't_{6}', 'm_{4}'), ('c_{6}', 'm_{7}', 'm_{4}'), ('t_{6}', 'v_{10}', 'm_{4}'), ('c_{5}', 'm_{7}', 'm_{7}'), ('v_{6}', 't_{6}', 'm_{7}'), ('t_{6}', 'v_{10}', 'm_{7}'), ('m_{6}', 'c_{6}', 'm_{13}'), ('c_{5}', 'm_{7}', 'm_{13}'), ('m_{6}', 'c_{5}', 'm_{13}'), ('v_{6}', 't_{6}', 'm_{13}'), ('c_{6}', 'm_{7}', 'm_{13}'), ('t_{6}', 'v_{10}', 'm_{13}'), ('m_{6}', 'c_{6}', 'c_{3}'), ('c_{5}', 'm_{7}', 'c_{3}'), ('m_{6}', 'c_{5}', 'c_{3}'), ('v_{6}', 't_{6}', 'c_{3}'), ('c_{6}', 'm_{7}', 'c_{3}'), ('t_{6}', 'v_{10}', 'c_{3}'), ('c_{9}', 'm_{8}', 'm_{4}'), ('c_{10}', 'm_{8}', 'm_{4}'), ('v_{6}', 't_{7}', 'm_{4}'), ('m_{9}', 'c_{9}', 'm_{4}'), ('m_{9}', 'c_{10}', 'm_{4}'), ('t_{7}', 'v_{10}', 'm_{4}'), ('c_{9}', 'm_{8}', 'm_{7}'), ('c_{10}', 'm_{8}', 'm_{7}'), ('v_{6}', 't_{7}', 'm_{7}'), ('m_{9}', 'c_{9}', 'm_{7}'), ('t_{7}', 'v_{10}', 'm_{7}'), ('c_{9}', 'm_{8}', 'm_{13}'), ('c_{10}', 'm_{8}', 'm_{13}'), ('v_{6}', 't_{7}', 'm_{13}'), ('m_{9}', 'c_{9}', 'm_{13}'), ('m_{9}', 'c_{10}', 'm_{13}'), ('t_{7}', 'v_{10}', 'm_{13}'), ('c_{9}', 'm_{8}', 'c_{3}'), ('c_{10}', 'm_{8}', 'c_{3}'), ('v_{6}', 't_{7}', 'c_{3}'), ('m_{9}', 'c_{9}', 'c_{3}'), ('m_{9}', 'c_{10}', 'c_{3}'), ('t_{7}', 'v_{10}', 'c_{3}'), ('m_{6}', 'c_{9}', 'm_{4}'), ('t_{8}', 'v_{10}', 'm_{4}'), ('m_{6}', 'c_{10}', 'm_{4}'), ('v_{6}', 't_{8}', 'm_{4}'), ('c_{10}', 'm_{7}', 'm_{4}'), ('c_{9}', 'm_{7}', 'm_{4}'), ('t_{8}', 'v_{10}', 'm_{7}'), ('v_{6}', 't_{8}', 'm_{7}'), ('c_{9}', 'm_{7}', 'm_{7}'), ('m_{6}', 'c_{9}', 'm_{13}'), ('t_{8}', 'v_{10}', 'm_{13}'), ('m_{6}', 'c_{10}', 'm_{13}'), ('v_{6}', 't_{8}', 'm_{13}'), ('c_{10}', 'm_{7}', 'm_{13}'), ('c_{9}', 'm_{7}', 'm_{13}'), ('m_{6}', 'c_{9}', 'c_{3}'), ('t_{8}', 'v_{10}', 'c_{3}'), ('m_{6}', 'c_{10}', 'c_{3}'), ('v_{6}', 't_{8}', 'c_{3}'), ('c_{10}', 'm_{7}', 'c_{3}'), ('c_{9}', 'm_{7}', 'c_{3}'), ('c_{3}', 'm_{3}', 'm_{7}'), ('c_{5}', 'm_{3}', 'm_{7}'), ('m_{4}', 'c_{3}', 'm_{7}'), ('c_{3}', 'm_{6}', 'm_{7}'), ('c_{3}', 'm_{2}', 'm_{7}'), ('s_{1}', 'v_{11}', 'm_{7}'), ('c_{3}', 'm_{3}', 'm_{8}'), ('c_{5}', 'm_{3}', 'm_{8}'), ('m_{4}', 'c_{3}', 'm_{8}'), ('c_{3}', 'm_{6}', 'm_{8}'), ('c_{3}', 'm_{2}', 'm_{8}'), ('s_{1}', 'v_{11}', 'm_{8}'), ('m_{6}', 'c_{5}', 'm_{8}'), ('c_{7}', 'm_{6}', 'm_{7}'), ('c_{7}', 'c_{9}', 'm_{7}'), ('c_{7}', 'm_{2}', 'm_{7}'), ('c_{7}', 'm_{3}', 'm_{7}'), ('c_{9}', 'm_{3}', 'm_{7}'), ('m_{4}', 'c_{7}', 'm_{7}'), ('s_{2}', 'v_{11}', 'm_{7}'), ('c_{7}', 'm_{6}', 'm_{8}'), ('c_{7}', 'c_{9}', 'm_{8}'), ('c_{7}', 'm_{2}', 'm_{8}'), ('c_{7}', 'm_{3}', 'm_{8}'), ('c_{9}', 'm_{3}', 'm_{8}'), ('m_{4}', 'c_{7}', 'm_{8}'), ('m_{6}', 'c_{9}', 'm_{8}'), ('s_{2}', 'v_{11}', 'm_{8}'), ('c_{6}', 'c_{13}', 'm_{7}'), ('v_{8}', 's_{5}', 'm_{7}'), ('s_{5}', 'v_{11}', 'm_{7}'), ('m_{7}', 'c_{13}', 'm_{7}'), ('c_{6}', 'c_{13}', 'm_{8}'), ('v_{8}', 's_{5}', 'm_{8}'), ('c_{6}', 'm_{7}', 'm_{8}'), ('s_{5}', 'v_{11}', 'm_{8}'), ('m_{7}', 'c_{13}', 'm_{8}'), ('c_{10}', 'c_{14}', 'm_{7}'), ('v_{8}', 's_{6}', 'm_{7}'), ('m_{7}', 'c_{14}', 'm_{7}'), ('s_{6}', 'v_{11}', 'm_{7}'), ('c_{10}', 'm_{7}', 'm_{8}'), ('c_{10}', 'c_{14}', 'm_{8}'), ('v_{8}', 's_{6}', 'm_{8}'), ('m_{7}', 'c_{14}', 'm_{8}'), ('s_{6}', 'v_{11}', 'm_{8}'), ('m_{8}', 'c_{13}', 'm_{7}'), ('s_{9}', 'v_{11}', 'm_{7}'), ('m_{11}', 'c_{13}', 'm_{7}'), ('m_{11}', 'c_{3}', 'm_{7}'), ('c_{3}', 'm_{13}', 'm_{7}'), ('c_{3}', 'm_{8}', 'm_{7}'), ('m_{13}', 'c_{13}', 'm_{7}'), ('c_{3}', 'c_{13}', 'm_{7}'), ('m_{8}', 'c_{13}', 'm_{8}'), ('s_{9}', 'v_{11}', 'm_{8}'), ('m_{11}', 'c_{13}', 'm_{8}'), ('m_{11}', 'c_{3}', 'm_{8}'), ('c_{3}', 'm_{13}', 'm_{8}'), ('c_{3}', 'm_{8}', 'm_{8}'), ('m_{13}', 'c_{13}', 'm_{8}'), ('c_{3}', 'c_{13}', 'm_{8}'), ('c_{7}', 'c_{14}', 'm_{7}'), ('m_{11}', 'c_{14}', 'm_{7}'), ('c_{7}', 'm_{8}', 'm_{7}'), ('m_{8}', 'c_{14}', 'm_{7}'), ('c_{7}', 'm_{13}', 'm_{7}'), ('m_{13}', 'c_{14}', 'm_{7}'), ('m_{11}', 'c_{7}', 'm_{7}'), ('s_{10}', 'v_{11}', 'm_{7}'), ('c_{7}', 'c_{14}', 'm_{8}'), ('m_{11}', 'c_{14}', 'm_{8}'), ('c_{7}', 'm_{8}', 'm_{8}'), ('m_{8}', 'c_{14}', 'm_{8}'), ('c_{7}', 'm_{13}', 'm_{8}'), ('m_{13}', 'c_{14}', 'm_{8}'), ('m_{11}', 'c_{7}', 'm_{8}'), ('s_{10}', 'v_{11}', 'm_{8}'), ('m_{6}', 'v_{7}', 's_{1}'), ('v_{6}', 'm_{6}', 's_{1}'), ('m_{6}', 'v_{7}', 's_{2}'), ('v_{6}', 'm_{6}', 's_{2}'), ('m_{6}', 'v_{7}', 's_{5}'), ('v_{6}', 'm_{6}', 's_{5}'), ('m_{6}', 'v_{7}', 's_{6}'), ('v_{6}', 'm_{6}', 's_{6}'), ('m_{6}', 'v_{7}', 's_{9}'), ('v_{6}', 'm_{6}', 's_{9}'), ('m_{6}', 'v_{7}', 's_{10}'), ('v_{6}', 'm_{6}', 's_{10}'), ('m_{9}', 'v_{7}', 's_{1}'), ('v_{6}', 'm_{9}', 's_{1}'), ('m_{9}', 'v_{7}', 's_{2}'), ('v_{6}', 'm_{9}', 's_{2}'), ('m_{9}', 'v_{7}', 's_{5}'), ('v_{6}', 'm_{9}', 's_{5}'), ('m_{9}', 'v_{7}', 's_{6}'), ('v_{6}', 'm_{9}', 's_{6}'), ('m_{9}', 'v_{7}', 's_{9}'), ('v_{6}', 'm_{9}', 's_{9}'), ('m_{9}', 'v_{7}', 's_{10}'), ('v_{6}', 'm_{9}', 's_{10}'), ('v_{3}', 'm_{2}', 't_{5}'), ('v_{3}', 'm_{2}', 't_{6}'), ('v_{3}', 'm_{2}', 't_{7}'), ('v_{3}', 'm_{2}', 't_{8}'), ('m_{4}', 'v_{2}', 't_{5}'), ('m_{4}', 'v_{2}', 't_{6}'), ('m_{4}', 'v_{2}', 't_{7}'), ('m_{4}', 'v_{2}', 't_{8}'), ('v_{2}', 'c_{3}', 't_{5}'), ('c_{3}', 'v_{3}', 't_{5}'), ('v_{2}', 'c_{3}', 't_{6}'), ('c_{3}', 'v_{3}', 't_{6}'), ('v_{2}', 'c_{3}', 't_{7}'), ('c_{3}', 'v_{3}', 't_{7}'), ('v_{2}', 'c_{3}', 't_{8}'), ('c_{3}', 'v_{3}', 't_{8}'), ('m_{9}', 'c_{5}', 'c_{6}'), ('m_{9}', 'c_{5}', 'm_{8}'), ('c_{5}', 'c_{6}', 'm_{8}'), ('m_{9}', 'c_{6}', 'm_{8}'), ('c_{5}', 'c_{6}', 'm_{7}'), ('m_{6}', 'c_{6}', 'm_{7}'), ('m_{6}', 'c_{5}', 'm_{7}'), ('m_{6}', 'c_{5}', 'c_{6}'), ('m_{9}', 'c_{9}', 'c_{10}'), ('m_{9}', 'c_{9}', 'm_{8}'), ('c_{9}', 'c_{10}', 'm_{8}'), ('m_{9}', 'c_{10}', 'm_{8}'), ('c_{9}', 'c_{10}', 'm_{7}'), ('m_{6}', 'c_{10}', 'm_{7}'), ('m_{6}', 'c_{9}', 'm_{7}'), ('m_{6}', 'c_{9}', 'c_{10}')], 'h2_0': [('v_{1}', 's_{5}', 'm_{10}'), ('v_{1}', 's_{5}', 'm_{5}'), ('v_{1}', 's_{6}', 'm_{10}'), ('v_{1}', 's_{6}', 'm_{5}'), ('v_{1}', 's_{7}', 'm_{10}'), ('v_{1}', 's_{7}', 'm_{5}'), ('v_{1}', 's_{8}', 'm_{10}'), ('v_{1}', 's_{8}', 'm_{5}'), ('m_{11}', 's_{5}', 'v_{1}'), ('m_{11}', 's_{6}', 'v_{1}'), ('m_{11}', 's_{7}', 'v_{1}'), ('m_{11}', 's_{8}', 'v_{1}'), ('m_{11}', 's_{9}', 'v_{1}'), ('m_{11}', 's_{10}', 'v_{1}'), ('m_{4}', 's_{5}', 'v_{1}'), ('m_{4}', 's_{6}', 'v_{1}'), ('m_{4}', 's_{7}', 'v_{1}'), ('m_{4}', 's_{8}', 'v_{1}'), ('m_{4}', 's_{9}', 'v_{1}'), ('m_{4}', 's_{10}', 'v_{1}'), ('s_{5}', 'm_{10}', 'v_{1}'), ('s_{5}', 'm_{5}', 'v_{1}'), ('s_{6}', 'm_{10}', 'v_{1}'), ('s_{6}', 'm_{5}', 'v_{1}'), ('s_{7}', 'm_{10}', 'v_{1}'), ('s_{7}', 'm_{5}', 'v_{1}'), ('s_{8}', 'm_{10}', 'v_{1}'), ('s_{8}', 'm_{5}', 'v_{1}'), ('s_{9}', 'm_{10}', 'v_{1}'), ('s_{9}', 'm_{5}', 'v_{1}'), ('s_{10}', 'm_{10}', 'v_{1}'), ('s_{10}', 'm_{5}', 'v_{1}'), ('t_{1}', 'm_{1}', 'v_{1}'), ('t_{1}', 'm_{3}', 'v_{1}'), ('t_{1}', 'm_{12}', 'v_{1}'), ('t_{2}', 'm_{1}', 'v_{1}'), ('t_{2}', 'm_{3}', 'v_{1}'), ('t_{2}', 'm_{12}', 'v_{1}'), ('t_{3}', 'm_{1}', 'v_{1}'), ('t_{3}', 'm_{3}', 'v_{1}'), ('t_{3}', 'm_{12}', 'v_{1}'), ('t_{4}', 'm_{1}', 'v_{1}'), ('t_{4}', 'm_{3}', 'v_{1}'), ('t_{4}', 'm_{12}', 'v_{1}'), ('m_{11}', 'c_{6}', 'c_{13}'), ('m_{11}', 'v_{8}', 's_{5}'), ('m_{11}', 'c_{6}', 'm_{7}'), ('m_{11}', 's_{5}', 'v_{11}'), ('m_{11}', 'm_{7}', 'c_{13}'), ('m_{11}', 'c_{10}', 'm_{7}'), ('m_{11}', 'c_{10}', 'c_{14}'), ('m_{11}', 'v_{8}', 's_{6}'), ('m_{11}', 'm_{7}', 'c_{14}'), ('m_{11}', 's_{6}', 'v_{11}'), ('m_{11}', 'm_{10}', 'c_{6}'), ('m_{11}', 'v_{3}', 's_{7}'), ('m_{11}', 'm_{12}', 'c_{6}'), ('m_{11}', 's_{7}', 'v_{9}'), ('m_{11}', 'c_{4}', 'c_{6}'), ('m_{11}', 'v_{3}', 's_{8}'), ('m_{11}', 'm_{10}', 'c_{10}'), ('m_{11}', 'm_{12}', 'c_{10}'), ('m_{11}', 'c_{8}', 'c_{10}'), ('m_{11}', 's_{8}', 'v_{9}'), ('m_{11}', 'm_{8}', 'c_{13}'), ('m_{11}', 's_{9}', 'v_{11}'), ('m_{11}', 'm_{11}', 'c_{13}'), ('m_{11}', 'v_{1}', 's_{9}'), ('m_{11}', 'm_{11}', 'c_{3}'), ('m_{11}', 'c_{3}', 'm_{13}'), ('m_{11}', 'c_{3}', 'm_{8}'), ('m_{11}', 'm_{13}', 'c_{13}'), ('m_{11}', 'c_{3}', 'c_{13}'), ('m_{11}', 'c_{7}', 'c_{14}'), ('m_{11}', 'm_{11}', 'c_{14}'), ('m_{11}', 'c_{7}', 'm_{8}'), ('m_{11}', 'm_{8}', 'c_{14}'), ('m_{11}', 'c_{7}', 'm_{13}'), ('m_{11}', 'm_{13}', 'c_{14}'), ('m_{11}', 'm_{11}', 'c_{7}'), ('m_{11}', 'v_{1}', 's_{10}'), ('m_{11}', 's_{10}', 'v_{11}'), ('m_{4}', 'c_{6}', 'c_{13}'), ('m_{4}', 'v_{8}', 's_{5}'), ('m_{4}', 'c_{6}', 'm_{7}'), ('m_{4}', 's_{5}', 'v_{11}'), ('m_{4}', 'm_{7}', 'c_{13}'), ('m_{4}', 'c_{10}', 'm_{7}'), ('m_{4}', 'c_{10}', 'c_{14}'), ('m_{4}', 'v_{8}', 's_{6}'), ('m_{4}', 'm_{7}', 'c_{14}'), ('m_{4}', 's_{6}', 'v_{11}'), ('m_{4}', 'm_{10}', 'c_{6}'), ('m_{4}', 'v_{3}', 's_{7}'), ('m_{4}', 'm_{12}', 'c_{6}'), ('m_{4}', 's_{7}', 'v_{9}'), ('m_{4}', 'c_{4}', 'c_{6}'), ('m_{4}', 'c_{4}', 'm_{10}'), ('m_{4}', 'v_{3}', 's_{8}'), ('m_{4}', 'c_{8}', 'm_{10}'), ('m_{4}', 'm_{10}', 'c_{10}'), ('m_{4}', 'm_{12}', 'c_{10}'), ('m_{4}', 'c_{8}', 'c_{10}'), ('m_{4}', 's_{8}', 'v_{9}'), ('m_{4}', 'm_{8}', 'c_{13}'), ('m_{4}', 's_{9}', 'v_{11}'), ('m_{4}', 'm_{11}', 'c_{13}'), ('m_{4}', 'v_{1}', 's_{9}'), ('m_{4}', 'm_{11}', 'c_{3}'), ('m_{4}', 'c_{3}', 'm_{13}'), ('m_{4}', 'c_{3}', 'm_{8}'), ('m_{4}', 'm_{13}', 'c_{13}'), ('m_{4}', 'c_{3}', 'c_{13}'), ('m_{4}', 'c_{7}', 'c_{14}'), ('m_{4}', 'm_{11}', 'c_{14}'), ('m_{4}', 'c_{7}', 'm_{8}'), ('m_{4}', 'm_{8}', 'c_{14}'), ('m_{4}', 'c_{7}', 'm_{13}'), ('m_{4}', 'm_{13}', 'c_{14}'), ('m_{4}', 'm_{11}', 'c_{7}'), ('m_{4}', 'v_{1}', 's_{10}'), ('m_{4}', 's_{10}', 'v_{11}'), ('s_{5}', 'v_{4}', 'm_{10}'), ('s_{5}', 'm_{10}', 'v_{5}'), ('s_{5}', 'm_{5}', 'v_{5}'), ('s_{5}', 'v_{4}', 'm_{5}'), ('s_{6}', 'v_{4}', 'm_{10}'), ('s_{6}', 'm_{10}', 'v_{5}'), ('s_{6}', 'm_{5}', 'v_{5}'), ('s_{6}', 'v_{4}', 'm_{5}'), ('s_{7}', 'v_{4}', 'm_{10}'), ('s_{7}', 'm_{10}', 'v_{5}'), ('s_{7}', 'm_{5}', 'v_{5}'), ('s_{7}', 'v_{4}', 'm_{5}'), ('s_{8}', 'v_{4}', 'm_{10}'), ('s_{8}', 'm_{10}', 'v_{5}'), ('s_{8}', 'm_{5}', 'v_{5}'), ('s_{8}', 'v_{4}', 'm_{5}'), ('s_{9}', 'v_{4}', 'm_{10}'), ('s_{9}', 'm_{10}', 'v_{5}'), ('s_{9}', 'm_{5}', 'v_{5}'), ('s_{9}', 'v_{4}', 'm_{5}'), ('s_{10}', 'v_{4}', 'm_{10}'), ('s_{10}', 'm_{10}', 'v_{5}'), ('s_{10}', 'm_{5}', 'v_{5}'), ('s_{10}', 'v_{4}', 'm_{5}'), ('t_{1}', 'm_{1}', 'v_{11}'), ('t_{1}', 'v_{1}', 'm_{1}'), ('t_{1}', 'm_{3}', 'v_{11}'), ('t_{1}', 'v_{8}', 'm_{3}'), ('t_{1}', 'm_{12}', 'v_{8}'), ('t_{2}', 'm_{1}', 'v_{11}'), ('t_{2}', 'v_{1}', 'm_{1}'), ('t_{2}', 'm_{3}', 'v_{11}'), ('t_{2}', 'v_{8}', 'm_{3}'), ('t_{2}', 'm_{12}', 'v_{8}'), ('t_{3}', 'm_{1}', 'v_{11}'), ('t_{3}', 'v_{1}', 'm_{1}'), ('t_{3}', 'm_{3}', 'v_{11}'), ('t_{3}', 'v_{8}', 'm_{3}'), ('t_{3}', 'm_{12}', 'v_{8}'), ('t_{4}', 'm_{1}', 'v_{11}'), ('t_{4}', 'v_{1}', 'm_{1}'), ('t_{4}', 'm_{3}', 'v_{11}'), ('t_{4}', 'v_{8}', 'm_{3}'), ('t_{4}', 'm_{12}', 'v_{8}'), ('m_{11}', 'v_{2}', 's_{5}'), ('m_{11}', 'v_{2}', 's_{6}'), ('m_{11}', 'v_{2}', 's_{7}'), ('m_{11}', 'v_{2}', 's_{8}'), ('m_{11}', 'v_{2}', 's_{9}'), ('m_{11}', 'v_{2}', 's_{10}'), ('m_{4}', 'v_{2}', 's_{5}'), ('m_{4}', 'v_{2}', 's_{6}'), ('m_{4}', 'v_{2}', 's_{7}'), ('m_{4}', 'v_{2}', 's_{8}'), ('m_{4}', 'v_{2}', 's_{9}'), ('m_{4}', 'v_{2}', 's_{10}'), ('c_{6}', 'c_{13}', 'm_{10}'), ('v_{8}', 's_{5}', 'm_{10}'), ('c_{6}', 'm_{7}', 'm_{10}'), ('s_{5}', 'v_{11}', 'm_{10}'), ('m_{7}', 'c_{13}', 'm_{10}'), ('c_{6}', 'c_{13}', 'm_{5}'), ('v_{8}', 's_{5}', 'm_{5}'), ('c_{6}', 'm_{7}', 'm_{5}'), ('s_{5}', 'v_{11}', 'm_{5}'), ('m_{7}', 'c_{13}', 'm_{5}'), ('c_{10}', 'm_{7}', 'm_{10}'), ('c_{10}', 'c_{14}', 'm_{10}'), ('v_{8}', 's_{6}', 'm_{10}'), ('m_{7}', 'c_{14}', 'm_{10}'), ('s_{6}', 'v_{11}', 'm_{10}'), ('c_{10}', 'm_{7}', 'm_{5}'), ('c_{10}', 'c_{14}', 'm_{5}'), ('v_{8}', 's_{6}', 'm_{5}'), ('m_{7}', 'c_{14}', 'm_{5}'), ('s_{6}', 'v_{11}', 'm_{5}'), ('m_{10}', 'c_{6}', 'm_{10}'), ('v_{3}', 's_{7}', 'm_{10}'), ('c_{4}', 'm_{12}', 'm_{10}'), ('m_{12}', 'c_{6}', 'm_{10}'), ('s_{7}', 'v_{9}', 'm_{10}'), ('c_{4}', 'c_{6}', 'm_{10}'), ('c_{4}', 'm_{10}', 'm_{10}'), ('m_{10}', 'c_{6}', 'm_{5}'), ('v_{3}', 's_{7}', 'm_{5}'), ('c_{4}', 'm_{12}', 'm_{5}'), ('m_{12}', 'c_{6}', 'm_{5}'), ('s_{7}', 'v_{9}', 'm_{5}'), ('c_{4}', 'c_{6}', 'm_{5}'), ('c_{4}', 'm_{10}', 'm_{5}'), ('v_{3}', 's_{8}', 'm_{10}'), ('c_{8}', 'm_{10}', 'm_{10}'), ('m_{10}', 'c_{10}', 'm_{10}'), ('c_{8}', 'm_{12}', 'm_{10}'), ('m_{12}', 'c_{10}', 'm_{10}'), ('c_{8}', 'c_{10}', 'm_{10}'), ('s_{8}', 'v_{9}', 'm_{10}'), ('v_{3}', 's_{8}', 'm_{5}'), ('c_{8}', 'm_{10}', 'm_{5}'), ('m_{10}', 'c_{10}', 'm_{5}'), ('c_{8}', 'm_{12}', 'm_{5}'), ('m_{12}', 'c_{10}', 'm_{5}'), ('c_{8}', 'c_{10}', 'm_{5}'), ('s_{8}', 'v_{9}', 'm_{5}'), ('m_{8}', 'c_{13}', 'm_{10}'), ('s_{9}', 'v_{11}', 'm_{10}'), ('m_{11}', 'c_{13}', 'm_{10}'), ('c_{3}', 'm_{13}', 'm_{10}'), ('c_{3}', 'm_{8}', 'm_{10}'), ('m_{13}', 'c_{13}', 'm_{10}'), ('c_{3}', 'c_{13}', 'm_{10}'), ('m_{8}', 'c_{13}', 'm_{5}'), ('s_{9}', 'v_{11}', 'm_{5}'), ('m_{11}', 'c_{13}', 'm_{5}'), ('m_{11}', 'c_{3}', 'm_{5}'), ('c_{3}', 'm_{13}', 'm_{5}'), ('c_{3}', 'm_{8}', 'm_{5}'), ('m_{13}', 'c_{13}', 'm_{5}'), ('c_{3}', 'c_{13}', 'm_{5}'), ('c_{7}', 'c_{14}', 'm_{10}'), ('m_{11}', 'c_{14}', 'm_{10}'), ('c_{7}', 'm_{8}', 'm_{10}'), ('m_{8}', 'c_{14}', 'm_{10}'), ('c_{7}', 'm_{13}', 'm_{10}'), ('m_{13}', 'c_{14}', 'm_{10}'), ('s_{10}', 'v_{11}', 'm_{10}'), ('c_{7}', 'c_{14}', 'm_{5}'), ('m_{11}', 'c_{14}', 'm_{5}'), ('c_{7}', 'm_{8}', 'm_{5}'), ('m_{8}', 'c_{14}', 'm_{5}'), ('c_{7}', 'm_{13}', 'm_{5}'), ('m_{13}', 'c_{14}', 'm_{5}'), ('m_{11}', 'c_{7}', 'm_{5}'), ('s_{10}', 'v_{11}', 'm_{5}'), ('c_{3}', 'm_{10}', 'm_{1}'), ('m_{11}', 'c_{3}', 'm_{1}'), ('m_{11}', 'c_{4}', 'm_{1}'), ('c_{4}', 'm_{10}', 'm_{1}'), ('t_{1}', 'v_{5}', 'm_{1}'), ('c_{3}', 'm_{10}', 'm_{3}'), ('m_{11}', 'c_{3}', 'm_{3}'), ('m_{11}', 'c_{4}', 'm_{3}'), ('c_{4}', 'm_{10}', 'm_{3}'), ('t_{1}', 'v_{5}', 'm_{3}'), ('c_{3}', 'm_{10}', 'm_{12}'), ('m_{11}', 'c_{3}', 'm_{12}'), ('c_{4}', 'm_{10}', 'm_{12}'), ('m_{4}', 'c_{4}', 'm_{1}'), ('m_{4}', 'c_{3}', 'm_{1}'), ('t_{2}', 'v_{5}', 'm_{1}'), ('c_{3}', 'm_{5}', 'm_{1}'), ('c_{4}', 'm_{5}', 'm_{1}'), ('m_{4}', 'c_{4}', 'm_{3}'), ('m_{4}', 'c_{3}', 'm_{3}'), ('t_{2}', 'v_{5}', 'm_{3}'), ('c_{3}', 'm_{5}', 'm_{3}'), ('c_{4}', 'm_{5}', 'm_{3}'), ('m_{4}', 'c_{3}', 'm_{12}'), ('c_{3}', 'm_{5}', 'm_{12}'), ('c_{4}', 'm_{5}', 'm_{12}'), ('m_{11}', 'c_{8}', 'm_{1}'), ('c_{8}', 'm_{10}', 'm_{1}'), ('t_{3}', 'v_{5}', 'm_{1}'), ('m_{11}', 'c_{7}', 'm_{1}'), ('c_{7}', 'm_{10}', 'm_{1}'), ('m_{11}', 'c_{8}', 'm_{3}'), ('c_{8}', 'm_{10}', 'm_{3}'), ('t_{3}', 'v_{5}', 'm_{3}'), ('m_{11}', 'c_{7}', 'm_{3}'), ('c_{7}', 'm_{10}', 'm_{3}'), ('c_{8}', 'm_{10}', 'm_{12}'), ('m_{11}', 'c_{7}', 'm_{12}'), ('c_{7}', 'm_{10}', 'm_{12}'), ('m_{4}', 'c_{7}', 'm_{1}'), ('t_{4}', 'v_{5}', 'm_{1}'), ('c_{8}', 'm_{5}', 'm_{1}'), ('c_{7}', 'm_{5}', 'm_{1}'), ('m_{4}', 'c_{8}', 'm_{1}'), ('m_{4}', 'c_{7}', 'm_{3}'), ('t_{4}', 'v_{5}', 'm_{3}'), ('c_{8}', 'm_{5}', 'm_{3}'), ('c_{7}', 'm_{5}', 'm_{3}'), ('m_{4}', 'c_{8}', 'm_{3}'), ('m_{4}', 'c_{7}', 'm_{12}'), ('c_{8}', 'm_{5}', 'm_{12}'), ('c_{7}', 'm_{5}', 'm_{12}'), ('c_{3}', 'c_{4}', 'm_{10}'), ('m_{11}', 'c_{3}', 'c_{4}'), ('c_{3}', 'c_{4}', 'm_{5}'), ('m_{4}', 'c_{4}', 'm_{5}'), ('m_{4}', 'c_{3}', 'm_{5}'), ('m_{4}', 'c_{3}', 'c_{4}'), ('c_{7}', 'c_{8}', 'm_{10}'), ('m_{11}', 'c_{7}', 'c_{8}'), ('c_{7}', 'c_{8}', 'm_{5}'), ('m_{4}', 'c_{8}', 'm_{5}'), ('m_{4}', 'c_{7}', 'm_{5}'), ('m_{4}', 'c_{7}', 'c_{8}')], 'h1_0': [('m_{11}', 'm_{4}', 'v_{1}'), ('m_{4}', 'm_{4}', 'v_{1}'), ('m_{11}', 'v_{1}', 'm_{4}'), ('m_{11}', 'm_{4}', 'v_{2}'), ('m_{4}', 'v_{1}', 'm_{4}'), ('m_{4}', 'm_{4}', 'v_{2}'), ('m_{11}', 'v_{2}', 'm_{4}'), ('m_{4}', 'v_{2}', 'm_{4}')], 'h1_1': [('v_{1}', 'c_{3}', 'm_{4}'), ('v_{1}', 'c_{3}', 'c_{3}'), ('v_{1}', 'c_{7}', 'm_{4}'), ('v_{1}', 'c_{7}', 'c_{3}'), ('m_{4}', 'c_{3}', 'v_{1}'), ('m_{4}', 'c_{7}', 'v_{1}'), ('c_{3}', 'm_{4}', 'v_{1}'), ('c_{3}', 'c_{3}', 'v_{1}'), ('c_{7}', 'm_{4}', 'v_{1}'), ('c_{7}', 'c_{3}', 'v_{1}'), ('m_{4}', 'c_{3}', 'v_{3}'), ('m_{4}', 'c_{7}', 'v_{3}'), ('c_{3}', 'v_{1}', 'm_{4}'), ('c_{3}', 'm_{4}', 'v_{2}'), ('c_{3}', 'v_{2}', 'c_{3}'), ('c_{3}', 'c_{3}', 'v_{3}'), ('c_{7}', 'v_{1}', 'm_{4}'), ('c_{7}', 'm_{4}', 'v_{2}'), ('c_{7}', 'v_{2}', 'c_{3}'), ('c_{7}', 'c_{3}', 'v_{3}'), ('v_{2}', 'c_{3}', 'm_{4}'), ('c_{3}', 'v_{3}', 'm_{4}'), ('v_{2}', 'c_{3}', 'c_{3}'), ('c_{3}', 'v_{3}', 'c_{3}'), ('c_{7}', 'v_{3}', 'm_{4}'), ('v_{2}', 'c_{7}', 'm_{4}'), ('c_{7}', 'v_{3}', 'c_{3}'), ('v_{2}', 'c_{7}', 'c_{3}')], 'h1_2': [('v_{1}', 'm_{2}', 'm_{6}'), ('v_{1}', 'm_{2}', 'm_{9}'), ('v_{1}', 'c_{3}', 'm_{6}'), ('v_{1}', 'c_{3}', 'm_{9}'), ('v_{1}', 'm_{6}', 'm_{2}'), ('v_{1}', 'm_{6}', 'm_{4}'), ('v_{1}', 'm_{6}', 'm_{6}'), ('v_{1}', 'm_{6}', 'c_{3}'), ('v_{1}', 'm_{9}', 'm_{2}'), ('v_{1}', 'm_{9}', 'm_{4}'), ('v_{1}', 'm_{9}', 'm_{6}'), ('v_{1}', 'm_{9}', 'c_{3}'), ('m_{2}', 'm_{6}', 'v_{1}'), ('m_{2}', 'm_{9}', 'v_{1}'), ('m_{4}', 'm_{6}', 'v_{1}'), ('m_{4}', 'm_{9}', 'v_{1}'), ('c_{3}', 'm_{6}', 'v_{1}'), ('c_{3}', 'm_{9}', 'v_{1}'), ('m_{6}', 'm_{2}', 'v_{1}'), ('m_{6}', 'm_{4}', 'v_{1}'), ('m_{6}', 'm_{6}', 'v_{1}'), ('m_{6}', 'c_{3}', 'v_{1}'), ('m_{9}', 'm_{2}', 'v_{1}'), ('m_{9}', 'm_{4}', 'v_{1}'), ('m_{9}', 'm_{6}', 'v_{1}'), ('m_{9}', 'c_{3}', 'v_{1}'), ('m_{2}', 'm_{6}', 'v_{7}'), ('m_{2}', 'm_{9}', 'v_{7}'), ('m_{4}', 'm_{6}', 'v_{7}'), ('m_{4}', 'v_{6}', 'm_{6}'), ('m_{4}', 'm_{9}', 'v_{7}'), ('m_{4}', 'v_{6}', 'm_{9}'), ('c_{3}', 'm_{6}', 'v_{7}'), ('c_{3}', 'v_{6}', 'm_{6}'), ('c_{3}', 'm_{9}', 'v_{7}'), ('c_{3}', 'v_{6}', 'm_{9}'), ('m_{6}', 'v_{3}', 'm_{2}'), ('m_{6}', 'm_{2}', 'v_{6}'), ('m_{6}', 'v_{1}', 'm_{4}'), ('m_{6}', 'm_{4}', 'v_{2}'), ('m_{6}', 'm_{6}', 'v_{7}'), ('m_{6}', 'v_{6}', 'm_{6}'), ('m_{6}', 'v_{2}', 'c_{3}'), ('m_{6}', 'c_{3}', 'v_{3}'), ('m_{9}', 'v_{3}', 'm_{2}'), ('m_{9}', 'm_{2}', 'v_{6}'), ('m_{9}', 'v_{1}', 'm_{4}'), ('m_{9}', 'm_{4}', 'v_{2}'), ('m_{9}', 'm_{6}', 'v_{7}'), ('m_{9}', 'v_{6}', 'm_{6}'), ('m_{9}', 'v_{2}', 'c_{3}'), ('m_{9}', 'c_{3}', 'v_{3}'), ('v_{3}', 'm_{2}', 'm_{6}'), ('v_{3}', 'm_{2}', 'm_{9}'), ('m_{4}', 'v_{2}', 'm_{6}'), ('m_{4}', 'v_{2}', 'm_{9}'), ('v_{2}', 'c_{3}', 'm_{6}'), ('c_{3}', 'v_{3}', 'm_{6}'), ('v_{2}', 'c_{3}', 'm_{9}'), ('c_{3}', 'v_{3}', 'm_{9}'), ('m_{6}', 'v_{7}', 'm_{2}'), ('v_{6}', 'm_{6}', 'm_{2}'), ('m_{6}', 'v_{7}', 'm_{4}'), ('v_{6}', 'm_{6}', 'm_{4}'), ('m_{6}', 'v_{7}', 'm_{6}'), ('v_{6}', 'm_{6}', 'm_{6}'), ('m_{6}', 'v_{7}', 'c_{3}'), ('v_{6}', 'm_{6}', 'c_{3}'), ('m_{9}', 'v_{7}', 'm_{2}'), ('v_{6}', 'm_{9}', 'm_{2}'), ('m_{9}', 'v_{7}', 'm_{4}'), ('v_{6}', 'm_{9}', 'm_{4}'), ('m_{9}', 'v_{7}', 'm_{6}'), ('v_{6}', 'm_{9}', 'm_{6}'), ('m_{9}', 'v_{7}', 'c_{3}'), ('v_{6}', 'm_{9}', 'c_{3}')]}
factored_phi_1 = {k: factorize(v) for k, v in BR_phi_1.items() if v}
print "\n\nBorromean Rings (phi_1)"
print "phi_1 (factored) =", factored_phi_1
if __name__ == '__main__':
main()