Author's personal copy Solution of systems of Boolean equations via the integer domain Ahmed H. Abdel-Gawad, Amir F. Atiya * , Nevin M. Darwish Department of Computer Engineering, Cairo University, Giza, Egypt article info Article history: Received 2 March 2008 Received in revised form 8 September 2009 Accepted 18 September 2009 Keywords: System of Boolean equations Boolean variables Automatic test-pattern generation Multivariate polynomials Fast polynomial multiplication abstract This paper presents a new method for solving systems of Boolean equations. The method is based on converting the equations so that we operate in the integer domain. In the integer domain better and more efficient methodologies for solving equations are available. The conversion leads us to a system of polynomial equations obeying certain characteristics. A method is proposed for solving these equations. The most computationally demanding step is the repeated multiplication of polynomials. We develop a method for this problem that is significantly faster than the standard approach. We also introduce another variant of the method, the so-called hybrid approach, that leads to reduced memory requirements. Theoretical and experimental results indicate the superior performance of the proposed method and its variant compared to the competing methods. The proposed method is also validated by applying it to the problem of hardware verification. Ó 2009 Elsevier Inc. All rights reserved. 1. Introduction Since many decades during the history of digital science, Boolean variables have been the basic variables of use in the majority of the computer operations. Many basic problems involving Boolean variables are encountered, and some problems, in spite of the maturity of the field, do not have satisfactory solution methods. Among these is the problem of solving simul- taneous Boolean equations. Existing methods for this NP-complete problem are far from satisfactory and do not improve much over exhaustive methods. This problem has many applications such as the synthesis, simulation and testing of digital networks and VLSI systems, output encoding and state assignment of finite state machines [2], timing analysis and delay- fault test generation for combinational circuits [8], automatic test-pattern generation [6], and the determination of the initial state in circuits containing feedback loops. In the field of Cryptography, it has applications in the analysis and breaking of block ciphers as they can be reduced to the problem of solving a large-scale system of Boolean equations. In this paper, we propose an efficient method for solving systems of Boolean equations. Rather than confining ourselves to the Boolean domain, our idea is to convert the problem so that we operate in the integer domain. The integer domain is a richer domain to work with, as algorithms there are well-developed. Then, we pose the problem as that of solving a set of simultaneous multivariate polynomial equations; and develop a new fast algorithm for solving such equations. Several approaches have been proposed in the literature for the problem of solving simultaneous Boolean equations. All these methods operate in the Boolean domain. The simplest approach, based on Karnaugh maps, performs successive elim- ination of the variables in the equations [13,14]. This method utilizes ‘‘don’t care” and ‘‘can’t happen” conditions to aid in obtaining the solution. Another efficient algorithm for variable elimination is through function decomposition of Boolean functions represented by the so-called binary decision diagrams (BDD’s) [17]. In [10], a pure algebraic method is presented. In [16,11,15], a new graph-like representation for the Boolean equations is proposed. Furthermore, they propose certain 0020-0255/$ - see front matter Ó 2009 Elsevier Inc. All rights reserved. doi:10.1016/j.ins.2009.09.010 * Corresponding author. E-mail addresses: ah.hamdy@gmail.com (A.H. Abdel-Gawad), amir@alumni.caltech.edu (A.F. Atiya), ndarwish@ieee.org (N.M. Darwish). Information Sciences 180 (2010) 288–300 Contents lists available at ScienceDirect Information Sciences journal homepage: www.elsevier.com/locate/ins