Keywords

These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

1 Introduction

There are two basic approaches to find the structure of a combinatorial circuit for a given behavior. These are either covering methods or decomposition methods. One of the decomposition methods is the bi-decomposition. The basic idea of the bi-decomposition is that the given function is built by an AND-gate, an OR-gate, or by an XOR-gate of two inputs. If one of these gates splits the given function into two simpler functions, a complete circuit structure must be found after a certain number of decomposition steps.

However, two complicate functions, which control the inputs of one of these gates, can be merged by the gate into a simpler output function. In this case, the decomposition does find a circuit structure with a finite number of gates.

The bi-decomposition [1, 3] ensures the simplification in each decomposition step because it restricts to subfunctions of the decomposition which depend on less variables than the given function. The known bi-decomposition approach even detects existing subfunctions which depend on the smallest number of variables. Of course, such very simple subfunctions should be utilized in a decomposition, because they reduce the number of required decomposition gates and contribute to short path lengths.

There are Boolean functions for which no strong bi-decomposition exists. In such a case, a weak bi-decomposition finds one simpler subfunction and extends the other subfunctions to a lattice of functions. A complete circuit structure can be synthesized for each Boolean function only using the AND-, the OR-, and the XOR-bi-decomposition, and additionally the weak AND-, and the weak OR-bi-decomposition.

The drawback of this approach is that weak bi-decompositions are needed to reach the completeness and each bi-decomposition step adds one gate to the path of the decomposed function. An interesting question is whether the weak bi-decomposition can be substituted by a bi-decomposition into simpler subfunctions which depend on the same number of variables as the given function to decompose. This paper combines the knowledge of two other approaches to answer this question.

One of these approaches is generalization of lattices of Boolean functions. The independence of a function from a single variable can be detected by a simple derivative of the Boolean Differential Calculus [4]. The \(2^{2^{n-1} }\) functions of \(\mathbb{B}^{n}\) which are independent of a single variable x i belong to the well-known lattice. In [5, 7] the existence of more general lattices are introduced in which a vectorial derivative overtake the role of the simple derivative. Functions of such lattices depend on all variables but are simpler than other functions of \(\mathbb{B}^{n}\). It is possible to utilize these new found lattices for the bi-decomposition?

Another source to find simpler functions utilizes the Specialized Normal Form (SNF) [6]. The SNF is a unique ESOP representation of a Boolean function and the number of cubes in the SNF indicates the complexity of the function [8]. It arises the question about the relation of these two approaches and the possibilities to utilize such information for the bi-decomposition. The latest results of the research in this field are summarized in this paper.

To make the paper self-contained, Section 2 gives the needed definitions of derivatives, Section 3 introduces the basic principle of the SNF, and Section 4 very briefly explains the bi-decomposition approach. The results of the main analysis are explored in Section 5. This analysis studies the relations between the complexity provided by the SNF and dependencies of all functions of \(\mathbb{B}^{4}\) regarding all directions of change. An example in Section 6 demonstrates achievable benefits of the suggested extended approach of the bi-decomposition before Section 7 concludes the paper.

2 Simple and Vectorial Derivative

The simple derivative of a Boolean function f(x) with regard to the variable x i describes for which patterns of the remaining variables the change of the x i -value causes the change of the function value.

Definition 1

Let f(x) = f(x 1, , x i , , x n ) be a Boolean function of n variables, then

$$\displaystyle{ \frac{\partial f(\mathbf{x})} {\partial x_{i}} = f(x_{1},\ldots,x_{i},\ldots,x_{n}) \oplus f(x_{1},\ldots,\overline{x}_{i},\ldots,x_{n}) }$$
(1)

is the (simple) derivative of the Boolean function f(x) with regard to the variable x i .

The simple derivative \(\frac{\partial f(\mathbf{x})} {\partial x_{i}}\) is again a Boolean function. If

