Algebraic normal form
From Wikipedia, the free encyclopedia
In Boolean logic, the algebraic normal form (ANF) is a method of standardizing and normalizing logical formulas. As a normal form, it can be used in automated theorem proving (ATP), but is more commonly used in the design of cryptographic random number generators, specifically linear feedback shift registers (LFSRs). A logical formula is considered to be in ANF if and only if it is a single algebraic sum (XOR) of a constant a0 and one or more conjunctions of the function arguments. ANF is also known as "Zhegalkin polynomials" (Russian: полиномы Жегалкина) and as "Positive Polarity (or Parity) Reed-Muller" expression.
Putting a formula into ANF makes it easy to identify linear functions, as is needed for linear feedback in LFSRs: a linear function is one that is a sum of literals. Properties of nonlinear feedback shift registers can also be deduced from certain properties of the feedback function in ANF.
The general ANF can be written as:
![]() |
![]() |
![]() |
|
![]() |
|
![]() |
|
![]() |
where
fully describes f.
For each function f there is a unique ANF. There are only four functions with one argument: f(x) = 0, f(x) = 1, f(x) = x, f(x) = 1 + x (all of them are given in the ANF). To represent a function with multiple arguments one can use the following equality:
, where
and
. Indeed, if x1 = 0 then x1h = 0 and so
; if x1 = 1 then x1h = h and so
. Since both g and h have less arguments than f it follows that using this process recursively we will finish with functions with one variable. For example, let us construct ANF of
(logical or): f(x,y) = f(0,y) + x(f(0,y) + f(1,y)); since
and
, it follows that f(x,y) = y + x(y + 1); by opening the parentheses we get the final ANF: f(x,y) = y + xy + x = x + y + xy.
[edit] See also
| This article does not cite any references or sources. (December 2007) Please help improve this article by adding citations to reliable sources. Unverifiable material may be challenged and removed. |







