Boolean differential calculus

A branch of mathematics dealing with the concepts of differentials and derivatives of Boolean functions (cf. Boolean function) and the manner of using these in the study of such functions.

Boolean differential calculus originated from the treatment of electrical engineering problems in the areas of error-correcting codes (cf. Error-correcting code) and of design and testing of switching circuits; development into a self-contained mathematical theory was achieved in 1959 [a1], [a2], and continued in the time thereafter [a3], [a4], [a5], [a6]. Boolean differential calculus has also found other engineering applications: e.g., it can be used as a unifying framework for the modeling and investigation of finite automata (cf. Automaton, finite) and of discrete event dynamical systems [a7] (cf. also Discrete event system), i.e., dynamical systems with discrete states and changes of states called events; such systems arise e.g. in digital network communication protocols.

Many concepts in Boolean differential calculus are in analogy to those of classical differential calculus for real-valued functions of one or more real variables; such are, e.g., the concept of a differential, describing the change of the value of a function and variables, and the concept of a derivative, describing how the value of a function depends on changes of its argument(s).

The simplest and (with regard to applications) most important case is based on the two-element Boolean algebra with carrier set $ B = \\{ 0, 1 \\} $, on Boolean or binary variables $ x \in \\{ 0, 1 \\} $, and on vectors of variables $ {\overline{x}\; } = ( x _ {1} \dots x _ {k} ) $ in a Boolean space $ B ^ {k} $. A Boolean function $ f ( {\overline{x}\; } ) $ is a mapping $ f : {B ^ {k} } \rightarrow B $, and a set of $ n $ functions $ F = \\{ f _ {1} \dots f _ {n} \\} $ can be represented as a mapping $ F : {B ^ {k} } \rightarrow {B ^ {n} } $.

A Boolean equation of the general form $ f _ {i} ( {\overline{x}\; } ) = f _ {j} ( {\overline{x}\; } ) $ can always be written in homogeneous form $ f ( {\overline{x}\; } ) = 0 $, with $ f ( {\overline{x}\; } ) = f _ {i} ( {\overline{x}\; } ) \oplus f _ {j} ( {\overline{x}\; } ) $, and a set of $ n $ simultaneous equations $ \\{ f _ {1} = 0 \dots f _ {n} = 0 \\} $ can always be combined into one single equation $ f _ {1} + \dots + f _ {n} = 0 $. Here and below, $ \oplus $ denotes addition modulo $ 2 $, or the operation of exclusive or, and the symbols $ + $, $ \cdot $ and $ {} ^ \prime $ stand for disjunction, conjunction and negation, respectively.

## Derivatives.[edit]

Suppose $ x \in B $ and $ {\overline{y}\; } \in B ^ {m} $. The (Boolean) derivative $ { {\partial f ( x, {\overline{y}\; } ) } / {\partial x } } $ of a Boolean function $ f ( x, {\overline{y}\; } ) $ with respect to the variable $ x $ is the function $ { {{\partial f } / {\partial x } } } : {B ^ {m} } \rightarrow B $ given by

$$ { \frac{\partial f }{\partial x } } = f ( 0, {\overline{y}\; } ) \oplus f ( 1, {\overline{y}\; } ) $$

or, equivalently,

$$ { \frac{\partial f }{\partial x } } = f ( x, {\overline{y}\; } ) \oplus f ( x ^ \prime , {\overline{y}\; } ) . $$

It has the value $ 1 $ if and only if a change in $ x $ changes the value of $ f $.

The maximum and the minimum of the function $ f ( x, {\overline{y}\; } ) $ with respect to the variable $ x $ is defined as:

$$ \max _ { x } f = f ( x, {\overline{y}\; } ) + f ( x ^ \prime , {\overline{y}\; } ) , $$

$$ { \mathop{\rm min} } _ { x } f = f ( x, {\overline{y}\; } ) \cdot f ( x ^ \prime , {\overline{y}\; } ) . $$

Suppose $ {\overline{x}\; } \in B ^ {k} $ and $ {\overline{y}\; } \in B ^ {m} $. The derivative $ { {\partial ^ {k} f ( {\overline{x}\; } , {\overline{y}\; } ) } / {\partial {\overline{x}\; } } } $ of a Boolean function $ f ( {\overline{x}\; } , {\overline{y}\; } ) $ with respect to the $ k $ variables in $ {\overline{x}\; } $ is the function $ { {{\partial ^ {k} f } / {\partial {\overline{x}\; } } } } : {B ^ {m} } \rightarrow B $,

