…in the integers mod 2 (a.k.a. the finite field of order 2). Multiplication mod 2 is
Adding one mod 2 is
So, multiplication plus one is
NAND is universal, and any finite composition of polynomials is a polynomial, any finite boolean circuit is a polynomial. Here’s all 16 two-input functions:
|Lookup table||Boolean function (RPN)||Polynomial||Polynomial bitmap|
It’s interesting that in many cases, including those corresponding to the “basic” functions of
NOT, the polynomial bitmap is identical to the lookup table.
It’s also interesting that these polynomials are either multilinear (linear in each variable) or the sum of a multilinear polynomial with 1.
Naturally, I’m not the first person to notice this. It was first noticed by I. I. Zhegalkin in 1927. And I haven’t yet found any especially compelling uses of the representation. (If you actually want to represent boolean functions, you’re probably better served by ZDDs.) But I found it an interesting discovery which might just come in handy someday.