Система булевых функций {f1 (x11,...,x1p1),...,fs (xs1,...,xsps),...} называется полной, если для любой булевой функции f (x1,...,xn) можно построить равную её функцию, представляющую собой результат суперпозиции функций {f1,...,fs,...} и x1,...,xn .
Примеры полных систем булевых функций.
1. x1x2, x1 ٧ x2,`x1. Полнота следует из того, что для каждой функции можно построить совершенные ДНФ и КНФ.
2. x1x2,`x1. Полнота следует из п.1 и равенства х1 ٧ х2 = `х1`х2 .
3. x1 ٧ x2, `x1. Полнота следует из п.1 и равенства х1х2 =`х1 ٧`х2 .
4. х1х2, х1 Å х2, 1. Полна, так как`х1 = х1 Å 1, а система x1x2,`x1 является полной (п.2).
Теорема 3. Любую булеву функцию f (x1,...,xn) можно представить в виде полинома
f (x1,x2,...,xn) = a0 Å a1x1 Å a2x2 Å...Å a2n-1x1…xn,
где ai Î{0,1}, i = 0, 1,...,2n-1.
Доказательство. Система функций х1х2, х1 Å х2, 1, 0 полна. Пользуясь правилами
A Å A = 0, A ∙ A = A, A Å 0 = A,
A ∙ 0 = 0, A ∙ 1 = A, A ∙ B = B ∙ A,
A Å B = B Å A, (A Å B) ∙ C = A ∙ C Å B ∙ C,
которые легко проверить, получим представление функции в виде полинома по модулю 2.
Легко показать, что представление функции в виде полинома по модулю два является единственным.
Как обнаружить полноту или неполноту булевых функций? Для решения этого вопроса познакомимся с пятью классами булевых функций.