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.Comment: 8 pages, 2 tables, comments welcom