Finite Group Multipication Table

The main Axiom/FriCAS code for working with groups is PermutationGroup, this is good for working with large groups, however I wanted a complimentary domain defined in terms of the Cayley table which can represent groups and semigroups, support cosets and so on.

PermutationGroup is derived from SetCategory rather than group because of the way that it uses Permutation as elements.

existing axiom groups

What I would like to do is add additional group related domains defined by a group table:

axiom proposed groups

Example

This is how I am using this code to add to the capability of the existing domains (for more explanation see this page):

d1 := dihedralGroup(1) 
 <(1 2)> 
                                                  Type: PermutationGroup(Integer) 
 toTable()$toFiniteGroup(d1,1) 
      
i a
a i
Type: Table(2) permutationRepresentation(d1,2)
[
0 1
1 0
]
Type: List(Matrix(Integer)) d2 := dihedralGroup(2) <(1 2), (3 4)> Type: PermutationGroup(Integer) toTable()$toFiniteGroup(d2,1)
i a b ab
a i ab b
b ab i a
ab b a i
Type: Table(4) permutationRepresentation(d2,2)
[
0 1
1 0
,
1 0
0 1
]
Type: List(Matrix(Integer)) d3 := dihedralGroup(3) <(1 2 3),(1 3) > Type: PermutationGroup(Integer) toTable()$toFiniteGroup(d3,1)
i a b aa ab ba
a aa ab i ba b
b ba i ab aa a
aa i ba a b ab
ab b a ba i aa
ba ab aa b a i
Type: Table(6) permutationRepresentation(d3,3)
[
0 0 1
1 0 0
0 1 0
,
0 0 1
0 1 0
1 0 0
]
Type: List(Matrix(Integer)) d4 := dihedralGroup(4) < (1 2 3 4 ), (1 4)(2 3)> Type: PermutationGroup(Integer) toTable()$toFiniteGroup(d4,1)
i a b aa ab ba aaa aab
a aa ab aaa aab b i ba
b ba i aab aaa a ab aa
aa aaa aab i ba ab a b
ab b a ba i aa aab aaa
ba aab aaa ab aa i b a
aaa i ba a b aab aa ab
aab ab aa b a aaa ba i
Type: Table(8) permutationRepresentation(d4,4)
[
0 0 0 1
1 0 0 0
0 1 0 0
0 0 1 0
,
0 0 0 1
0 0 1 0
0 1 0 0
1 0 0 0
]
Type: List(Matrix(Integer)) d5 := dihedralGroup(5) <(1 2 3 4 5) , ( 1 5) (2 4 )> Type: PermutationGroup(Integer) toTable()$toFiniteGroup(d5,1)
i a b aa ab ba aaa aab baa bab
a aa ab aaa aab b bab baa ba i
b ba i baa bab a aab aaa aa ab
aa aaa aab bab baa ab i ba b a
ab b a ba i aa baa bab aaa aab
ba baa bab aab aaa i ab aa a b
aaa bab baa i ba aab a b ab aa
aab ab aa b a aaa ba i bab baa
baa aab aaa ab aa bab b a i ba
bab i ba a b baa aa ab aab aaa
Type: Table(10) permutationRepresentation(d5,5)
[
0 0 0 0 1
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
,
0 0 0 0 1
0 0 0 1 0
0 0 1 0 0
0 1 0 0 0
1 0 0 0 0
]
Type: List(Matrix(Integer)) d6 := dihedralGroup(6) < (1 2 3 4 5 6), (1 6 ) (2 5) (3 4 )> Type: PermutationGroup(Integer) toTable()$toFiniteGroup(d6,1)
i a b aa ab ba aaa aab baa bab aaaa aaab
a aa ab aaa aab b aaaa aaab ba i bab baa
b ba i baa bab a aaab aaaa aa ab aab aaa
aa aaa aab aaaa aaab ab bab baa b a i ba
ab b a ba i aa baa bab aaa aab aaab aaaa
ba baa bab aaab aaaa i aab aaa a b ab aa
aaa aaaa aaab bab baa aab i ba ab aa a b
aab ab aa b a aaa ba i aaaa aaab baa bab
baa aaab aaaa aab aaa bab ab aa i ba b a
bab i ba a b baa aa ab aaab aaaa aaa aab
aaaa bab baa i ba aaab a b aab aaa aa ab
aaab aab aaa ab aa aaaa b a bab baa ba i
Type: Table(12) permutationRepresentation(d6,6)
[
0 0 0 0 0 1
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
,
0 0 0 0 0 1
0 0 0 0 1 0
0 0 0 1 0 0
0 0 1 0 0 0
0 1 0 0 0 0
1 0 0 0 0 0
]
Type: List(Matrix(Integer)) (19) ->

Discussion

See this thread on FriCAS forum


metadata block
see also:
Correspondence about this page

This site may have errors. Don't use for critical systems.

Copyright (c) 1998-2023 Martin John Baker - All rights reserved - privacy policy.