Boolean differential calculus


Boolean differential calculus is a subject field of Boolean algebra discussing changes of Boolean variables and Boolean functions.
Boolean differential calculus concepts are analogous to those of classical differential calculus, notably studying the changes in functions and variables with respect to another/others.
The Boolean differential calculus allows various aspects of dynamical systems theory such as
to be discussed in a united and closed form, with their individual advantages combined.

History and applications

Originally inspired by the design and testing of switching circuits and the utilization of error-correcting codes in electrical engineering, the roots for the development of what later would evolve into the Boolean differential calculus were initiated by works of Irving S. Reed, David E. Muller, David A. Huffman, Sheldon B. Akers, Jr. and A. D. Talantsev between 1954 and 1959, and of Frederick F. Sellers, Jr., Mu-Yue Hsiao and Leroy W. Bearnson in 1968.
Since then, significant advances were accomplished in both, the theory and in the application of the BDC in switching circuit design and logic synthesis.
Works of André Thayse, Marc Davio and Jean-Pierre Deschamps in the 1970s formed the basics of BDC on which, Christian Posthoff and further developed BDC into a self-contained mathematical theory later on.
A complementary theory of Boolean integral calculus has been developed as well.
BDC has also found uses in discrete event dynamic systems in digital network communication protocols.
Meanwhile, BDC has seen extensions to multi-valued variables and functions as well as to lattices of Boolean functions.

Overview

Boolean differential operators play a significant role in BDC. They allow the application of differentials as known from classical analysis to be extended to logical functions.
The differentials of a Boolean variable models the relation:
There are no constraints in regard to the nature, the causes and consequences of a change.
The differentials are binary. They can be used just like common binary variables.