$$\displaystyle{ \frac{\partial f(\mathbf{x})} {\partial x_{i}} = 0 }$$
(2)

then the function f(x) is independent of the variable x i . From Definition (1) follows the welcome property that the result function of the simple derivative \(\frac{\partial f(\mathbf{x})} {\partial x_{i}}\) does not depend on the variable x i anymore.

$$\displaystyle{ \frac{\partial } {\partial x_{i}}\left(\frac{\partial f(\mathbf{x})} {\partial x_{i}} \right) = 0 }$$
(3)

holds for all Boolean functions f(x) of \(\mathbb{B}^{n}\).

The vectorial derivative of function f(x) has a similar meaning like the simple derivative. The difference is that in the case of the vectorial derivative several variables change their values at the same point in time.

Definition 2

Let x 0 = (x 1, x 2, . . . , x k ), \(\mathbf{x}_{1} = (x_{k+1},x_{k+2},...,x_{n})\) be two disjoint sets of Boolean variables, and \(f(\mathbf{x}_{0},\mathbf{x}_{1}) = f(x_{1},x_{2},...,x_{n}) = f(\mathbf{x})\) a Boolean function of n variables, then

$$\displaystyle{ \frac{\partial f(\mathbf{x}_{0},\mathbf{x}_{1})} {\partial \mathbf{x}_{0}} = f(\mathbf{x}_{0},\mathbf{x}_{1}) \oplus f(\overline{\mathbf{x}}_{0},\mathbf{x}_{1}) }$$
(4)

is the vectorial derivative of the Boolean function f(x 0, x 1) with regard to the variables of x 0.

The vectorial derivative \(\frac{\partial f(\mathbf{x}_{0},\mathbf{x}_{1})} {\partial \mathbf{x}_{0}}\) is also a Boolean function, but differently to the simple derivative, a vectorial derivative depends in general on all variables (x 0, x 1) like the given function f(x 0, x 1). However, a vectorial derivative is also simpler than the given function, because:

$$\displaystyle{ \frac{\partial } {\partial \mathbf{x}_{0}}\left(\frac{\partial f(\mathbf{x}_{0},\mathbf{x}_{1})} {\partial \mathbf{x}_{0}} \right) = 0 }$$
(5)

holds for all Boolean functions f(x 0, x 1).

3 Specialized Normal Form - SNF

The Specialized Normal Form was found in a research for minimal Exclusive-OR Sum Of Products (ESOPs) in [6]. The number of cubes in the SFN allows us to distinguish several complexity classes of functions in \(\mathbb{B}^{n}\). Further subclasses were detected in [8] using the Hamming distance δ between the cubes of an SNF.

The SNF utilizes the following algebraic property of the exclusive-or operation (⊕) and the Boolean variable x:

$$\displaystyle\begin{array}{rcl} x = \overline{x} \oplus 1& &{}\end{array}$$
(6)
$$\displaystyle\begin{array}{rcl} \overline{x} = 1 \oplus x& &{}\end{array}$$
(7)
$$\displaystyle\begin{array}{rcl} 1 = x \oplus \overline{x}.& &{}\end{array}$$
(8)

These three formulas show that each element of the set \(\left\{x,\overline{x},1\right\}\) has isomorphic properties. For each variable in the support of the Boolean function f, exactly one left-hand side element of (6), (7), or (8) is included in each cube of an ESOP of f. An application of these formulas from the left to the right doubles the number of cubes and is called expansion. The reverse application of these formulas from the right to the left halves the number of cubes and is called compaction.

The procedure to construct the SNF utilizes one more property the Boolean function f, a cube C, and the exclusive-or operation:

$$\displaystyle\begin{array}{rcl} f = f \oplus 0& &{}\end{array}$$
(9)
$$\displaystyle\begin{array}{rcl} 0 = C \oplus C& &{}\end{array}$$
(10)
$$\displaystyle\begin{array}{rcl} f = f \oplus C \oplus C.& &{}\end{array}$$
(11)

