decomposition of Boolean functions