Bernd Steinbach and Christian Posthoff Bernd Steinbach and Christian Posthoff
Bernd Steinbach and Christian Posthoff Bernd Steinbach and Christian Posthoff
Bernd Steinbach and Christian Posthoff Bernd Steinbach and Christian Posthoff
FACTA
FACTA
Series: UNIVeRSITATIS
Electronics and Energetics Vol. 28, No 1, March 2015, pp. 51 - 76
UNIVeRSITATIS
DOI: 10.2298/FUEE1501051S
Series: electronics andand
energetics Vol. 28,28,
NoNo 1, 1,
March 2015, pp.pp.
101 - 125
Series: electronics energetics Vol. March 2015, 101 - 125
BOOLEAN
BOOLEANDIFFERENTIAL
DIFFERENTIALEQUATIONS
EQUATIONS- A-A
COMMON
COMMONMODEL
MODELFOR
FORCLASSES,
CLASSES,LATTICES,
LATTICES,AND
AND
ARBITRARY
ARBITRARYSETS
SETSOF
OFBOOLEAN
BOOLEANFUNCTIONS
FUNCTIONS
Bernd Steinbach 1 1 2
Bernd Steinbachand andChristian
Christian Posthoff
Posthoff2
1 Institute
1 ofof
Computer Science, Freiberg University ofof
Institute Computer Science, Freiberg University
Mining
Mining and
andTechnology,
Technology, Bernhard-von-Cotta-Str.
Bernhard-von-Cotta-Str.2, 2,
D-09596 Freiberg,
D-09596 Freiberg, Germany
Germany
2 Department
2 Department ofofComputing and Information Technology,
Computing and Information Technology,
The University of the West Indies, Trinidad
The University of the West Indies, Trinidad && Tobago
Tobago
Abstract:
Abstract: The
TheBoolean
Boolean Differential
Differential Calculus
Calculus(BDC)
(BDC) significantly
significantly extends thethe
extends Boolean
Boolean
Algebra because not only Boolean values 0 and 1, but also changes
Algebra because not only Boolean values 0 and 1, but also changes of Boolean of Boolean val-
val-
uesuesor orBoolean functions can be described. A Boolean Differential
Boolean functions can be described. A Boolean Differential Equation (BDe) Equation (BDe)
is is
a Boolean
a Boolean equation
equationthat
thatincludes
includes derivative
derivativeoperations
operations of of
thethe
Boolean
Boolean Differential
Differential
Calculus. This paper aims at the classification of BDEs, the
Calculus. This paper aims at the classification of BDEs, the characterization characterization of of
thethe
respective solutions, algorithms to calculate the solution of a BDe, and
respective solutions, algorithms to calculate the solution of a BDe, and selected appli-selected appli-
cations.
cations.WeWe will show
will show that notnot
that only
onlyclasses and
classes andarbitrary
arbitrarysets of of
sets Boolean
Boolean functions
functions butbut
also lattices
also of of
lattices Boolean
Boolean functions
functions can bebe
can expressed
expressed byby
Boolean
Boolean Differential
Differentialequations.
equations.
In In
order to to
order reach
reachthis aim,
this aim,wewe give a short
give a shortintroduction
introduction into thethe
into BDC,
BDC, emphasize
emphasize
thethegeneral
generaldifference
difference between
between thethe
solutions
solutionsof of
a Boolean
a Boolean equation
equation and
anda BDE,
a BDE, ex-ex-
plain the core algorithms to solve a BDe that is restricted to all vectorial
plain the core algorithms to solve a BDe that is restricted to all vectorial derivatives derivatives of of
f (x) and optionally contains Boolean variables. We explain formulas
f (x) and optionally contains Boolean variables. We explain formulas for transform- for transform-
ingingother
otherderivative
derivativeoperations
operations to to
vectorial derivatives
vectorial derivatives in in
order
order to to
solve more
solve moregeneral
general
BDEs. New fields of applications for BDEs are simple and
BDEs. New fields of applications for BDEs are simple and generalized lattices generalized lattices of of
Boolean functions. We describe the construction, simplification
Boolean functions. We describe the construction, simplification and solution. and solution.
Manuscript
Manuscript
Received received
17, November
received
November November
2014 17,17,
2014
2014
*An*An earlier
*An version
earlier
earlier ofof
version
version this
of paper
this
this paper
paper was presented
was
was asas
presented
presented Invited
as Paper
Invited
Invited Paper Paperatthe
at the the the
at the
13 th 13th Serbian Mathematical
the 13thMathematical
Serbian Serbian Mathematical
Congress
Congress
(SMC (SMC
2014), 2014),
May May
22-25, 22-25,
2014, in 2014,
Vrnjačka in Vrnjačka
Banja, Serbia.
Congress (SMC 2014), May 22-25, 2014, in Vrnjačka Banja, Serbia.Banja, Serbia.
Corresponding
Corresponding author: Bernd Steinbach
author:
Corresponding
Institute author:Bernd
of Computer Science, BerndSteinbach
Freiberg Steinbachof Mining and Technology, Bernhard-von-Cotta-Str. 2,
University
Institute
Instituteof Computer
of Computer Science,
D-09596 Freiberg, Germany Science,Freiberg
FreibergUniversity
Universityof of
Mining
Mining andandTechnology,
Technology, Bernhard-von-Cotta-
Bernhard-von-Cotta-
Str.Str.
2, D-09596
2, D-09596
(e-mail: Freiberg,
Freiberg,Germany
steinb@informatik) Germany
(e-mail:
(e-mail: steinb@informatik).
steinb@informatik).
101
101
102102 B. B.
STeINBACh AND
STeINBACh C. C.
AND PoSThoFF
PoSThoFF
52 B. Steinbach, C. Posthoff
TheThe
basic operations
basic of XBOOLE
operations of XBOOLE areare
sufficient to solve
sufficient BDEs.
to solve BDEs. WeWedemonstrate
demonstrate
how a XBooLe-problem program (PRP) of the freely available XBooLe-Monitor
how a XBooLe-problem program (PRP) of the freely available XBooLe-Monitor
quickly solves
quickly some
solves BDes.
some BDes.
Keywords:
Keywords:Boolean
BooleanDifferential Calculus,
Differential Boolean
Calculus, Differential
Boolean equation
Differential equation (BDe),
(BDe),
classes of Boolean
classes of Booleanfunctions, lattices
functions, of Boolean
lattices functions,
of Boolean arbitrary
functions, setssets
arbitrary of Boolean
of Boolean
functions, Lattice-BDe,
functions, Lattice-BDe,XBooLe.
XBooLe.
1 1 I NTRoDUCTIoN
I NTRoDUCTIoN
Boolean
Boolean variables
variables areare thethe
simplest
simplest variables.
variables. A Boolean
A Boolean variable
variable carries
carriesonlyonly
oneone
element of the set = {0, 1}. These two values can
element of the set B = {0, 1}. These two values can be easily distinguished
B be easily distinguished
from
from each
eachother
otherin intechnical
technical systems.
systems.ThereforeTherefore wewe getgetmore
more andand moremore digital
digital
systems.
systems.
Boolean
Boolean functions,
functions, thetheoperations
operations of ofthetheBoolean
Boolean Algebra,
Algebra, andand Boolean
Boolean equa-
equa-
tions [1][1]
tions areare
wellwellknown
known to solve
to solvemanymany taskstasksforfor
digital
digitalsystems.
systems. The Thesolution
solutionof ofa a
Boolean equation is a set of Boolean vectors which describes,
Boolean equation is a set of Boolean vectors which describes, e.g., the behavior of e.g., the behavior of
a circuit.
a circuit.However,
However, thisthis
theory
theory is restricted
is restricted to fixed
to fixedvalues
valuesforfor
a given
a givenpoint in time.
point in time.
The Boolean Differential Calculus (BDC) [1–3] allows
The Boolean Differential Calculus (BDC) [1–3] allows us to study the change us to study the change
of of
thethevalues
valuesof ofBoolean
Boolean variables
variables andandBoolean
Boolean functions.
functions. The Thesubstitution
substitution of ofthethe
derivative
derivative operations
operations of of
thethe BDCBDC into a Boolean
into a Boolean equation
equation leads
leads a Boolean
to to a Boolean Dif- Dif-
ferential Equation (BDe)
ferential Equation (BDe) [4, 5]. [4, 5].
AA BDEBDE hashas a more
a more general
general solution
solution andand consequently
consequently opens
opens a wider
a wider fieldfield of of
applications.
applications. WeWe showshow in inthisthis
paper
paper how howlattices of of
lattices Boolean
Boolean functions
functions cancanbe beex-ex-
pressed by BDes. We will show that additionally
pressed by BDes. We will show that additionally to the well known lattices to the well known lattices of of
incompletely
incompletely specified
specified functions
functions also more
also more general
generallattices of of
lattices Boolean
Boolean functions
functions
cancan
be bedescribed in an easy way using the new special Lattice-BDE.
described in an easy way using the new special Lattice-BDE. The general- The general-
ized lattices
ized of of
lattices Boolean
Boolean functions
functions openopena new
a new field of of
field applications.
applications.
The rest of this paper is organized as follows.
The rest of this paper is organized as follows. Section Section 2 defines
2 defines thethederivative
derivative
operations of the BDC and briefly explains their meaning.
operations of the BDC and briefly explains their meaning. Section 3 summarizes Section 3 summarizes
thethe
known
known theory
theory of of Boolean
Boolean Differential
Differential equations,
equations, introduces
introduces algorithms
algorithms thatthat
calculates
calculates either
eithersetssets
of ofclasses
classesof ofBoolean
Boolean functions
functions or or
arbitrary
arbitrary setssets
of of
Boolean
Boolean
functions as the solution of a BDE, explains a method
functions as the solution of a BDE, explains a method to map a more general to map a more general BDE BDE
into thethe
into form
form needed
needed forfor oneoneof ofthese
thesealgorithms,
algorithms, andandshows
shows how how a XBooLe-
a XBooLe-
problem
problem programs
programs (PRP)(PRP) cancan solve
solve a BDe
a BDe in the XBooLe-Monitor.
in the XBooLe-Monitor.
Lattices of Boolean functions are
Lattices of Boolean functions are discussed in discussed in Section
Section4 as a new
4 as a new field of of
field ap-ap-
plications
plications of of
BDes.BDes. Both Boththethewell
wellknown
known lattices thatthat
lattices describe
describe incompletely
incompletely spec-spec-
ified functions (ISF) and a more general type of lattices
ified functions (ISF) and a more general type of lattices of Boolean functions of Boolean functions areare
uniquely
uniquely described
described usingusingLattice-BDEs.
Lattice-BDEs.Several Several examples
examples showshow thatthatthethe
known
known
algorithm can be used to solve different types of Lattice-BDEs.
algorithm can be used to solve different types of Lattice-BDEs. Finally, Section Finally, Section 5 5
concludes this paper.
concludes this paper.
Boolean Differential equations - a Common Model for Classes, Lattices, ... 103
Boolean Differential Equations – a Common Model for Classes, Lattices... 53
The BDC defines the Boolean Differential dx which is also a Boolean variable that
is equal to 1 in the case that x changes its value. Additionally, the BDC defines
several differential operations of Boolean functions which describe certain general
properties depending on possible directions of change. We confine ourselves to
derivatives of the BDC where the direction of change is fixed.
For simple derivative operations the direction of change is restricted to a single
variable xi . The (simple) derivative
∂ f (xi , x1 )
= f (xi = 0, x1 ) ⊕ f (xi = 1, x1 ) (1)
∂ xi
is equal to 1 if the function f (xi , x1 ) changes its value when the value of xi changes.
The (simple) minimum
is equal to 1 when the value of the function f (xi , x1 ) remains unchanged equal to 1
while the value of xi changes. The (simple) maximum
is equal to 0 when the value of the function f (xi , x1 ) remains unchanged equal to 0
while the value of xi changes.
Vectorial derivative operations similarly describe cases where all variables of
the vector x0 change their values at the same point in time. The following formulas
define the vectorial derivative, the vectorial minimum, and the vectorial maximum:
∂ f (x0 , x1 )
= f (x0 , x1 ) ⊕ f (x0 , x1 ) , (4)
∂ x0
min f (x0 , x1 ) = f (x0 , x1 ) ∧ f (x0 , x1 ) , (5)
x0
max f (x0 , x1 ) = f (x0 , x1 ) ∨ f (x0 , x1 ) . (6)
x0
∂ m f (x0 , x1 ) ∂ ∂ ∂ f (x0 , x1 )
= ... ... , (7)
∂ x1 ∂ x2 . . . ∂ xm∂ xm ∂ x2 ∂ x1
minm f (x0 , x1 ) = min . . . min min f (x0 , x1 ) ... , (8)
x0 xm x2 x1
m
max f (x0 , x1 ) = max . . . max max f (x0 , x1 ) ... , (9)
x0 xm x2 x1
∆x0 f (x0 , x1 ) = minm f (x0 , x1 ) ⊕ maxm f (x0 , x1 ) . (10)
x0 x0
Because of the limited space, we skip all theorems about relations between certain
derivative operations and refer to [3, 6].
∂ f (x0 ,x1 )
Tab. 1. Pairs of functions values and their result of: ∂ x0 = g(x0 , x1 )
Now we consider the reverse situation that we know g(x) and want to find the
function f (x) such that g(x) is the result of a derivative operation of the unknown
function f (x). From Figure 1, we can conclude that the vectorial derivative of
several functions f (x) with regard to (x1 , x3 ) result in the same function g(x) (12).
Table 1 shows that two different patterns of function values of f (x) result for a
vectorial derivative in the same pair of patterns of function values of g(x). In the
special case of Example 1 (see also Figure 1), the two possible patterns of pairs
of function values for each of the four pairs lead to 42 = 16 different function f (x)
with the same function g(x1 , x2 , x3 ) (12) as result of the vectorial derivative with
regard to (x1 , x3 ). Figure 2 shows the Karnaugh-maps of these 16 functions using
the same encoding of the leftmost Karnaugh-maps for all of them. The original
function f (x1 , x2 , x3 ) belongs to this set of functions and is labeled as f3 (x1 , x2 , x3 )
in Figure 2.
Another interesting question: is there for each given function g(x0 , x1 ) at least
one solution function f (x0 , x1 ) of the simple BDe
∂ f (x0 , x1 )
= g(x0 , x1 ) ? (13)
∂ x0
Due to the commutativity of the ⊕-operations we have
∂ f (x0 , x1 ) ∂ f (x0 , x1 )
g(x0 , x1 ) = = f (x0 , x1 ) ⊕ f (x0 , x1 ) = = g(x0 , x1 ) .
∂ x0 ∂ x0
(14)
106 B. STeINBACh AND C. PoSThoFF
56 B. Steinbach, C. Posthoff
x2 x3 f1 (x) f2 (x) f3 (x) f4 (x) f5 (x) f6 (x) f7 (x) f8 (x) ∂ f (x1 ,x2 ,x3 )
0 0 0 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 ∂ (x1 ,x3 ) =
0 1 0 1 0 1 0 1 0 1 1 1 1 1 1 1 1 1 g(x1 , x2 , x3 )
1 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0
1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 x2 x3 g(x)
0 1 x1 0 0 1 1
0 1 1 1
1 1 0 1
x2 x3 f9 (x) f10 (x) f11 (x) f12 (x) f13 (x) f14 (x) f15 (x) f16 (x) 1 0 1 0
0 0 1 1 1 1 1 1 1 1 1 0 1 0 1 0 1 0 0 1 x1
0 1 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 0
1 1 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1 0
1 0 0 0 1 0 0 1 1 1 0 0 1 0 0 1 1 1
0 1 x1
Fig. 2. Sixteen functions with the same vectorial derivative g(x1 , x2 , x3 ) (12).
g(x0 , x1 ) = g(x0 , x1 )
g(x0 , x1 ) ⊕ g(x0 , x1 ) = g(x0 , x1 ) ⊕ g(x0 , x1 )
g(x0 , x1 ) ⊕ g(x0 , x1 ) = 0
∂ g(x0 , x1 )
= 0. (15)
∂ x0
We call (15) the integrability condition and can conclude: the functions f (x0 , x1 ) of
the BDE (13) exist if and only if g(x0 , x1 ) satisfies the integrability condition (15).
All solution functions of the BDe (13) are given by
∂ h j (x0 , x1 )
=0. (17)
∂ x0
1.
∂ g(x) ∂ g(x) ∂ g(x)
g(x), , ,..., (20)
∂ x1 ∂ x2 ∂ x x=c
is a local solution for x = c,
2.
D(u0 , u1 , . . . , u2n −1 ) = 0 (21)
is the Boolean equation, associated to the Boolean Differential Equation
(19), and has the set of local solutions SLS.
108 B. STeINBACh AND C. PoSThoFF
58 B. Steinbach, C. Posthoff
01
dx1 dx2
11
dx1 dx2
dx1 dx2 dx1 dx2
dx1 dx2
00
10
(x1 , x2 ) dx1 dx2
Fig. 3. Values of the function g(x1 , x2 ) = x1 ∨ x2 and their simple and vectorial derivatives for
(x1 , x2 ) = (1, 1).
3.
∂ g(x) ∂ g(x) ∂ g(x)
∇g(x) = g(x), , ,..., (22)
∂ x1 ∂ x2 ∂x
The local solutions (20) are the key to solve a BDe. The values of the simple
and vectorial derivatives in a single selected point of the Boolean space specify
the function values in all other points of this space. Figure 3 shows the function
g(x1 , x2 ) = x1 ∨ x2 where function values 1 are indicated by double circles, values 1
of derivatives are indicated by solid arrows, and values 0 of derivatives are indicated
by dotted arrows.
Example 2. Assume, we know the local solution for (x1 , x2 ) = (1, 1) as depicted in
Figure 3. Then we can conclude:
The BDe (19) contains all elements of ∇ f (x) either in non-negated or negated
form. hence, all these elements can be encoded by Boolean variables ui as shown
in Table 2.
Boolean Differential equations - a Common Model for Classes, Lattices, ... 109
Boolean Differential Equations – a Common Model for Classes, Lattices... 59
An important consequence of (23) is that the solutions of the BDe (19) consist
of classes of Boolean functions as characterized by Theorem 1; the proof is given
in [4, 5].
Theorem 1. If the Boolean function f (x) is a solution function of the Boolean
Differential Equation (19), then all Boolean functions
The set of local solutions SLS(u) expresses by u0 the function value in one
point of Bn and by ui , 0 < i < 2n , the values of changes with regard to all the other
points of Bn . The separation of function classes becomes easier when the function
value in all points of Bn are uniquely given. The function d2v (derivative to value)
uses (25) to transform the set SLS(u) into the set SLS′ (v).
v0 = u0 ,
vi = u0 ⊕ ui , with i = 1, 2, ..., 2n − 1 . (25)
110 B. STeINBACh AND C. PoSThoFF
60 B. Steinbach, C. Posthoff
Due to (24), the exchange of xi and xi does not change the set of solution func-
tions. The function epv (exchange of pairs of values) realizes this exchange:
SLST (v) = epv(SLS′ (v), i) . (26)
Applied to variables vi this exchange is described by:
v(m+2 k·2i−1 ) ⇐⇒ v(m+(2 k+1)·2i−1 ) , (27)
with i = 1, 2, ..., n ,
m = 0, 1, ..., 2i−1 − 1 ,
k = 0, 1, ..., 2n−i − 1 .
Table 3 enumerates the index pairs which are used in the function epv for Boolean
spaces up to B4 .
Tab. 3. Index pairs defined by (27) for the exchange of function values
The intersection of the given set SLS′ (v) with the exchanged set SLST (v) for all
variables xi separates the set of global solution functions from the local solutions
which are not sufficient. Algorithm 1 describes the procedure to solve the BDe
(19) in detail. The solution vectors v of Algorithm 1 specify, substituted into (28),
all solution functions of the BDe (19).
f (x1 , x2 , . . . , xn ) = x1 x2 . . . xn ∧ v0 ∨ x1 x2 . . . xn ∧ v1 ∨ . . . ∨ (28)
x1 x2 . . . xn ∧ v2n −1
Boolean space. Therefore, selected functions of the function classes can belong to
the set of solution functions. hence, a BDe (29) has an arbitrary set of Boolean
functions as solution.
A BDE (29) can be solved using a slightly modified algorithm. The variables x
remain in the associated Boolean equation (30) associated to (29):
Dl (u0 , u1 , . . . , u2n −1 , x1 , x2 , . . . , xn )
= Dr (u0 , u1 , . . . , u2n −1 , x1 , x2 , . . . , xn ) . (30)
A detailed analysis in [4] reveals that the local solutions must be split into the
cofactors S0 for xi = 0 and S1 for xi = 1 and the exchange of function pairs must be
restricted to S1 . Algorithm 2 describes the detailed steps to solve a BDe (29).
In addition to the simple and vectorial derivatives all other derivative operations can
be used within a BDe. We do not need special solution algorithms for such more
general Boolean Differential equations because the theorems of the BDC allow us
the transformation of all types of derivative operations into the elements of ∇ f (x)
112 B. STeINBACh AND C. PoSThoFF
62 B. Steinbach, C. Posthoff
(22).
∂ f (x)
min f (x) = f (x) ∧ (31)
xi ∂ xi
∂ f (x)
max f (x) = f (x) ∨ (32)
xi ∂ xi
∂ f (x0 , x1 )
min f (x0 , x1 ) = f (x0 , x1 ) ∧ (33)
x0 ∂ x0
∂ f (x0 , x1 )
max f (x0 , x1 ) = f (x0 , x1 ) ∨ (34)
x0 ∂ x0
∂ f (x) ∂ f (x) ∂ f (x)
min 2 f (x) = f (x) ∧ ∧ ∧ (35)
(x1 ,x2 ) ∂ x1 ∂ x2 ∂ (x1 , x2 )
∂ f (x) ∂ f (x) ∂ f (x)
max 2 f (x) = f (x) ∨ ∨ ∨ (36)
(x1 ,x2 ) ∂ x1 ∂ x2 ∂ (x1 , x2 )
∂ 2 f (x) ∂ f (x) ∂ f (x) ∂ f (x)
= ⊕ ⊕ (37)
∂ x1 ∂ x2 ∂ x1 ∂ x2 ∂ (x1 , x2 )
∂ f (x) ∂ f (x) ∂ f (x)
∆(x1 ,x2 ) f (x) = ∨ ∨ (38)
∂ x1 ∂ x2 ∂ (x1 , x2 )
(18) for which the solution classes can be calculated using Algorithm 1, or it results
in the BDe (29) so that the arbitrary solution set is found using Algorithm 2.
• conjunction fo = f1 ∧ f2 (intersection):
isc tni1 tni2 tno
• disjunction fo = f1 ∨ f2 (union):
uni tni1 tni2 tno
Example 3. Bent functions [7–9] are the most non-linear functions which are
needed in cryptography. The simplest bent functions are specified by the BDE:
∂ 2 f (x1 , x2 )
=1. (39)
∂ x1 ∂ x2
Using (37) we get the equivalent BDE:
This BDE contains two simple and and one vectorial derivative. Hence, it can be
solved using Algorithm 1. The associated Boolean equation of (40) is
u1 ⊕ u2 ⊕ u3 = 1 . (41)
1 s p a c e 32 1 14 maxk 3 4 5
2 avar 1 15 vtin 1 6
3 u0 u1 u2 u3 v0 v1 v2 v3 . 16 v0 v2 .
4 sbe 1 1 17 vtin 1 7
5 u1 # u2 # u3 = 1 . 18 v1 v3 .
6 sbe 1 2 19 cco 5 6 7 8
7 v0=u0 , 20 isc 5 8 9
8 v1=u0 #u1 , 21 v t i n 1 10
9 v2=u0 #u2 , 22 v0 v1 .
10 v3=u0 # u3 . 23 v t i n 1 11
11 isc 1 2 3 24 v2 v3 .
12 vtin 1 4 25 c c o 9 10 11 12
13 u0 u1 u2 u3 . 26 i s c 9 12 13
Fig. 4. Listing of the PRP to solve the BDe (40).
Figure 4 show the PRP that can be used by the XBOOLE-Monitor to solve
BDE (40). The solution of (41) is stored as XBOOLE-object 1. The lines 6 to 14
in Figure 4 realize the d2v-transformation of line 2 of Algorithm 1 so that the
XBOOLE-object 5 stores SLS′ (v). The first sweep of the loop in lines 3 to 6 of
Algorithm 1 is executed in lines 15 to 20 and the second sweep of this loop leads to
the XBOOLE-object 13 as final result in lines 21 to 26 of Figure 4.
Table 4 shows in the left part the solution TVL of BDE (40). The eight v-vectors
describe two classes of Boolean functions. The expressions of these functions are
built by the substitution of the v-vectors of the solution into (28). Table 4 shows
these functions in the right part associated to the classes 1 and 2.
• if both f1 (x) and f2 (x) belong to the lattice then f (x) = f1 (x)∧ f2 (x) belongs
also to this lattice of Boolean functions, and
116 B. STeINBACh AND C. PoSThoFF
66 B. Steinbach, C. Posthoff
v0 v1 v2 v3 class 1 class 2
0 1 1 1 x1 ∨ x2
1 0 0 0 x1 ∧ x2
1 0 1 1 x 1 ∨ x2
0 1 0 0 x1 ∧ x2
0 0 0 1 x1 ∧ x2
1 1 1 0 x1 ∨ x2
1 1 0 1 x1 ∨ x2
0 0 1 0 x 1 ∧ x2
• if both f1 (x) and f2 (x) belong to the lattice then f (x) = f1 (x)∨ f2 (x) belongs
also to this lattice of Boolean functions.
A lattice of Boolean function is very often used for the design of a digital circuit.
Based on another point of view, such a lattice is sometimes called incompletely
specified function (ISF).
one method to describe the lattice of functions of an ISF uses two mark func-
tions called:
1. oN-set q(x): all functions of the lattice must be equal to one for q(x) = 1,
and
2. oFF-set r(x): all functions of the lattice must be equal to zero for r(x) = 1.
Using these known mark functions each function f (x) of the set of functions
{ fi (x)} must hold the inequalities:
The system of equations (44) and (45) can be merged into a single Boolean
equation:
The functions q(x) and r(x) in (46) are known and can be represent by expres-
sions of Boolean variables connected by Boolean operations. The term f (x) in (46)
describes the unknown functions of the lattice. Hence, the equation (46) fits to the
type of Boolean Differential equations (29), where only f (x) and variables xi but
no simple or vectorial derivatives occur. All functions of a lattice which is specified
by the BDe (46) can be calculated using Algorithm 2.
u0 ∧ (x1 x3 ∨ x2 x3 ) ∨ u0 ∧ x1 x2 = 0 . (48)
Figure 5 shows the PRP that is used in the XBOOLE-Monitor to solve the BDE
(47). After the definition of the Boolean space B32 in line 1; the used variables are
defined in lines 2 to 5, and the associated Boolean equation is solved in lines 6 to 8.
The BDE (47) contains only f (x) out of the vector ∇ f (x) so that the transformation
d2v can be restricted to the mapping of u0 to v0 in lines 9 to 14.
Due to the existing variables xi Algorithm 2 must be used to separate the set of
solution functions. All steps of the loop of lines 3 to 8 of Algorithm 2 are realized
in lines 15 to 53 of the PRP in Figure 5. The lines 15 to 27 of the PRP describe
the first sweep of this loop for x1 . The indices of the variables vi are taken from the
first four rows of column i = 1 of Table 3 where the VT 11 uses the left values and
the VT 12 the right values. The intermediate solution of this sweep is stored into
the same XBOOLE-object 5 that represent the function S of Algorithm 2. Hence,
the fragment of lines 15 to 27 of the first sweep of the loop can be reused in lines 28
to 40 for the second sweep with x2 and the VTs specified by column i = 2 of Table
3 and in lines 41 to 53 for the third sweep with x3 and the VTs specified by column
i = 3 of Table 3, respectively.
v0 v1 v2 v3 v4 v5 v6 v7 solution functions
1 1 0 1 1 1 0 1 f1 (x) = x1 ∨ x2
1 1 0 1 0 1 0 1 f2 (x) = x1 ∨ x2 x3
1 1 0 0 1 1 0 1 f3 (x) = x1 x3 ∨ x2
1 1 0 0 0 1 0 1 f4 (x) = x1 x3 ∨ x2 x3
118 B. STeINBACh AND C. PoSThoFF
68 B. Steinbach, C. Posthoff
1 s p a c e 32 1 28 sbe 1 6
2 avar 1 29 x2 = 0 .
3 u0 30 isc 5 6 7
4 v0 v1 v2 v3 v4 v5 v6 v7 31 maxk 7 6 8
5 x1 x2 x3 . 32 cpl 6 6
6 sbe 1 1 33 isc 5 6 9
7 / u0&(x1&x3 + / x2 &/ x3 ) + 34 maxk 9 6 10
8 u0 & ( / x1&x2 ) = 0 . 35 v t i n 1 11
9 sbe 1 2 36 v0 v1 v4 v5 .
10 v0=u0 . 37 v t i n 1 12
11 isc 1 2 3 38 v2 v3 v6 v7 .
12 vtin 1 4 39 c c o 10 11 12 13
13 u0 . 40 i s c 8 13 5
14 maxk 3 4 5 41 sbe 1 6
15 sbe 1 6 42 x3 = 0 .
16 x1 = 0 . 43 isc 5 6 7
17 isc 5 6 7 44 maxk 7 6 8
18 maxk 7 6 8 45 cpl 6 6
19 cpl 6 6 46 isc 5 6 9
20 isc 5 6 9 47 maxk 9 6 10
21 maxk 9 6 10 48 v t i n 1 11
22 v t i n 1 11 49 v0 v1 v2 v3 .
23 v0 v2 v4 v6 . 50 v t i n 1 12
24 v t i n 1 12 51 v4 v5 v6 v7 .
25 v1 v3 v5 v7 . 52 c c o 10 11 12 13
26 c c o 10 11 12 13 53 i s c 8 13 5
27 i s c 8 13 5
Fig. 5. Listing of the PRP to solve the BDe (47).
Table 5 enumerates the four solution functions of the BDE (47) calculated by
the XBOOLE-Monitor using the PRP of Figure 5. The columns v3 and v4 show
that this lattice contains all functions which are smaller or equal to the supremum
function f1 (x) and greater or equal to the infimum function f4 (x).
each derivative operation transforms a given lattice of Boolean functions into an-
other lattice of Boolean functions. The resulting lattices are more general because
the function values 0 and 1 cannot only be chosen for a single x-pattern, but also for
Boolean Differential equations - a Common Model for Classes, Lattices, ... 119
Boolean Differential Equations – a Common Model for Classes, Lattices... 69
pairs of x-patterns. The proof that all derivative operations of any lattice result in
such a generalized lattice is given for the first time in [10]. The generalized lattices
are described in [10] by the mark function q(x) and r(x) as well as an independence
matrix (IDM) that have the shape of an echelon and elements below the main diag-
onal are equal to 0. The IDM describes all independent directions of change where
no function of the lattice changes its values. Associated to the independence ma-
trix IDM an independence function f id (x) is defined in [10]. Knowing the mark
functions q(x) and r(x) and the independence function f id (x), a Boolean equation
given in [10] allows us to check for each function f (x) whether it belongs to the
generalized lattice or not.
Instead of the two mark functions and the independence matrix we suggest here
a single Boolean Differential Equation to describe a generalized lattice of Boolean
functions. The directions, in which no function of the lattice changes its values,
are described in a restrictive BDe by simple and vectorial derivatives which are
connected by disjunctions (∨):
n
∂ f (x)
=0, (49)
i=1
∂ x0i
where
• i is the row index of the IDM,
u5 ∨ u6 = 0 . (51)
Figure 6 shows the PRP that is used in the XBOOLE-Monitor to solve the BDE
(50). After the definition of the Boolean space B32 in line 1; the used variables are
120 B. STeINBACh AND C. PoSThoFF
70 B. Steinbach, C. Posthoff
1 s p a c e 32 1 17 vtin 1 7
2 avar 1 18 v1 v3 v5 v7 .
3 u0 u5 u6 19 cco 5 6 7 8
4 v0 v1 v2 v3 v4 v5 v6 v7 . 20 isc 5 8 5
5 sbe 1 1 21 vtin 1 6
6 u5+u6 = 0 . 22 v0 v1 v4 v5 .
7 sbe 1 2 23 vtin 1 7
8 v0=u0 , 24 v2 v3 v6 v7 .
9 v5=u0 #u5 , 25 cco 5 6 7 8
10 v6=u0 # u6 . 26 isc 5 8 5
11 isc 1 2 3 27 vtin 1 6
12 vtin 1 4 28 v0 v1 v2 v3 .
13 u0 u5 u6 . 29 vtin 1 7
14 maxk 3 4 5 30 v4 v5 v6 v7 .
15 vtin 1 6 31 cco 5 6 7 8
16 v0 v2 v4 v6 . 32 isc 5 8 5
Fig. 6. Listing of the PRP to solve the BDe (50).
Table 6 enumerates the four solution functions of the BDE (50) calculated
by the XBOOLE-Monitor using the PRP of Figure 6. The solution of the BDE
(50) consists of three classes of Boolean functions. The class 1 only contains the
function f1 (x) = 1 that is the supremum r(x) of the lattice. Due to (24) a solution
class in B3 generally contains 23 = 8 functions. Two times four of these functions
are identical in case of class 2:
f2 (x) = x1 ⊕ x2 ⊕ x3 = x1 ⊕ x2 ⊕ x3 = x1 ⊕ x2 ⊕ x3 = x1 ⊕ x2 ⊕ x3 ,
f3 (x) = x1 ⊕ x2 ⊕ x3 = x1 ⊕ x2 ⊕ x3 = x1 ⊕ x2 ⊕ x3 = x1 ⊕ x2 ⊕ x3 .
The class 3 only contains the function f4 (x) = 0 that is the infimum q(x) of the
lattice. The solution lattice contains only two of 28 − 2 = 254 functions of B3
which are greater than q(x) = 0 and smaller than r(x) = 1. Nevertheless, the four
function of Table 6 constitute a lattice—both the conjunction and the disjunction
of any pair of these function result in one of these functions.
It should be mentioned that there are four different BDe having the same lattice
of solutions shown in Table 6. The most extended BDE with this solution lattice
is:
∂ f (x) ∂ f (x) ∂ f (x)
∨ ∨ =0. (52)
∂ (x1 , x2 ) ∂ (x1 , x3 ) ∂ (x2 , x3 )
The equivalent other three BDe with the same solution are built by omitting
one of the three vectorial derivatives:
∂ f (x) ∂ f (x)
∨ =0, (53)
∂ (x1 , x3 ) ∂ (x2 , x3 )
∂ f (x) ∂ f (x)
∨ =0, (54)
∂ (x1 , x2 ) ∂ (x2 , x3 )
∂ f (x) ∂ f (x)
∨ =0, (55)
∂ (x1 , x2 ) ∂ (x1 , x3 )
where (53) is identical with (50) and used in Example 5. The reason for these al-
ternative BDe with the same solution lattice is that only two of the three directions
of change in (52) of the vectorial derivatives are linearly independent. Two algo-
rithms in [10] describe how the unique independent directions of change can be
found. The BDe (53) is the unique representative BDe for the solution lattice of
Table 6.
Example 5 explores a generalized lattice with the special mark functions q(x) =
0 and r(x) = 0, in order to emphasize that only a special subset of functions between
these two mark function belong to the lattice. however, this restriction is not nec-
essary. The BDe (46) can be combined with the BDe (49) to the BDe of a most
122 B. STeINBACh AND C. PoSThoFF
72 B. Steinbach, C. Posthoff
general lattice:
n
∂ f (x)
f (x) ∧ q(x) ∨ f (x) ∧ r(x) ∨ =0. (56)
i=1
∂ x0i
1 s p a c e 32 1 41 isc 5 6 9
2 avar 1 42 maxk 9 6 10
3 u0 u5 u10 43 v t i n 1 11
4 v0 v1 v2 v3 44 v0 v1 v4 v5
5 v4 v5 v6 v7 45 v8 v9 v12 v13 .
6 v8 v9 v10 v11 46 v t i n 1 12
7 v12 v13 v14 v15 47 v2 v3 v6 v7
8 x1 x2 x3 x4 . 48 v10 v11 v14 v15 .
9 sbe 1 1 49 c c o 10 11 12 13
10 / u0 & ( / ( x1 # x3 )&( x2 # x4 ) ) + 50 i s c 8 13 5
11 u0 &(( x1 # x3 )&( x2 # x4 ) ) + 51 sbe 1 6
12 u5+u10 = 0 . 52 x3 = 0 .
13 sbe 1 2 53 isc 5 6 7
14 v0=u0 , 54 maxk 7 6 8
15 v5=u0 #u5 , 55 cpl 6 6
16 v10=u0 # u10 . 56 isc 5 6 9
17 isc 1 2 3 57 maxk 9 6 10
18 vtin 1 4 58 v t i n 1 11
19 u0 u5 u10 . 59 v0 v1 v2 v3
20 maxk 3 4 5 60 v8 v9 v10 v11 .
21 sbe 1 6 61 v t i n 1 12
22 x1 = 0 . 62 v4 v5 v6 v7
23 isc 5 6 7 63 v12 v13 v14 v15 .
24 maxk 7 6 8 64 c c o 10 11 12 13
25 cpl 6 6 65 i s c 8 13 5
26 isc 5 6 9 66 sbe 1 6
27 maxk 9 6 10 67 x4 = 0 .
28 v t i n 1 11 68 isc 5 6 7
29 v0 v2 v4 v6 69 maxk 7 6 8
30 v8 v10 v12 v14 . 70 cpl 6 6
31 v t i n 1 12 71 isc 5 6 9
32 v1 v3 v5 v7 72 maxk 9 6 10
33 v9 v11 v13 v15 . 73 v t i n 1 11
34 c c o 10 11 12 13 74 v0 v1 v2 v3
35 i s c 8 13 5 75 v4 v5 v6 v7 .
36 sbe 1 6 76 v t i n 1 12
37 x2 = 0 . 77 v8 v9 v10 v11
38 isc 5 6 7 78 v12 v13 v14 v15 .
39 maxk 7 6 8 79 c c o 10 11 12 13
40 cpl 6 6 80 i s c 8 13 5
5 C oNCLUSIoNS
The Boolean Differential Calculus extends the field of application of the Boolean
Algebra significantly. Simple and vectorial derivative operations evaluate pairs of
function values in the selected direction of change. The values of m-fold derivative
operations depend on values of the given function in whole subspaces.
An unknown function f (x) and derivative operations of this function appear in
Boolean expressions on both sides of a Boolean Differential Equation (BDe). The
solution of each BDE is a set of Boolean functions. This is an important extension
to a Boolean equation which has a set of binary vectors as solution.
The explored algorithms allow us to solve BDEs which describe either sets of
classes of Boolean functions or arbitrary sets of Boolean functions. We demon-
strated that these algorithms can easily be implemented using the XBooLe-Moni-
tor. The used problem programs (PRP) show all details of the introduced algorithms
to solve a BDe. Using the XBooLe-Library all these steps can be wrapped by
special programs such that the set of solution functions of a BDe is automatically
created.
The algorithms known from [4,5] are able to separate (depending on the type of
the BDe) either classes of solution functions or arbitrary sets of solution functions.
We presented in this paper special types of BDes which either combine certain
classes to a lattice of Boolean functions or restrict the arbitrary sets of solutions to
a lattice of Boolean functions.
There is a wide field of applications of BDEs. Many examples are explained
in [4]. here, we introduced three new types of BDes. All of them describe lattices
of Boolean functions.
1. A BDe of the type (46) describes a well known and widely used lattice of
Boolean functions that can alternatively be expressed by an incompletely
specified function. Such a BDE can be solved using Algorithm 2.
2. A BDE of the type (49) describes a lattice with the infimum function q(x) = 0
and the supremum function r(x) = 1 and can be solved using Algorithm
Boolean Differential equations - a Common Model for Classes, Lattices, ... 125
Boolean Differential Equations – a Common Model for Classes, Lattices... 75
1. Such a lattice contains not all functions which are greater than q(x) and
smaller than r(x).
3. A BDe of the more general type (56) merges the BDes of the cases 1 and 2.
Such a BDe must be solved using Algorithm 2 because the mark functions
q(x) and r(x) are not limited to the case 2.
It can be very difficult to find a BDE for a needed set of Boolean functions.
however, it is an advantage that BDes for lattices can be built in a straight manner
based on the mentioned types. Therefore, we call BDes of the types (46), (49), and
(56) Lattice-BDEs.
The result of a Lattice-BDe (49) or (56) is a generalized lattice of Boolean
functions that cannot be expressed by an incompletely specified function. In this
way these Lattice-BDEs opens many new fields of applications, e.g., in circuit de-
sign. Vice versa, the Lattice-BDe (46) is a sub-type of the most general Lattice-
BDE (56) so that the so far widely used lattices of Boolean functions fitting to an
incompletely specified Boolean function are integrated in the new theory in a nat-
ural manner. It is a challenge for the future to utilize Lattice-BDes for specific
applications.
R eFeReNCeS
[1] C. Posthoff and B. Steinbach, Logic Functions and Equations - Binary Models for
Computer Science. Dordrecht: Springer, 2004.
[2] B. Steinbach and C. Posthoff, “Boolean Differential Calculus,” in Progress in Appli-
cations of Boolean Functions. Morgan & Claypool Publishers, San Rafael, CA -
USA, 2010, pp. 55–78.
[3] ——, “Boolean Differential Calculus - theory and applications,” Journal of Compu-
tational and Theoretical Nanoscience, vol. 7, no. 6, pp. 933–981, 2010.
[4] ——, Boolean Differential Equations. Morgan & Claypool Publishers, 2013.
[5] B. Steinbach, “Lösung binärer Differentialgleichungen und ihre Anwendung auf
binäre Systeme,” Ph.D. dissertation, TH Karl-Marx-Stadt (Germany), 1981.
[6] D. Bochmann and C. Posthoff, Binre dynamische Systeme. Munich, Vienna: old-
enbourg, 1981.
[7] o. S. Rothaus, “on ”bent” functions,” J. Combinatorial Theory, vol. 20, pp. 300–305,
1976.
[8] B. Steinbach and C. Posthoff, “Classification and generation of bent functions,” in
Proceedings Reed-Muller 2011 Workshop, Gustavelund Conference Centre, Tuusula,
Finnland, 2011, pp. 81–91.
126 B. STeINBACh AND C. PoSThoFF
76 B. Steinbach, C. Posthoff
[9] ——, “Classes of bent functions identified by specific normal forms and generated
using boolean differential equations,” FACTA UNIVERSITATIS (NIŠ), vol. 24, no. 3,
pp. 357–383, 2011.
[10] B. Steinbach, “Generalized lattices of boolean functions utilized for derivative oper-
ations,” in Materiały konferencyjne KNWS’13, Łagów, Poland, 2013, pp. 1–17.