From these formulas follows that two identical cubes can be added to or removed from any ESOP without changing the represented function. The SNF can be defined using two simple algorithms based on the properties mentioned above.

The expand() function in line 3 of Algorithm 1 expands the cube C j with regard to the variable V i into the cubes C n1 and C n2 based on the fitting formula (6), …, (8). Algorithm 1 realizes this expansion for all variables of all cubes of a given ESOP. Assuming n variables in the given ESOP, this Algorithm distributes the information about each given cube to 2n cubes, similar to the creation of a hologram of an object. Algorithm 2 removes all pairs of cubes using the formulas (9), (10), and (11) so that a unique ESOP of the Boolean function f remains.

Algorithm 1 Exp(f)
Algorithm 2 R(f)

Using Algorithms Exp(f) and R(f) it is possible to create a special ESOP having a number of remarkable properties which are specified and proven in [6].

Definition 3 (SNF(f))

Take any ESOP of a Boolean function f. The ESOP resulting from

$$\displaystyle{ SNF(f) = R(Exp(f)) }$$
(12)

is called the Specialized Normal Form (SNF) of the Boolean function.

4 Bi-Decomposition

A bi-decomposition (see left part of Figure 1) decomposes a function f(x a , x b , x c ) into two subfunctions g(x a , x c ) and h(x b , x c ). Both subfunctions are simpler than the given function f(x a , x b , x c ) due to the missing variables x b in the subfunction g(x a , x c ) and the missing variables x a in the subfunction h(x b , x c ).

Fig. 1
figure 1

Circuit structures of bi-decompositions: (a) AND-bi-decomposition; (b) OR-bi-decomposition; (c) XOR-bi-decomposition; (d) weak AND-bi-decomposition; (e) weak OR-bi-decomposition

There are three types of by bi-decompositions shown in the left part of Figure 1. It is a property of the function f(x a , x b , x c ) whether a bi-decomposition exists with regard to one of the decomposition-gates. An empty set of variables \(\left\{\mathbf{x}_{c}\right\}\) and the split of the set of all variables \(\left\{\mathbf{x}\right\}\) into the subsets \(\left\{\mathbf{x}_{a}\right\}\) and \(\left\{\mathbf{x}_{b}\right\}\) of the same size contributes best to the synthesis of a circuit by bi-decomposition. However, only few functions have this welcome property.

A necessary condition of the bi-decomposition [4] is that both the set of variables \(\left\{\mathbf{x}_{a}\right\}\) and the set of variables \(\left\{\mathbf{x}_{b}\right\}\) contains at least one variable. In the limit case of single variables in the sets \(\left\{\mathbf{x}_{a}\right\}\) and \(\left\{\mathbf{x}_{b}\right\}\), we can assume x i  = x a and x j  = x b ; nevertheless both subfunctions of the bi-decomposition are simpler than the given function f(x i , x j , x c ) because:

$$\displaystyle{ \frac{\partial g(x_{i},\mathbf{x}_{c})} {\partial x_{j}} = 0\,\ \mbox{ and }\ \frac{\partial h(x_{j},\mathbf{x}_{c})} {\partial x_{i}} = 0. }$$
(13)

Unfortunately, there are functions for which no bi-decomposition exists. Le [2] additionally suggested for such cases the weak bi-decomposition. The function to decompose must hold a certain condition [4] for the weak AND-bi-decomposition (Figure 1 (d)) and the weak OR-bi-decomposition (Figure 1 (e)). Only the subfunction h(x c ) is simpler due to the missing variables x a . The function g(x a , x c ) of a weak bi-decomposition depends on the same variables as the given function f(x a , x c ), however, this function can be chosen from a larger lattice of functions.

