Algebraic normal form

The  (ANF) is a of a Boolean function.

It is a formula of  formulas, like this:


 * $$ a \oplus b \oplus \left(a \land b\right) \oplus \left(a \land b \land c\right)$$

Here it shall be abbreviated like this:


 * $$ \Bigl[ \left( a \right), \left( b \right), \left(a, b\right), \left(a, b, c\right) \Bigr]$$

Both operators are, i.e. they can have any number of arguments, including none or one. XOR without arguments is false ( 0). AND without arguments is true ( 1).

The empty XOR is false:


 * $$ \Bigl[ ~ \Bigr] \iff  0$$

XOR containing empty AND is true:


 * $$ \Bigl[ \left( ~ \right) \Bigr] \iff  1$$

XOR containing unary AND is an atomic statement:


 * $$ \Bigl[ \left( a \right) \Bigr] \iff  a$$

The presence of empty AND works as a :


 * $$ \Bigl[ \left( ~ \right), \left( a \right) \Bigr] \iff  \neg a$$

So the negation of the introductory example is this:


 * $$ \Bigl[ \left( ~ \right), \left( a \right), \left( b \right), \left(a, b\right), \left(a, b, c\right) \Bigr]$$

Each AND formula corresponds to a set of integers, which can be interpreted as a binary number. Thus each XOR formula also corresponds to a set of integers, which can also be interpreted as a binary number.

In short, there is a bijection between the non-negative integers and algebraic normal forms. While the truth tables for a given arity can be interpreted as integers, truth tables in general can only be assigned values between 0 and 1. The ANF allows to assign every Boolean function (regardless of its arity) a unique integer, which shall be called its Zhegalkin index.

It has the interesting property, that its parity corresponds to the just mentioned fraction: Boolean functions with an even (odd) Zhegalkin index have a rational value below (above) $$\tfrac{1}{2}$$. Here is a list of examples: Studies of Euler diagrams/list

The Zhegalkin indices of Boolean functions in the same permutation equivalence class have the same binary weight.

For a specific arity each Boolean function can be interpreted as an integer. So the map from integers to Boolean functions becomes a map from integers to integers, which is the Zhegalkin permutation.

See also: Zhegalkin matrix