## More maths - closed binary operations on small sets

Site index : Home : Me : Food : Lab : Links : Maths : More maths : Rants : Soekris

#### (Anti)associativity, (anti)commutativity and isomorphism in closed binary operations on small sets

##### NB - work in progress! Much editing remains to be done.

If T is the set of all possible closed binary operations on a set S, |S|=n, and A, B, C, D are subsets of T such that A contains those binary operations which are associative ((x*y)*z = x*(y*z) for all x, y, z), B those which are antiassociative ((x*y)*z != x*(y*z) for all x, y, z), C those which are commutative (x*y = y*x for all x != y) and D those which are anticommutative (x*y != y*x for all x != y ), then the various combinations of intersections of the four sets define 24=16 possible classes which together contain everything in T (i.e. a partition of T). We say { S , * } and { S , o } are isomorphic if there exists a bijection alpha : S -> S such that ( a * b )alpha = (a)alpha o (b)alpha

 Number of operations by property Number of isomorphisms by property See also Set size 1 2 3 4 n Set size 1 2 3 4 n Partitions on isomorphism classes by class size and various properties of the operations All ops 1 16 19,683 4,294,967,296 A002489 = nn2 All ops 1 10 3,330 178,981,952 A001329 A079171 Partition by associativity !A 0 8 19,570 4,294,963,804 A079172 !A 0 5 3,306 178,981,764 A079173 A079174 A 1 8 113 3,492 A023814 A 1 5 24 188 A027851 A079175 Partition by antiassociativity !B 1 14 19,631 4,294,545,736 A079176 !B 0 8 3,320 178,964,172 A079177 A079178 B 1 2 52 421,560 A079179 B 1 2 10 17,780 A079180 A079181 Partition by commutativity !C 0 8 18,954 4,293,918,720 A079182 !C 0 6 3,201 178,937,984 A079183 A079184 C 1 8 729 1,048,576 A023813 = n(n2+n)/2 C 1 4 129 43,968 A001425 A079185 Partition by anticommutativity !D 0 8 13,851 3,530,555,392 A079186 !D 0 4 2,334 147,125,304 A079187 A079188 D 1 8 5,832 764,411,904 A079189 = nn.(n2-n)(n2-n)/2 D 1 6 996 31,856,648 A079190 A079191 (entries for isomorphisms for anticommutativity for n=4 corrected from 147,125,203 and 31,856,749 by Christian G. Bower - thank you!) Partition by associativity and antiassociativity !A!B 0 6 19518 4294542244 (#273) !A!B 0 3 3296 178963984 274 (#275) !A B 0 2 52 421560 (#238) !A B 0 2 10 17780 239 (#206) A!B 0 8 113 3492 (#276) A!B 0 5 24 188 277 (#278) A B 1 0 0 0 A B 1 0 0 0 o Partition by associativity and commutativity !A!C 0 6 18,904 4,293,916,368 A079192 !A!C 0 4 3,189 178,937,854 A079193 A079194 !A C 0 2 666 1,047,436 A079195 !A C 0 1 117 43,910 A079196 A079197 A!C 0 2 50 2,352 A079198 A!C 0 2 12 130 A079199 A079200 A C 1 6 63 1,140 A023815 A C 1 3 12 58 A001426 A079201 Partition by associativity and anticommutativity !A!D 0 2 13740 3530551908 (#279) !A!D 0 1 2312 147124119 280 (#281) !A D 0 6 5830 764411896 (#252) !A D 0 4 994 31857645 253 (#254) A!D 0 6 111 3484 (#258) A!D 0 3 22 185 259 (#260) A D 1 2 2 8 (#261) A D 1 2 2 3 262 (#263) Partition by antiassociativity and commutativity !B!C 0 6 18902 4293497160 (#282) !B!C 0 4 3191 178920204 283 (#284) !B C 0 8 729 1048576 (#270) !B C 0 4 129 43968 271 (#272) B!C 0 2 52 421560 (#238) B!C 0 2 10 17780 239 (#206) B C 1 0 0 0 B C 1 0 0 0 o Partition by antiassociativity and anticommutativity !B!D 0 8 13803 3530241832 (#285) !B!D 0 4 2326 147111166 286 (#287) !B D 0 6 5828 764303904 (#267) !B D 0 4 994 31853006 268 (#269) B!D 0 0 48 313560 (#234) B!D 0 0 8 13138 235 (#204) B D 1 2 4 108000 (#288) B D 1 2 2 4642 289 (#290) Partition by commutativity and anticommutativity !C!D 0 0 13122 3529506816 (#291) !C!D 0 0 2205 147080336 292 (#293) !C D 0 8 5832 764411904 (#294) !C D 0 6 996 31857648 295 (#296) C!D 0 8 729 1048576 (#270) C!D 0 4 129 43968 271 (#272) C D 1 0 0 0 C D 1 0 0 0 o Partition by associativity, commutativity and antiassociativity !A!C!B 0 4 18852 4293494808 (#246) !A!C!B 0 2 3179 178920074 247 (#248) !A!C B 0 2 52 421560 (#238) !A!C B 0 2 10 17780 239 (#206) !A C!B 0 2 666 1047436 (#195) !A C!B 0 1 117 43910 196 (#197) A!C!B 0 2 50 2352 (#198) A!C!B 0 2 12 130 199 (#200) A C!B 0 6 63 1140 (#244) A C!B 0 3 12 58 245 (#209) A C B 1 0 0 0 A C B 1 0 0 0 o Partition by associativity, commutativity and anticommutativity !A!C!D 0 0 13074 3529504472 (#249) !A!C!D 0 0 2195 147080209 250 (#251) !A!C D 0 6 5830 764411896 (#252) !A!C D 0 4 994 31857645 253 (#254) !A C!D 0 2 666 1047436 (#195) !A C!D 0 1 117 43910 196 (#197) A!C!D 0 0 48 2344 (#240) A!C!D 0 0 10 127 241 (#207) A!C D 0 2 2 8 (#242) A!C D 0 2 2 3 243 (#208) A C!D 0 6 63 1140 (#244) A C!D 0 3 12 58 245 (#209) A C D 1 0 0 0 A C D 1 0 0 0 o Partition by associativity, antiassociativity and anticommutativity !A!B!D 0 2 13692 3530238348 (#255) !A!B!D 0 1 2304 147110981 256 (#257) !A!B D 0 4 5826 764303896 (#232) !A!B D 0 2 992 31853003 233 (#203) !A B!D 0 0 48 313560 (#234) !A B!D 0 0 8 13138 235 (#204) !A B D 0 2 4 108000 (#236) !A B D 0 2 2 4642 237 (#205) A!B!D 0 6 111 3484 (#258) A!B!D 0 3 22 185 259 (#260) A!B D 0 2 2 8 (#242) A!B D 0 2 2 3 243 (#208) A B D 1 0 0 0 A B D 1 0 0 0 o Partition by commutativity, antiassociativity and anticommutativity !C!B!D 0 0 13074 3529193256 (#264) !C!B!D 0 0 2197 147067198 265 (#266) !C!B D 0 6 5828 764303904 (#267) !C!B D 0 4 994 31853006 268 (#269) !C B!D 0 0 48 313560 (#234) !C B!D 0 0 8 13138 235 (#204) !C B D 0 2 4 108000 (#236) !C B D 0 2 2 4642 237 (#205) C!B!D 0 8 729 1048576 (#270) C!B!D 0 4 129 43968 271 (#272) C B D 1 0 0 0 C B D 1 0 0 0 o Partition by associativity, commutativity, antiassociativity and anticommutativity !A!C!B!D 0 0 13,026 3,529,190,912 A079230 !A!C!B!D 0 0 2,187 147,067,071 A079231 A079202 !A!C!B D 0 4 5,826 764,303,896 A079232 !A!C!B D 0 2 992 31,853,003 A079233 A079203 !A!C B!D 0 0 48 313,560 A079234 !A!C B!D 0 0 8 13,138 A079235 A079204 !A!C B D 0 2 4 108,000 A079236 !A!C B D 0 2 2 4,642 A079237 A079205 !A C!B!D 0 2 666 1,047,436 (#195) !A C!B!D 0 1 117 43,910 (#196) (#197) A!C!B!D 0 0 48 2,344 A079240 A!C!B!D 0 0 10 127 A079241 A079207 A!C!B D 0 2 2 8 A079242 A!C!B D 0 2 2 3 A079243 A079208 A C!B!D 0 6 63 1,140 A079244 A C!B!D 0 3 12 58 A079245 A079209 A C B D 1 0 0 0 A063524 A C B D 1 0 0 0 A063524 A063524

The order of each isomorphism is a factor of the factorial of the order of the set on which the binary operation was based. This is because the bijective transformations form a group, and the order, or cyclic period, of each transformation is always a factor of the size of the group when the group contains all possible bijections on the set on which the group is based. A number of sequences can be found by investigating the interaction of the properties of the binary operations with the size of the isomorphism classes containing them. Full results for such an investigation for operations on sets of up to size 4 are presented below; I hope to make some progress performing a similar investigation for sets of size 5.

 Partitions on isomorphism classes by class size and various properties of the operations Set size 1 2 3 4 Class size 1 1 2 1 2 3 6 1 2 3 4 6 8 12 24 A079210 Partition by class size All ops 1 4 6 3 12 78 3,237 2 1 14 30 275 495 48,810 178,932,325 A079171 Partition by class size and associativity !A 0 2 3 1 12 71 3,222 0 1 14 23 270 495 48,748 178,932,213 A079174 A 1 2 3 2 0 7 15 2 0 0 7 5 0 62 112 A079175 Partition by class size and antiassociativity !B 0 2 6 3 10 78 3,229 2 1 12 30 246 495 48,427 178,914,959 A079178 B 1 2 0 0 2 0 8 0 0 2 0 29 0 383 17,366 A079181 Partition by class size and commutativity !C 0 4 2 2 8 70 3,121 2 1 14 22 275 467 48,306 178,888,897 A079184 C 1 0 4 1 4 8 116 0 0 0 8 0 28 504 43,428 A079185 Partition by class size and anticommutativity !D 0 0 4 1 4 44 2,285 0 0 0 24 64 212 35,240 147,088,764 A079188 D 1 4 2 2 8 34 952 2 1 14 6 211 283 13,570 31,843,561 A079191 Partition by class size, associativity and antiassociativity !A!B 0 0 3 1 10 71 3214 0 1 12 23 241 495 48365 178914847 (#275) !A B 0 2 0 0 2 0 8 0 0 2 0 29 0 383 17366 (#206) A!B 0 2 3 2 0 7 15 2 0 0 7 5 0 62 112 (#278) A B 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (#) Partition by class size, associativity and commutativity !A!C 0 2 2 0 8 66 3,115 0 1 14 18 270 467 48,260 178,888,824 A079194 !A C 0 0 1 1 4 5 107 0 0 0 5 0 28 488 43,389 A079197 A!C 0 2 0 2 0 4 6 2 0 0 4 5 0 46 73 A079200 A C 1 0 3 0 0 3 9 0 0 0 3 0 0 16 39 A079201 Partition by class size, associativity and anticommutativity !A!D 0 0 1 1 4 37 2270 0 0 0 17 60 212 35178 147088652 (#281) !A D 0 2 2 0 8 34 952 0 1 14 6 210 283 13570 31843561 (#254) A!D 0 0 3 0 0 7 15 0 0 0 7 4 0 62 112 (#260) A D 1 2 0 2 0 0 0 2 0 0 0 1 0 0 0 (#263) Partition by class size, antiassociativity and commutativity !B!C 0 2 2 2 6 70 3113 2 1 12 22 246 467 47923 178871531 (#284) !B C 0 0 4 1 4 8 116 0 0 0 8 0 28 504 43428 (#272) B!C 0 2 0 0 2 0 8 0 0 2 0 29 0 383 17366 (#206) B C 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (#) Partition by class size, antiassociativity and anticommutativity !B!D 0 0 4 1 4 44 2277 0 0 0 24 64 212 35094 147075772 (#287) !B D 0 2 2 2 6 34 952 2 1 12 6 182 283 13333 31839187 (#269) B!D 0 0 0 0 0 0 8 0 0 0 0 0 0 146 12992 (#204) B D 1 2 0 0 2 0 0 0 0 2 0 29 0 237 4374 (#290) Partition by class size, commutativity and anticommutativity !C!D 0 0 0 0 0 36 2169 0 0 0 16 64 184 34736 147045336 (#293) !C D 0 4 2 2 8 34 952 2 1 14 6 211 283 13570 31843561 (#296) C!D 0 0 4 1 4 8 116 0 0 0 8 0 28 504 43428 (#272) C D 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (#) Partition by class size, associativity, commutativity and antiassociativity !A!C!B 0 0 2 0 6 66 3107 0 1 12 18 241 467 47877 178871458 (#248) !A!C B 0 2 0 0 2 0 8 0 0 2 0 29 0 383 17366 (#206) !A C!B 0 0 1 1 4 5 107 0 0 0 5 0 28 488 43389 (#197) A!C!B 0 2 0 2 0 4 6 2 0 0 4 5 0 46 73 (#200) A C!B 0 0 3 0 0 3 9 0 0 0 3 0 0 16 39 (#209) A C B 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (#) Partition by class size, associativity, commutativity and anticommutativity !A!C!D 0 0 0 0 0 32 2163 0 0 0 12 60 184 34690 147045263 (#251) !A!C D 0 2 2 0 8 34 952 0 1 14 6 210 283 13570 31843561 (#254) !A C!D 0 0 1 1 4 5 107 0 0 0 5 0 28 488 43389 (#197) A!C!D 0 0 0 0 0 4 6 0 0 0 4 4 0 46 73 (#207) A!C D 0 2 0 2 0 0 0 2 0 0 0 1 0 0 0 (#208) A C!D 0 0 3 0 0 3 9 0 0 0 3 0 0 16 39 (#209) A C D 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (#) Partition by class size, associativity, antiassociativity and anticommutativity !A!B!D 0 0 1 1 4 37 2262 0 0 0 17 60 212 35032 147075660 (#257) !A!B D 0 0 2 0 6 34 952 0 1 12 6 181 283 13333 31839187 (#203) !A B!D 0 0 0 0 0 0 8 0 0 0 0 0 0 146 12992 (#204) !A B D 0 2 0 0 2 0 0 0 0 2 0 29 0 237 4374 (#205) A!B!D 0 0 3 0 0 7 15 0 0 0 7 4 0 62 112 (#260) A!B D 0 2 0 2 0 0 0 2 0 0 0 1 0 0 0 (#208) A B D 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (#) Partition by class size, commutativity, antiassociativity and anticommutativity !C!B!D 0 0 0 0 0 36 2161 0 0 0 16 64 184 34590 147032344 (#266) !C!B D 0 2 2 2 6 34 952 2 1 12 6 182 283 13333 31839187 (#269) !C B!D 0 0 0 0 0 0 8 0 0 0 0 0 0 146 12992 (#204) !C B D 0 2 0 0 2 0 0 0 0 2 0 29 0 237 4374 (#205) C!B!D 0 0 4 1 4 8 116 0 0 0 8 0 28 504 43428 (#272) C B D 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 (#) Partition by class size, associativity, commutativity, antiassociativity and anticommutativity (rows not shown are all zero) !A!C!B!D 0 0 0 0 0 32 2,155 0 0 0 12 60 184 34,544 147,032,271 A079202 !A!C!B D 0 0 2 0 6 34 952 0 1 12 6 181 283 13,333 31,839,187 A079203 !A!C B!D 0 0 0 0 0 0 8 0 0 0 0 0 0 146 12,992 A079204 !A!C B D 0 2 0 0 2 0 0 0 0 2 0 29 0 237 4,374 A079205 !A C!B!D 0 0 1 1 4 5 107 0 0 0 5 0 28 488 43,389 (#197) A!C!B!D 0 0 0 0 0 4 6 0 0 0 4 4 0 46 73 A079207 A!C!B D 0 2 0 2 0 0 0 2 0 0 0 1 0 0 0 A079208 A C!B!D 0 0 3 0 0 3 9 0 0 0 3 0 0 16 39 A079209 A C B D 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Below you will find two sample runs of my program to analyse these properties of binary operations, which is written in C. The new program is also available here.

For a given set of order n, the program takes the approach of cycling through all the binary operations possible on a set of that size; it does this by effectively treating the binary operation table as a number in base n, n2 digits in length. It counts up from 0 until the counting process generates a carry out of the most significant digit, and then stops, because every possible combination has occurred (like a car odometer going "round the clock").

For each combination that occurs, the program looks at the operation table corresponding to this n2-digit number, and determines whether the binary operation represented thereby is associative, commutative, antiassociative, anticommutative, some combination of these, or most likely none. Whichever is the case, it keeps tally of this and proceeds to the next combination to evaluate that in the same way.

Depending what options are set in the program, it may record some or all of these binary operation tables as it runs for later analysis to determine whether any of these tables are isomorphic to each other. Whatever the size of the list that it keeps (for small n, 2 or 3, the program handles the whole set of tables well; for larger n (4), it cannot take the whole set, and records a subset for later analysis, typically only those tables which were identified as associative), it then proceeds to work through the list from start to finish, comparing each table to every possible bijective transformation of every other one to determine which tables are isomorphic to each other.

It works out what 'every possible bijective transformation' is by the simple method of working out all the possible functions from a set of size 'n' to itself, and determining which are bijective by checking whether they are invertible. Again, it keeps a list of these after working them out, to speed up the work of determining which binary operation tables are isomorphic to each other.

As it works through the list, it moves those tables which are isomorphic together, effectively sorting the list. This is what you see on the next page, where I show a sample output for n = 2 and 3. For each isomorphic class that it lists, it gives the characteristics T, A and C. T is the total number of tables (binary operations) in this isomorphic class; A is the number of these which are associative, and C is the number of these which are commutative. For every class output, A and C are either zero or equal to T, meaning that associativity and commutativity are both invariants for each isomorphic class. I cut this run short as the program will happily spew out many thousands of lines, covering hundreds of pages, and I think even the most hardened mathematician would be challenged to find any use for this!

Following this you will find a rather different run, where most of the program's output has been suppressed. In this case it covers n up to 4, and lists only those isomorphic classes containing the associative binary operations, with the same T, A and C figures. This output, while possibly not as 'pretty', is somewhat more useful for generating tables like the one above.

First sample run (n = 2, 3, verbose output, truncated):

```Investigating closed binary operations on set of order 2...
Counts for order 2: T=16, A=8, C=8, CA=6

Isomorphism class 1: T=2, A=2, C=2
0 0   1 1
0 0   1 1

Isomorphism class 2: T=2, A=0, C=0
0 1   1 1
0 0   0 1

Isomorphism class 3: T=2, A=0, C=0
0 0   1 0
1 0   1 1

Isomorphism class 4: T=2, A=2, C=2
0 1   1 0
1 0   0 1

Isomorphism class 5: T=2, A=2, C=2
0 0   0 1
0 1   1 1

Isomorphism class 6: T=1, A=1, C=0
0 1
0 1

Isomorphism class 7: T=1, A=0, C=0
1 1
0 0

Isomorphism class 8: T=1, A=1, C=0
0 0
1 1

Isomorphism class 9: T=1, A=0, C=0
1 0
1 0

Isomorphism class 10: T=2, A=0, C=2
1 0   1 1
0 0   1 0

Investigating closed binary operations on set of order 3...
Counts for order 3: T=19683, A=113, C=729, CA=63

Isomorphism class 1: T=3, A=3, C=3
0 0 0   1 1 1   2 2 2
0 0 0   1 1 1   2 2 2
0 0 0   1 1 1   2 2 2

Isomorphism class 2: T=6, A=0, C=0
0 1 0   0 0 2   1 1 1   1 1 1   2 2 2   2 2 2
0 0 0   0 0 0   0 1 1   1 1 2   2 2 2   2 2 2
0 0 0   0 0 0   1 1 1   1 1 1   2 1 2   0 2 2

Isomorphism class 3: T=6, A=0, C=0
0 0 1   1 1 1   1 1 1   0 2 0   2 2 2   2 2 2
0 0 0   1 1 0   2 1 1   0 0 0   2 2 2   2 2 2
0 0 0   1 1 1   1 1 1   0 0 0   2 0 2   1 2 2

Isomorphism class 4: T=3, A=0, C=0
0 2 1   1 1 1   2 2 2
0 0 0   2 1 0   2 2 2
0 0 0   1 1 1   1 0 2

Isomorphism class 5: T=6, A=0, C=0
1 1 0   2 0 2   2 2 2   1 1 1   1 1 1   2 2 2
0 0 0   0 0 0   2 2 2   0 0 1   1 2 2   2 2 2
0 0 0   0 0 0   0 2 0   1 1 1   1 1 1   2 1 1

Isomorphism class 6: T=6, A=0, C=0
0 2 2   1 1 1   0 1 1   1 1 1   2 2 2   2 2 2
0 0 0   0 1 0   0 0 0   2 1 2   2 2 2   2 2 2
0 0 0   1 1 1   0 0 0   1 1 1   0 0 2   1 1 2

Isomorphism class 7: T=6, A=0, C=6
0 1 0   0 0 2   1 0 1   1 1 1   2 2 2   2 2 0
1 0 0   0 0 0   0 1 1   1 1 2   2 2 1   2 2 2
0 0 0   2 0 0   1 1 1   1 2 1   2 1 2   0 2 2

Isomorphism class 8: T=6, A=0, C=0
0 0 1   0 2 0   1 0 1   1 1 1   2 2 0   2 2 2
1 0 0   0 0 0   1 1 0   2 1 1   2 2 2   2 2 1
0 0 0   2 0 0   1 1 1   1 2 1   2 0 2   1 2 2

Isomorphism class 9: T=6, A=0, C=0
0 2 1   0 2 1   1 0 1   1 1 1   2 2 2   2 2 0
1 0 0   0 0 0   2 1 0   2 1 0   2 2 1   2 2 2
0 0 0   2 0 0   1 1 1   1 2 1   1 0 2   1 0 2

Isomorphism class 10: T=6, A=0, C=0
0 1 2   0 1 2   1 0 1   1 1 1   2 2 2   2 2 0
1 0 0   0 0 0   0 1 2   0 1 2   2 2 1   2 2 2
0 0 0   2 0 0   1 1 1   1 2 1   0 1 2   0 1 2

Isomorphism class 11: T=6, A=0, C=0
0 0 0   0 0 0   1 1 1   1 2 1   2 2 2   2 2 1
2 0 0   0 0 0   1 1 1   1 1 1   2 2 0   2 2 2
0 0 0   1 0 0   1 0 1   1 1 1   2 2 2   2 2 2

Isomorphism class 12: T=6, A=0, C=6
0 2 0   0 0 1   1 1 1   1 2 1   2 2 2   2 2 1
2 0 0   0 0 0   1 1 0   2 1 1   2 2 0   2 2 2
0 0 0   1 0 0   1 0 1   1 1 1   2 0 2   1 2 2

Isomorphism class 13: T=6, A=0, C=0
0 1 1   0 2 2   1 1 1   1 2 1   2 2 1   2 2 2
2 0 0   0 0 0   2 1 2   0 1 0   2 2 2   2 2 0
0 0 0   1 0 0   1 0 1   1 1 1   0 0 2   1 1 2

Isomorphism class 14: T=6, A=0, C=0
0 0 2   0 1 0   1 1 1   1 2 1   2 2 1   2 2 2
2 0 0   0 0 0   0 1 1   1 1 2   2 2 2   2 2 0
0 0 0   1 0 0   1 0 1   1 1 1   2 1 2   0 2 2

Isomorphism class 15: T=6, A=0, C=0
0 2 2   0 1 1   1 1 1   1 2 1   2 2 2   2 2 1
2 0 0   0 0 0   0 1 0   2 1 2   2 2 0   2 2 2
0 0 0   1 0 0   1 0 1   1 1 1   0 0 2   1 1 2

Isomorphism class 16: T=6, A=0, C=0
0 1 0   0 1 1   0 0 2   1 1 1   2 2 2   0 2 2
0 1 0   0 1 1   0 0 0   1 1 2   2 1 2   2 2 2
0 0 0   1 1 1   0 0 2   1 1 2   2 1 2   0 2 2

Isomorphism class 17: T=6, A=0, C=0
0 0 1   0 1 1   0 2 0   0 2 2   1 1 1   2 2 2
0 1 0   1 1 0   0 0 0   2 2 2   2 1 1   2 1 2
0 0 0   1 1 1   0 0 2   2 0 2   1 1 2   1 2 2

Isomorphism class 18: T=6, A=0, C=0
0 2 1   0 1 1   0 2 1   2 2 2   0 2 2   1 1 1
0 1 0   2 1 0   0 0 0   2 1 2   2 2 2   2 1 0
0 0 0   1 1 1   0 0 2   1 0 2   1 0 2   1 1 2

Isomorphism class 19: T=6, A=0, C=0
0 1 2   0 1 1   0 1 2   2 2 2   0 2 2   1 1 1
0 1 0   0 1 2   0 0 0   2 1 2   2 2 2   0 1 2
0 0 0   1 1 1   0 0 2   0 1 2   0 1 2   1 1 2

Isomorphism class 20: T=6, A=0, C=0
0 0 0   0 0 1   0 0 0   1 1 1   2 2 2   0 2 0
1 1 0   1 1 1   0 0 0   1 1 1   2 1 1   2 2 2
0 0 0   1 1 1   2 0 2   1 2 2   2 2 2   2 2 2

Isomorphism class 21: T=6, A=0, C=0
0 2 0   0 0 1   0 0 1   2 2 2   1 1 1   0 2 0
1 1 0   2 1 1   0 0 0   2 1 1   1 1 0   2 2 2
0 0 0   1 1 1   2 0 2   2 0 2   1 2 2   1 2 2

Isomorphism class 22: T=6, A=0, C=0
0 1 1   0 0 1   0 2 0   0 2 2   2 2 2   1 1 1
1 1 0   0 1 0   2 2 2   0 0 0   2 1 1   2 1 2
0 0 0   1 1 1   0 0 2   2 0 2   1 1 2   1 2 2

Isomorphism class 23: T=6, A=0, C=0
0 0 2   0 0 1   0 1 0   0 2 0   2 2 2   1 1 1
1 1 0   1 1 2   0 0 0   2 2 2   2 1 1   0 1 1
0 0 0   1 1 1   2 0 2   2 1 2   0 2 2   1 2 2

Isomorphism class 24: T=6, A=0, C=0
0 2 2   0 0 1   2 2 2   0 1 1   0 2 0   1 1 1
1 1 0   2 1 2   2 1 1   0 0 0   2 2 2   0 1 0
0 0 0   1 1 1   0 0 2   2 0 2   1 1 2   1 2 2

Isomorphism class 25: T=6, A=0, C=0
0 1 0   0 2 1   0 0 2   1 1 1   2 2 2   0 2 1
2 1 0   0 1 1   0 0 0   1 1 2   2 1 0   2 2 2
0 0 0   1 1 1   1 0 2   1 0 2   2 1 2   0 2 2

Isomorphism class 26: T=6, A=0, C=0
0 0 1   0 2 1   0 2 0   1 1 1   0 2 1   2 2 2
2 1 0   1 1 0   0 0 0   2 1 1   2 2 2   2 1 0
0 0 0   1 1 1   1 0 2   1 0 2   2 0 2   1 2 2

Isomorphism class 27: T=6, A=0, C=0
0 2 1   0 2 1   0 2 1   1 1 1   2 2 2   0 2 1
2 1 0   2 1 0   0 0 0   2 1 0   2 1 0   2 2 2
0 0 0   1 1 1   1 0 2   1 0 2   1 0 2   1 0 2

Isomorphism class 28: T=6, A=0, C=0
0 1 2   0 2 1   0 1 2   1 1 1   2 2 2   0 2 1
2 1 0   0 1 2   0 0 0   0 1 2   2 1 0   2 2 2
0 0 0   1 1 1   1 0 2   1 0 2   0 1 2   0 1 2

Isomorphism class 29: T=6, A=6, C=6
0 0 0   1 1 1   0 0 0   2 1 1   2 2 2   1 2 2
0 2 0   1 1 1   0 0 0   1 1 1   2 0 2   2 2 2
0 0 0   1 1 0   0 0 1   1 1 1   2 2 2   2 2 2

Isomorphism class 30: T=6, A=0, C=0
0 2 0   1 1 1   0 0 1   2 1 1   2 2 2   1 2 2
0 2 0   1 1 0   0 0 0   2 1 1   2 0 2   2 2 2
0 0 0   1 1 0   0 0 1   1 1 1   2 0 2   1 2 2
```
(that enough? There are another 3300 isomorphism classes on binary operations on sets of order 3 if you're interested...)

Second sample run (n = 2, 3, 4, brief output, only isomorphic classes containing associative binary operations listed:

```Investigating closed binary operations on set of order 2...
Counts for order 2: T=16, A=8, C=8, CA=6

Isomorphism class 1: T=2, A=2, C=2
Isomorphism class 2: T=2, A=2, C=2
Isomorphism class 3: T=1, A=1, C=0
Isomorphism class 4: T=1, A=1, C=0
Isomorphism class 5: T=2, A=2, C=2

Investigating closed binary operations on set of order 3...
Counts for order 3: T=19683, A=113, C=729, CA=63

Isomorphism class 1: T=3, A=3, C=3
Isomorphism class 2: T=6, A=6, C=0
Isomorphism class 3: T=6, A=6, C=6
Isomorphism class 4: T=6, A=6, C=6
Isomorphism class 5: T=6, A=6, C=6
Isomorphism class 6: T=6, A=6, C=0
Isomorphism class 7: T=6, A=6, C=6
Isomorphism class 8: T=6, A=6, C=0
Isomorphism class 9: T=3, A=3, C=3
Isomorphism class 10: T=3, A=3, C=0
Isomorphism class 11: T=6, A=6, C=6
Isomorphism class 12: T=3, A=3, C=0
Isomorphism class 13: T=6, A=6, C=0
Isomorphism class 14: T=3, A=3, C=0
Isomorphism class 15: T=6, A=6, C=6
Isomorphism class 16: T=6, A=6, C=6
Isomorphism class 17: T=6, A=6, C=0
Isomorphism class 18: T=3, A=3, C=0
Isomorphism class 19: T=6, A=6, C=6
Isomorphism class 20: T=3, A=3, C=3
Isomorphism class 21: T=6, A=6, C=0
Isomorphism class 22: T=6, A=6, C=6
Isomorphism class 23: T=1, A=1, C=0
Isomorphism class 24: T=1, A=1, C=0

Investigating closed binary operations on set of order 4...
Counts for order 4: T=4294967296, A=3492, C=1048576, CA=1140

Isomorphism class 1: T=4, A=4, C=4
Isomorphism class 2: T=24, A=24, C=0
Isomorphism class 3: T=12, A=12, C=12
Isomorphism class 4: T=24, A=24, C=24
Isomorphism class 5: T=12, A=12, C=0
Isomorphism class 6: T=24, A=24, C=0
Isomorphism class 7: T=24, A=24, C=0
Isomorphism class 8: T=24, A=24, C=0
Isomorphism class 9: T=24, A=24, C=0
Isomorphism class 10: T=24, A=24, C=0
Isomorphism class 11: T=24, A=24, C=24
Isomorphism class 12: T=24, A=24, C=0
Isomorphism class 13: T=24, A=24, C=24
Isomorphism class 14: T=24, A=24, C=0
Isomorphism class 15: T=24, A=24, C=24
Isomorphism class 16: T=24, A=24, C=0
Isomorphism class 17: T=12, A=12, C=12
Isomorphism class 18: T=24, A=24, C=24
Isomorphism class 19: T=24, A=24, C=24
Isomorphism class 20: T=24, A=24, C=24
Isomorphism class 21: T=12, A=12, C=0
Isomorphism class 22: T=24, A=24, C=24
Isomorphism class 23: T=24, A=24, C=24
Isomorphism class 24: T=24, A=24, C=24
Isomorphism class 25: T=24, A=24, C=0
Isomorphism class 26: T=24, A=24, C=0
Isomorphism class 27: T=24, A=24, C=0
Isomorphism class 28: T=12, A=12, C=12
Isomorphism class 29: T=24, A=24, C=24
Isomorphism class 30: T=12, A=12, C=0
Isomorphism class 31: T=24, A=24, C=24
Isomorphism class 32: T=24, A=24, C=0
Isomorphism class 33: T=24, A=24, C=0
Isomorphism class 34: T=24, A=24, C=0
Isomorphism class 35: T=12, A=12, C=0
Isomorphism class 36: T=12, A=12, C=0
Isomorphism class 37: T=24, A=24, C=24
Isomorphism class 38: T=24, A=24, C=24
Isomorphism class 39: T=12, A=12, C=0
Isomorphism class 40: T=12, A=12, C=0
Isomorphism class 41: T=12, A=12, C=12
Isomorphism class 42: T=12, A=12, C=12
Isomorphism class 43: T=24, A=24, C=24
Isomorphism class 44: T=24, A=24, C=0
Isomorphism class 45: T=24, A=24, C=0
Isomorphism class 46: T=24, A=24, C=0
Isomorphism class 47: T=12, A=12, C=0
Isomorphism class 48: T=12, A=12, C=0
Isomorphism class 49: T=24, A=24, C=0
Isomorphism class 50: T=12, A=12, C=12
Isomorphism class 51: T=12, A=12, C=0
Isomorphism class 52: T=24, A=24, C=0
Isomorphism class 53: T=24, A=24, C=0
Isomorphism class 54: T=24, A=24, C=24
Isomorphism class 55: T=24, A=24, C=24
Isomorphism class 56: T=12, A=12, C=0
Isomorphism class 57: T=24, A=24, C=0
Isomorphism class 58: T=24, A=24, C=24
Isomorphism class 59: T=24, A=24, C=24
Isomorphism class 60: T=24, A=24, C=0
Isomorphism class 61: T=24, A=24, C=0
Isomorphism class 62: T=24, A=24, C=0
Isomorphism class 63: T=24, A=24, C=0
Isomorphism class 64: T=24, A=24, C=0
Isomorphism class 65: T=24, A=24, C=0
Isomorphism class 66: T=24, A=24, C=0
Isomorphism class 67: T=24, A=24, C=0
Isomorphism class 68: T=24, A=24, C=0
Isomorphism class 69: T=24, A=24, C=0
Isomorphism class 70: T=24, A=24, C=0
Isomorphism class 71: T=12, A=12, C=12
Isomorphism class 72: T=24, A=24, C=24
Isomorphism class 73: T=24, A=24, C=24
Isomorphism class 74: T=24, A=24, C=24
Isomorphism class 75: T=24, A=24, C=0
Isomorphism class 76: T=12, A=12, C=0
Isomorphism class 77: T=24, A=24, C=0
Isomorphism class 78: T=24, A=24, C=0
Isomorphism class 79: T=24, A=24, C=0
Isomorphism class 80: T=24, A=24, C=24
Isomorphism class 81: T=24, A=24, C=0
Isomorphism class 82: T=24, A=24, C=0
Isomorphism class 83: T=12, A=12, C=0
Isomorphism class 84: T=24, A=24, C=0
Isomorphism class 85: T=12, A=12, C=0
Isomorphism class 86: T=24, A=24, C=24
Isomorphism class 87: T=24, A=24, C=24
Isomorphism class 88: T=24, A=24, C=0
Isomorphism class 89: T=24, A=24, C=24
Isomorphism class 90: T=4, A=4, C=0
Isomorphism class 91: T=24, A=24, C=0
Isomorphism class 92: T=24, A=24, C=24
Isomorphism class 93: T=12, A=12, C=0
Isomorphism class 94: T=24, A=24, C=24
Isomorphism class 95: T=24, A=24, C=0
Isomorphism class 96: T=24, A=24, C=0
Isomorphism class 97: T=24, A=24, C=24
Isomorphism class 98: T=12, A=12, C=0
Isomorphism class 99: T=24, A=24, C=0
Isomorphism class 100: T=24, A=24, C=24
Isomorphism class 101: T=24, A=24, C=0
Isomorphism class 102: T=24, A=24, C=0
Isomorphism class 103: T=24, A=24, C=0
Isomorphism class 104: T=12, A=12, C=0
Isomorphism class 105: T=24, A=24, C=0
Isomorphism class 106: T=24, A=24, C=0
Isomorphism class 107: T=4, A=4, C=4
Isomorphism class 108: T=24, A=24, C=0
Isomorphism class 109: T=24, A=24, C=0
Isomorphism class 110: T=12, A=12, C=0
Isomorphism class 111: T=12, A=12, C=0
Isomorphism class 112: T=24, A=24, C=24
Isomorphism class 113: T=24, A=24, C=0
Isomorphism class 114: T=12, A=12, C=12
Isomorphism class 115: T=24, A=24, C=0
Isomorphism class 116: T=24, A=24, C=0
Isomorphism class 117: T=12, A=12, C=0
Isomorphism class 118: T=24, A=24, C=24
Isomorphism class 119: T=24, A=24, C=0
Isomorphism class 120: T=12, A=12, C=12
Isomorphism class 121: T=12, A=12, C=0
Isomorphism class 122: T=24, A=24, C=0
Isomorphism class 123: T=12, A=12, C=0
Isomorphism class 124: T=24, A=24, C=24
Isomorphism class 125: T=12, A=12, C=0
Isomorphism class 126: T=12, A=12, C=0
Isomorphism class 127: T=24, A=24, C=24
Isomorphism class 128: T=12, A=12, C=0
Isomorphism class 129: T=12, A=12, C=0
Isomorphism class 130: T=4, A=4, C=0
Isomorphism class 131: T=12, A=12, C=0
Isomorphism class 132: T=24, A=24, C=0
Isomorphism class 133: T=12, A=12, C=0
Isomorphism class 134: T=12, A=12, C=0
Isomorphism class 135: T=6, A=6, C=0
Isomorphism class 136: T=24, A=24, C=0
Isomorphism class 137: T=24, A=24, C=0
Isomorphism class 138: T=12, A=12, C=12
Isomorphism class 139: T=24, A=24, C=0
Isomorphism class 140: T=12, A=12, C=0
Isomorphism class 141: T=4, A=4, C=0
Isomorphism class 142: T=24, A=24, C=0
Isomorphism class 143: T=24, A=24, C=0
Isomorphism class 144: T=24, A=24, C=0
Isomorphism class 145: T=12, A=12, C=0
Isomorphism class 146: T=24, A=24, C=0
Isomorphism class 147: T=24, A=24, C=24
Isomorphism class 148: T=24, A=24, C=0
Isomorphism class 149: T=12, A=12, C=0
Isomorphism class 150: T=24, A=24, C=0
Isomorphism class 151: T=12, A=12, C=12
Isomorphism class 152: T=12, A=12, C=0
Isomorphism class 153: T=24, A=24, C=0
Isomorphism class 154: T=6, A=6, C=0
Isomorphism class 155: T=1, A=1, C=0
Isomorphism class 156: T=24, A=24, C=0
Isomorphism class 157: T=24, A=24, C=24
Isomorphism class 158: T=12, A=12, C=0
Isomorphism class 159: T=24, A=24, C=0
Isomorphism class 160: T=24, A=24, C=24
Isomorphism class 161: T=12, A=12, C=0
Isomorphism class 162: T=24, A=24, C=24
Isomorphism class 163: T=12, A=12, C=0
Isomorphism class 164: T=12, A=12, C=0
Isomorphism class 165: T=12, A=12, C=12
Isomorphism class 166: T=24, A=24, C=0
Isomorphism class 167: T=12, A=12, C=0
Isomorphism class 168: T=24, A=24, C=0
Isomorphism class 169: T=24, A=24, C=0
Isomorphism class 170: T=12, A=12, C=0
Isomorphism class 171: T=12, A=12, C=12
Isomorphism class 172: T=12, A=12, C=0
Isomorphism class 173: T=12, A=12, C=12
Isomorphism class 174: T=12, A=12, C=0
Isomorphism class 175: T=12, A=12, C=0
Isomorphism class 176: T=1, A=1, C=0
Isomorphism class 177: T=12, A=12, C=0
Isomorphism class 178: T=12, A=12, C=12
Isomorphism class 179: T=6, A=6, C=0
Isomorphism class 180: T=12, A=12, C=0
Isomorphism class 181: T=12, A=12, C=12
Isomorphism class 182: T=24, A=24, C=24
Isomorphism class 183: T=12, A=12, C=0
Isomorphism class 184: T=4, A=4, C=0
Isomorphism class 185: T=6, A=6, C=0
Isomorphism class 186: T=12, A=12, C=0
Isomorphism class 187: T=4, A=4, C=4
Isomorphism class 188: T=6, A=6, C=0
```

This page is based on a project originally submitted to Professor Des MacHale in December 2002.