A weak XOR-bi-decomposition can be realized for each pair of functions f(x a , x c ), h(x c ). However, the subfunction g(x a , x c ) can be more complicated than the given function f(x a , x c ). For that reason the weak XOR-bi-decomposition is excluded from the synthesis approach by bi-decomposition.

The recursive application of one of the three types of the bi-decomposition together with the weak OR-bi-decomposition and weak AND-bi-decomposition enables a complete multilevel design of each function. This completeness follows from Theorem 1 found by Le [2].

Theorem 1

If the function f( x a, x c ) is neither weakly OR-bi-decomposable nor weakly AND-bi-decomposable with regard to a single variable x i = x a , then the function f(x i , x b ) is disjointly XOR-bi-decomposable with regard to the single variable x i and the set of variables \( \left\{\mathbf{x}_{b}\right\} = \left\{\mathbf{x}_{c}\right\} \).

The proof of Theorem 1 is also given in [4].

5 Experimental Results

The key of the bi-decomposition is that each created subfunction is either independent of at least one variable x i , which can be checked by (2); or the created subfunction belongs to a larger lattice than the given function f(x). After several extensions, such a lattice contains a function f(x) that also holds (2). The larger the number of variables from which all functions of the lattice are independent the simpler circuits can be synthesized by bi-decomposition.

In [7, 5] was shown, that

  1. 1.

    there are lattices of Boolean functions which do not depend on a certain number of variables;

  2. 2.

    the constant value 0 of the simple derivative (1) of such a function with regard to a respective variable indicates this property;

  3. 3.

    the constant value 0 of a vectorial derivative (1) also indicates a simpler function;

  4. 4.

    there are 2n − 1 directions of change in \(\mathbb{B}^{n}\);

  5. 5.

    the number of independent directions of change for lattices in \(\mathbb{B}^{n}\) is restricted to n.

From these findings arises the question whether vectorial derivatives can be utilized to find simpler subfunctions of a bi-decomposition. An alternative measure of the complexity of a Boolean function f(x) is the number of cubes in the SNF(f(x)) [6, 8]. An experiment allows us to evaluate these properties form a more general point of view.

For that reason we calculated for all 65,536 Boolean functions f(x) of \(\mathbb{B}^{4}\) the number of cubes in the SNF(f(x)) and all simple and vectorial derivatives. Table 5 summarizes these experimental results as follows:

  • column 1 contains the numbers of functions of one complexity class of the SNF;

  • column 2 lists the numbers of cubes of the SNF class as measure of the complexity;

  • column 3 enumerates the numbers of simple derivatives which are equal to 0 for the evaluated functions (number of independent variables);

  • in \(\mathbb{B}^{4}\) there are six vectorial derivatives with regard to two variables; column 4 specifies how many of these vectorial derivatives are equal to 0;

  • in \(\mathbb{B}^{4}\) there are four vectorial derivatives with regard to three variables; column 5 specifies how many of these vectorial derivatives are equal to 0;

  • in \(\mathbb{B}^{4}\) there is one vectorial derivative with regard to all four variables; a value 1 in column 6 specifies that this vectorial derivative is equal to 0;

  • the most right column 7 gives the numbers of functions with the properties introduced above.

Table 1 Evaluation of all functions of \(\mathbb{B}^{4}\) regarding the SNF and vectorial derivatives

As could be expected, functions of \(\mathbb{B}^{4}\) which do not depend on all four variables have small values of \(\left\vert \mbox{ SNF}(f(\mathbf{x}))\right\vert \). Column 3 of Table 5 shows the number of variables the evaluated functions do not depend on. The complete evaluation of all Boolean functions of \(\mathbb{B}^{4}\) reveals that there are simple functions which depend on all four variables, but are independent of the common change of more than one variable; e.g., 48 functions with \(\left\vert \mbox{ SNF}(f(\mathbf{x}))\right\vert = 24\) and one vectorial derivative with regard to two variables which is equal to 0, 32 functions with \(\left\vert \mbox{ SNF}(f(\mathbf{x}))\right\vert = 28\) and one vectorial derivative with regard to three variables which is equal to 0, 8 functions with \(\left\vert \mbox{ SNF}(f(\mathbf{x}))\right\vert = 30\) and one vectorial derivative with regard to all four variables which is equal to 0, and many more.

