# 3-ary Boolean functions

There are $2^{2^{3}}$ = 256 3-ary Boolean functions, like set operations or logical connectives.
This Venn diagram , representing the intersection of 3 sets, or the conjunction of 3 statements respectively, gives an example of a 3-ary Boolean function.

## Equivalence classes

       See: Equivalence classes of Boolean functions
The set of 256 functions can be parted into various equivalence classes. The most basic way to do that are the 46 small equivalence classes (secs). Functions belong to the same sec, when they can be expressed by each other by negating arguments. There are 3 arguments that can be negated, so there can be up to $2^{3}$ = 8 different functions in a sec.
When binarily colored cubes can be transformed into each other by mirroring and rotation, they are essentially the same. The corresponding Boolean functions are often called equivalent and belong to the same big equivalence class (bec).
Numbers of equivalence classes :
| wec: 5 ||
| sec:  A000231(3) = 46 | bec:  A000616(3) = 22 |
| gsec: 30 | gbec: 14 |
| ggsec: 18 | ggbec: 8 |
The following sequences show the number of secs and becs by weight:
The following sequences show the number of secs and becs by number of functions in each sec:

### Permutations of functions in a bec

Theoretically a bec could have 3! * 2$^3$ = 6 * 8 = 48 functions, but the largest becs have only 24. (There are some becs of 4-ary functions with the highest possible number of functions, e.g. this one.)
permuting all 3 arguments :
| 3 | 4 |
permuting 2 arguments :
| 1 | 5 | 2 |

## Nonlinearity

The nonlinearity of a function is the smallest Hamming distance it has from one of the 16 linear functions, i.e. from a row of the binary Walsh matrix or its complement. The functions in wec E0 are the linear functions, i.e. those with nonlinearity 0. The functions in wec O have nonlinearity 1, and all others have nonlinearity 2. There are no 3-ary bent functions.

## Walsh spectrum

The Walsh spectrum of a Boolean function is the product of its binary string (as a row vector) with a Walsh matrix. The first entry of the Walsh spectrum is the functions digit sum, and all entries have the same parity.
In the following chapter Walsh spectra are shown in the "by ggbec" sections. Walsh spectra of the same sec (which differ only in the signs of their entries) are always shown in the same file.
The Walsh spectra of complements sum up to $\scriptstyle (8,0,0,0,0,0,0,0,)$.
Further the binary Walsh spectra are always shown by the red squares in the background. They are always rows of a binary Walsh matrix - or, in other terms, exclusive disjunctions of unnegated arguments.
The functions with odd digit sum, which make up wec O, have each binary Walsh spectrum one time in every sec.
The functions with even digit sum, which make up the other four wecs, have always the same binary Walsh spectrum in the same sec:
| $\scriptstyle \oplus$ | = 0000 0000 | | | | | | | in wec E0 |
| $\scriptstyle \oplus (A)$ | = 0101 0101 | or | $\scriptstyle \oplus (B)$ | = 0011 0011 | or | $\scriptstyle \oplus (C)$ | = 0000 1111 | in wec E1 |
| $\scriptstyle \oplus (A,B)$ | = 0110 0110 | or | $\scriptstyle \oplus (A,C)$ | = 0101 1010 | or | $\scriptstyle \oplus (B,C)$ | = 0011 1100 | in wec E2 |
| $\scriptstyle \oplus (A,B,C)$ | = 0110 1001 | | | | | | | in wec E3 |

### Functions with the same binary Walsh spectrum

In the diagrams in this section the even functions are shown in red, and the odd ones (i.e. those in wec O) in yellow. Each odd function differs in the lowest bit (numerically: by 1) from an even function with the same binary Walsh spectrum. So in the octeract graphs each red vertex is connected to a yellow vertex by an edge of the direction corresponding to the lowest bit (like the edge connecting vertices 0 and 1). The pattern of the red vertices is always symmetrical to the main axes. Surprisingly the yellow vertices are also symmetrical, but to axes tilted to the left or to the right (indicated by \ or / in the table).
3 :
* \ 7
2 :
| \ 3 | / 5 | \ 6 |
1 :
| / 1 | \ 2 | / 4 |
0 :
* / 0

## Nested equivalence classes
### Overview