$$ { \frac{\partial ^ {k} f }{\partial {\overline{x}\; } } } = { \frac{\partial ^ {k} f }{\partial x _ {1} \dots \partial x _ {k} } } = { \frac \partial {\partial x _ {1} } } \left ( \dots { \frac{\partial f }{\partial x _ {k} } } \right ) . $$

Maxima and minima of a function with respect to more than one of its variables are defined accordingly.

## Differentials.[edit]

The variable $ dx $ defined by

$$ dx = \left \\{ \begin{array}{l} {1 \ \textrm{ if } x \textrm{ changes its value } , } \\\ {0 \ \textrm{ if } x \textrm{ remains constant } , } \end{array} \right . $$

is called the differential of the variable $ x $, and describes changes in $ x $. Likewise, the vector

$$ d {\overline{x}\; } = {\overline{x}\; } \oplus {\overline{x}\; } ^ {*} $$

is called the differential of the vector $ {\overline{x}\; } $, and describes the changes that occur in the components of $ {\overline{x}\; } $ when $ {\overline{x}\; } $ changes to some other value $ {\overline{x}\; } ^ {*} $; here, $ \oplus $ denotes component-wise exclusive-or. In $ B ^ {k} $, $ {\overline{x}\; } $ is a point, and $ d {\overline{x}\; } $ is the direction from $ {\overline{x}\; } $ to $ {\overline{x}\; } ^ {*} $. The (total) differential of a Boolean function $ f ( {\overline{x}\; } ) $ is given by

$$ df = f ( {\overline{x}\; } ) \oplus f ( {\overline{x}\; } \oplus d {\overline{x}\; } ) , $$

the partial differential of a Boolean function $ f ( {\overline{x}\; } , {\overline{y}\; } ) $ with respect to $ {\overline{x}\; } $ is given by

$$ d _ { {\overline{x}\; } } f = df \mid _ {d {\overline{y}\; } = 0 } , $$

and the $ k $ th partial differential of $ f ( {\overline{x}\; } , {\overline{y}\; } ) $ with respect to $ {\overline{x}\; } $ is given by

$$ d _ { {\overline{x}\; } } ^ {k} f = d _ {x _ {1} } ( \dots d _ {x _ {k} } f ( {\overline{x}\; } , {\overline{y}\; } ) ) . $$

Other useful operators include the various differential minima and maxima that can be derived from the various differentials of functions by replacing "" with "" or "+" .

Boolean differential equations $ f ( {\overline{x}\; } , d {\overline{x}\; } ) = 0 $, as well as Boolean equations, can be solved and investigated with the aid of differential operators. Numerical tools may operate on the solution sets of equations rather than on the equations themselves. A compact representation of solution sets uses $ 1 $-, $ 0 $-, and "do-not-care" -elements in ternary-valued tables.

#### References[edit]

[a1] |  S.B. Akers, "On a theory of Boolean functions" SIAM J. , 7 (1959) pp. 487–498

|

[a2] |  A.D. Talantsev, "On the analysis and synthesis of certain electrical circuits by means of special logical operators" Avtomat. i Telemeh. , 20 (1959) pp. 898–907 (In Russian)
[a3] |  A. Thayse, "Boolean differential calculus" Philips Res. Rep. , 26 (1971) pp. 229–246
[a4] |  D. Bochmann, "Boolean differential calculus (a survey)" Engin. Cybernet. , 15 : 5 (1977) pp. 67–75
[a5] |  D. Bochmann, C. Posthoff, "Binäre dynamische Systeme" , R. Oldenbourg (1981)
[a6] |  A. Thayse, "Boolean calculus of differences" , Lecture Notes in Computer Science , 101 , Springer (1981)
[a7] |  R. Scheuring, H. Wehlan, "On the design of discrete event dynamic systems by means of the Boolean differential calculus" D. Franke (ed.) F. Kraus (ed.) , Design Methods of Control Systems , 2 , Pergamon (1991) pp. 723–728