An interesting result is that there are also simple functions, which depend on all variables, and which also depend on all other directions of change. An example is the function f(x) = x 1x 2x 3x 4 with \(\left\vert \mbox{ SNF}(f(\mathbf{x}))\right\vert = 16\) for which neither any simple derivative nor any vectorial derivative is equal to 0.

6 Example of a Bi-Decomposition Controlled by \(\left\vert \mbox{ SNF}(f)\right\vert \)

A simple example shows the advantage of the bi-decomposition controlled by \(\left\vert \mbox{ SNF}(f)\right\vert \). The function (14) is a symmetric function. It is known that there is no classical bi-decomposition for this function.

$$\displaystyle{ f = x_{1}\,x_{2}\,x_{3}\,\overline{x}_{4} \vee x_{1}\,x_{2}\,\overline{x}_{3}\,x_{4} \vee x_{1}\,\overline{x}_{2}\,x_{3}\,x_{4} \vee \overline{x}_{1}\,x_{2}\,x_{3}\,x_{4} }$$
(14)
Fig. 2
figure 2

Circuit structure of the function (14) designed by bi-decomposition controlled by the independence of variables.

Fig. 3
figure 3

Circuit structure of the function (14) designed by bi-decomposition controlled by \(\left\vert \mbox{ SNF}(f)\right\vert \).

The classical bi-decomposition approach requires two weak AND-bi-decompositions (realized by the AND-gates g 6 and g 7 of Figure 2) before an XOR-bi-decomposition (realized by the XOR-gate g 5 of Figure 2) can be applied. Due to the weak AND-bi-decompositions there is no balanced path length. The shortest path contain only two gates (g 4 and g 7) and the longest path contains even four gates (g 1, g 5, g 6, and g 7). It should be mentioned that \(\left\vert \mbox{ SNF}(f)\right\vert = 40\) and the first weak AND-bi-decomposition increases the complexity: \(\left\vert \mbox{ SNF}(g_{6})\right\vert = 44\), but utilizes the independence: \(\frac{\partial g_{6}(\mathbf{x})} {\partial (x_{3},x_{4})} = 0\).

The new bi-decomposition controlled by \(\left\vert \mbox{ SNF}(f)\right\vert \) decomposes the same function f(x) (14) with \(\left\vert \mbox{ SNF}(f)\right\vert = 40\) into two subfunctions g 5 and g 6 (see Figure 3). Each of these two subfunctions depends on all four variables. Hence, the condition of the classical bi-decomposition is not achieved. However, these two subfunctions are simpler measured by the number of cubes in the SNF:

$$\displaystyle{ \left\vert \mbox{ SNF}(g_{5})\right\vert = \left\vert \mbox{ SNF}(g_{6})\right\vert = 24\, }$$
(15)

and one vectorial derivative of theses functions with regard to two variables is equal to 0. The number of gates remains 7, but the benefit of the circuit structure of Figure 3 is that all paths contain the same number of only two gates. Hence, the proof of concept of the bi-decomposition controlled by \(\left\vert \mbox{ SNF}(f)\right\vert \) is achieved.

7 Conclusions

The experimental results in Table 5 confirm that not only zero-functions of simple derivatives but also zero-functions of vectorial derivatives indicate simple functions. The number of cubes in the SNF is an additional indicator for a more general bi-decomposition approach. The comparison of the circuit structures of the same function (14) using the classical bi-decomposition in Figure 2 and the new extended bi-decomposition in Figure 3 confirm that the proof of concept of the bi-decomposition controlled by \(\left\vert \mbox{ SNF}(f)\right\vert \) is achieved.