The matrix on the right shows the 256 functions arranged in a way similar to the Hasse diagram, which is an octeract graph. The colors indicate the five wecs, as shown in the table below.
The two following matrices are examples of a gbec and a ggsec. Both contain the sec 26. Files like these are in the collapsible boxes below in boxes labeled Positions.
These matrices are symmetric to the main diagonal, because they contain complete secs. They are also symmetric to the antidiagonal, because they contain all the complements, and complements are symmetric about the center of the matrix. The ggsec matrices are also symmetric about the central axes, because they contain all the half-complements. Left half-complements are vertically, and right ones are horizontally symmetric to each other.
| gbec 25 with 6 secs (sec 26 is light green) | ggsec 21 with 4 secs (sec 26 is light red) |
| O nonlinearity 1 | E0 nonlinearity 0 | E1 nonlinearity 2 | E2 nonlinearity 2 | E3 nonlinearity 2 |
| by ggbec ggbec 1 with 64 functions ggbec 22 with 64 functions | by ggbec ggbec 0 with 2 functions ggbec 15 with 6 functions ggbec 60 with 8 functions | by ggbec ggbec 3 with 48 functions | by ggbec ggbec 6 with 48 functions | ggbec 23 with 16 functions |
| by ggsec | by ggsec | by ggsec | by ggsec |
| 122 172225 1127731221072561 1118 1278 778 318 1919198 558 28288 618 2121218 878 26268 918 2222228 1078 25258 1038 | 01560 01560105 02551560105 0001 2551 15152 5151512 60602 8585852 90902 1021021022 1051052 | 3 330 36330 3334 634 5554 954 1717174 1194 30308 5454548 8686868 | 6 627 611127 6664 1114 1818184 1234 29298 2020204 1254 27278 5353538 | 23 2324 2324126 2323238 24244 1264 |
The tables above show how the equivalence classes are nested in each other. Each table shows the equivalence classes in a wec. The vertical axes show ggsecs, gsecs and secs, and the horizontal ones show ggbecs, gbecs and becs. The entries in the matrices show which secs belong to which becs. The numbers in these fields show how many functions are in each sec. A dark red background tells that the sec contains a monotonic function.

### wec O with 128 functions
#### wec O ordered by ggbec

wec O ordered by ggbec :
ggbec 1 with 64 functions :
gbec 1 with 16 functions N(0) :
gbec 7 with 48 functions N(0) :
ggbec 22 with 64 functions :
gbec 22 with 16 functions N(0) :
gbec 25 with 48 functions N(0) :

#### wec O ordered by ggsec

wec O ordered by ggsec :
ggsec 1 with 32 functions :
ggsec 19 with 32 functions :
ggsec 21 with 32 functions :
ggsec 22 with 32 functions :

### wec E0 with 16 functions
#### wec E0 ordered by ggbec

wec E0 ordered by ggbec :
ggbec 0 = gbec 0 with 2 functions N(3, 1) :
ggbec 60 with 8 functions :

#### wec E0 ordered by ggsec

wec E0 ordered by ggsec :
ggsec 0 with 4 functions :
ggsec 102 with 4 functions :
ggsec 51 with 4 functions :
ggsec 85 with 4 functions :

### wec E1 with 48 functions
#### wec E1 ordered by ggbec

wec E1 = ggbec 3 with 48 functions :
gbec 3 with 24 functions N(1, 1) :

#### wec E1 ordered by ggsec

wec E1 ordered by ggsec :
ggsec 17 with 16 functions :
ggsec 54 = gsec 54 with 8 functions 0 in N(0) :
sec 54 with 8 functions $\scriptstyle (A\lor C)\leftrightarrow B$ :
ggsec 86 = gsec 86 with 8 functions 0 in N(0) :
sec 86 with 8 functions $\scriptstyle (B\lor C)\leftrightarrow A$ :

### wec E2 with 48 functions
#### wec E2 ordered by ggbec

wec E2 = ggbec 6 with 48 functions :
gbec 6 with 24 functions N(1, 2) :

#### wec E2 ordered by ggsec

wec E2 ordered by ggsec :
ggsec 20 with 16 functions :
ggsec 18 with 16 functions :
ggsec 53 = gsec 53 with 8 functions 0 in N(0) :
sec 53 with 8 functions $\scriptstyle (A\land \neg C)\lor (B\land C)$ :

### wec E3 with 16 functions

wec E3 = ggbec 23 = ggsec 23 with 16 functions :
Walsh spectra :

## Monotonic functions

