You are on page 1of 2

Chapter 11

BOOLEAN DIFFERENCE AND


APPLICATIONS IN TESTING LOGIC
NETWORKS

Differential operators are a very important tool in science. Therefore,


it has been quite natural to make attempts to extend the theory of
differential calculus of functions on the real line R to switching functions.
The notion of the partial derivative has been introduced to get esti-
mate the rate and the direction of the change of a function f (x1 , . . . , xn )
caused by an infinitesimal change of its argument xi , as illustrated in
Fig. 11.1. For a real function, i.e., f : Rn → R, the Newton-Leibniz
derivative is defined as

df f (x + ∆x) − f (x)
= lim .
dx ∆x→0 ∆x

f (x1,..., xn) ¶f
>0
Dxi ¶xi
¶f
<0
¶xi
Df

xi

Figure 11.1. Illustration of the application of Newton-Leibniz derivative with respect to


the variable xi .

235
236 FUNDAMENTALS OF SWITCHING THEORY AND LOGIC DESIGN

1. Boolean difference
Switching (Boolean) functions are defined as mappings f : {0, 1}n →
{0, 1} and, therefore, the smallest change in the argument and the func-
tion is equal to 1. Since the addition and subtraction modulo 2, which
are used for switching functions coincide, and are viewed as logic EXOR,
the definition of a differential operator for switching functions with re-
spect to the variable xi is
δf
= f (x1 , . . . , xi , . . . , xn ) ⊕ f (x1 , . . . , xi , . . . , xn ).
δxi
It is clear that due to the properties of EXOR, the Boolean difference
cannot distinguish between the change of a function value from 0 to 1 or
vice versa, since 1+0 = 0+1 = 1. Thus defined operator expresses some
of the properties of the classical Newton-Leibniz derivative, and is called
the Boolean derivative [185]. However, to emphasize that it is defined
on finite and discrete structures and is applied to discrete functions, the
term Boolean difference is also used.
Since xi ⊕ 1 = xi , the definition of the Boolean difference can be
written as
δf
= f (x1 , . . . xi , . . . , xn ) ⊕ f (x1 , . . . , xi , . . . , xn )
δxi
δf
It is obvious that δx i
= 1 iff f (x1 , . . . , xi , . . . , xn)=f (x1 , . . . , xi , . . . , xn ).
This property of the Boolean difference is used to check if a variable is
an essential variable in a Boolean function f .
Example 11.1 Fig. 11.2 shows a Boolean cube specifying the function
f (x1 , x2 , x3 ) whose truth-vector is F = [0, 0, 0, 0, 0, 1, 1, 1]T . In this figure
the dark and white nodes correspond to the values 1, and 0, respectively.
To calculate the value of the Boolean difference with respect to a vari-
able xi , i = 1, 2, 3, at a particular point x1 , x2 , x3 ), we move along the
edge connecting nodes where xi = 0 and xi = 1, for the given assign-
ment of other variables. If the values at the both ends of this edge are
different, the value of the Boolean difference is 1, otherwise it is 0. In
δf
this figure, are shown the values of the Boolean differences δx 1
(000) = 0,
δf δf
δx2 (101) = 0, and δx3 (100) = 1.

It is possible to define the Boolean difference with respect to a subset


of m variables, which is called the multiple Boolean difference or the
Boolean difference of higher order.
Definition 11.1 (Multiple Boolean difference)
For a function of n variables f (x1,...,xn), the multiple Boolean difference

You might also like