Paper 2020/530

Determining the Multiplicative Complexity of Boolean Functions using SAT

Mathias Soeken


We present a constructive SAT-based algorithm to determine the multiplicative complexity of a Boolean function, i.e., the smallest number of AND gates in any logic network that consists of 2-input AND gates, 2-input XOR gates, and inverters. In order to speed-up solving time, we make use of several symmetry breaking constraints; these exploit properties of XAGs that may be useful beyond the proposed SAT-based algorithm. We further propose a heuristic post-optimization algorithm to reduce the number of XOR gates once the optimum number of AND gates has been obtained, which also makes use of SAT solvers. Our algorithm is capable to find all optimum XAGs for representatives of all 5-input affine-equivalent classes, and for a set of frequently occurring 6-input functions.

Available format(s)
Publication info
multiplicative complexitylogic synthesisXOR AND graphsSAT solvers
Contact author(s)
mathias soeken @ outlook com
2020-05-06: received
Short URL
Creative Commons Attribution


      author = {Mathias Soeken},
      title = {Determining the Multiplicative Complexity of Boolean Functions using SAT},
      howpublished = {Cryptology ePrint Archive, Paper 2020/530},
      year = {2020},
      note = {\url{}},
      url = {}
Note: In order to protect the privacy of readers, does not use cookies or embedded third party content.