In this paper, we propose a new heuristic to find common subexpressions of given Boolean functions based on Shannon-type factoring. This heuristic limits the search space of finding common subexpressions considerably by applying a top-down approach. In this top-down approach, synthesis of a Boolean network flows from the primary outputs to the primary inputs. The common subexpressions and their complements in N variables are extracted before common subexpressions and their complements in (N - 1) variables. This decomposition of the network depends upon a permutation of Boolean variables and has a polynomial complexity for restricted extraction of complements. A multilevel logic optimization system, MULTI, has been implemented using this heu...