The right Hasse diagram in the file on the right shows the 20 monotonic 3-ary Boolean functions.
If a sec has a monotonic function, all the secs in the gbec and gsec it belongs to also have one. So one can call secs, gbecs and gsecs monotonic, when they contain monotonic functions. There are 6 gbecs and 12 gsecs that are monotonic in this sense. Their collapsible boxes are marked with Tudor roses .
In the above tables that show the nesting of the equivalence classes the monotonic secs have a dark red instead of a black background.
| gbec | weight | gsec |
| 0 | 0, 8 | 0 |
| 1 | 1, 7 | 1 |
| 3 | 2, 6 | 3, 5, 17 |
| 7 | 3, 5 | 7, 19, 21 |
| 15, 23 | 4 | 15, 23, 51, 85 |
All wecs except E2 contain monotonic functions.

## Subgroups of nimber addition

       See: Subgroups of nimber addition#Z$_2$$^3$
16 secs with in all 8 + 7*4 + 7*2 + 1 = 51 functions are related to subgroups of nimber addition:
| These matrices describe equivalence relations. | These cubes correspond to the matrices' top lines. In the linked files they are always in the bottom left position. |
In each sec matrix its leading function appears in a sona pattern. This pattern is 0 in N(0) iff the sec contains 8 different functions. All the other different sona patterns appear only in the sec matrices of the actual sonas between 1 and 15 and their Boolean complements. Each gbec is marked in green with its sona-bec, and each gsec is marked with its sona-sec.

## Complements in secs

There are two kinds of secs that are their own complements (i.e. complete gsecs): Those with sona rank 2, marked as N(2, ...), and the following seven secs containing 8 functions each:
Complements in 8-element secs in a cube :
| | sec 53 wec E2 | | sec 23 wec E3 |
| sec 86 wec E1 | sec 53 wec E2 | sec 29 wec E2 | sec 23 wec E3 |
| sec 86 wec E1 | sec 54 wec E1 | sec 29 wec E2 | sec 27 wec E2 |
| | sec 54 wec E1 | sec 30 wec E1 | sec 27 wec E2 |

## Gbecs by similarity to 4-ary sec matrix

In the octeract matrices of the gbecs it can be seen, that they belong together in a way that is independent of ggbecs and wecs. Their pattern is part of a sec matrix of one of the five 4-ary exact-value functions. On the left the functions in these gbecs are shown in the Hasse diagram.

### 0

| 0 | gbec 0 wec E0 | gbec 60 wec E0 | gbec 24 wec E3 |

### 1

| 1, 2, 4, 8 | gbec 1 wec O | gbec 25 wec O |
gbec 1 and gbec 25 in a cube :
| | sec 103 | | sec 127 |
| sec 28 | sec 103 | sec 91 | sec 127 |
| sec 28 | sec 26 | sec 91 | sec 61 |
| sec 1 | sec 26 | sec 25 | sec 61 |
smallest 4-ary sec matrices :
| 1 | 2 | 4 | 8 |

### 2

| 3, 5, 6, 9, 10, 12 | gbec 3 wec E1 | gbec 30 wec E1 | gbec 6 wec E2 | gbec 27 wec E2 |
gsecs separately :
| 3, 12 | gsec 3 | gsec 86 | gsec 20 | gsec 27 |
| 3, 12 | b.W.s. 1 | b.W.s. 1 | b.W.s. 6 | b.W.s. 6 |
| 5, 10 | gsec 5 | gsec 54 | gsec 18 | gsec 29 |
| 5, 10 | b.W.s. 2 | b.W.s. 2 | b.W.s. 5 | b.W.s. 5 |
| 6, 9 | gsec 17 | gsec 30 | gsec 6 | gsec 53 |
| 6, 9 | b.W.s. 4 | b.W.s. 4 | b.W.s. 3 | b.W.s. 3 |
smallest 4-ary sec matrices :
| 3 | 5 | 6 | 9 | 10 | 12 |

### 3

| 7, 11, 13, 14 | gbec 7 wec O | gbec 22 wec O |
gbec 7 and gbec 22 in a cube :
| | sec 31 | | sec 107 |
| sec 21 | sec 31 | sec 55 | sec 107 |
| sec 21 | sec 19 | sec 55 | sec 87 |
| sec 22 | sec 19 | sec 7 | sec 87 |
smallest 4-ary sec matrices :
| 7 | 11 | 13 | 14 |

### 4

| 15 | gbec 15 wec E0 | gbec 105 wec E0 | gbec 23 wec E3 |