-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathd16.py
More file actions
34 lines (29 loc) · 1.32 KB
/
d16.py
File metadata and controls
34 lines (29 loc) · 1.32 KB
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
from groups import AbstractGroup
if __name__ == "__main__":
group = AbstractGroup() # default group
# Enumerate all elements
elements = group.enumerate()
print(f"Listing elements ({len(elements)})")
for each_elm in elements:
print(f"{group.format(each_elm, latex=True)} has order {group.order(each_elm)}")
print("Order of the entire group:", len(elements))
# Enumerate subgroups
subgroups = group.enumerate_subgroups()
print("\nEnumerating subgroups:\n")
for each_subgroup in subgroups:
for each_elm in each_subgroup.enumerate():
print(group.format(each_elm, latex=True), end=", ")
print(f"Order: {len(each_subgroup.elements)}\n")
# Enumerating normal subgroups
print("\nEnumerating normal subgroups:\n")
for each_subgroup in subgroups:
if group.is_normal_subgroup(each_subgroup):
for each_elm in each_subgroup.enumerate():
print(group.format(each_elm, latex=True), end=", ")
print(f"Order: {len(each_subgroup.elements)}\n")
# Enumerating conjugacy classes
print("\nEnumerating conjugacy classes:\n")
for each_class in group.enumerate_conjugacy_classes():
for each_elm in each_class:
print(group.format(each_elm, latex=True), end=", ")
print(f"Size: {len(each_class)}\n")