Функциональная полнота

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

Функциональная полнота множества логических операций или булевых функций — это возможность выразить все возможные значения таблиц истинности с помощью формул из элементов этого множества. Математическая логика обычно использует такой набор операций: конъюнкция ([math]\displaystyle{ \land }[/math]), дизъюнкция ([math]\displaystyle{ \lor }[/math]), отрицание ([math]\displaystyle{ \neg }[/math]), импликация ([math]\displaystyle{ \to }[/math]) и эквиваленция ([math]\displaystyle{ \leftrightarrow }[/math]). Это множество операций является функционально полным. Но оно не является минимальной функционально полной системой, поскольку:

[math]\displaystyle{ A \to B = \neg A \lor B }[/math]
[math]\displaystyle{ A \leftrightarrow B = (A \to B) \land (B \to A) }[/math]

Таким образом [math]\displaystyle{ \{\neg, \land, \lor\} }[/math] также является функционально полной системой. Но [math]\displaystyle{ \lor }[/math] также может быть выражено (в соответствии с законом де Моргана) как:

[math]\displaystyle{ A \lor B = \neg(\neg A \land \neg B). }[/math]

[math]\displaystyle{ \land }[/math] также может быть определена через [math]\displaystyle{ \lor }[/math] подобным образом.

Также [math]\displaystyle{ \vee }[/math] может быть выражена через [math]\displaystyle{ \rightarrow }[/math] следующим образом:

[math]\displaystyle{ \ A \vee B := (A \rightarrow B) \rightarrow B. }[/math]

Итак [math]\displaystyle{ \{\neg\} }[/math] и одна из [math]\displaystyle{ \{\land, \lor, \rightarrow\} }[/math] является минимальной функционально полной системой.

Критерий полноты

Критерий Поста описывает необходимые и достаточные условия функциональной полноты множеств булевых функций. Был сформулирован американским математиком Эмилем Постом в 1941 году.

Критерий:

Множество булевых функций является функционально полным тогда и только тогда, когда оно не содержится полностью ни в одном из предполных классов.

Минимальные множества бинарных операций

Множества из одного элемента
[math]\displaystyle{ \{ | \} }[/math] (штрих Шеффера), [math]\displaystyle{ \{ \darr \} }[/math] (стрелка Пирса)
Множества двух элементов
[math]\displaystyle{ \{ \lor, \lnot \}, \{ \land, \lnot \}, \{ \to, \lnot \}, \{ \to, \bot \}, \{ \not\to, \top \}, \{ \to, \not\to \}, \{ \to, \not\leftrightarrow \}, \{ \not\to, \leftrightarrow \} }[/math]
Множества трёх элементов
[math]\displaystyle{ \{ \lor, \leftrightarrow, \not\leftrightarrow \}, \{ \lor, \not\leftrightarrow, \top \}, \{ \land, \leftrightarrow, \bot \}, \{ \land, \leftrightarrow, \not\leftrightarrow \}, \{ \land, \not\leftrightarrow, \top \}, \{ \lor, \leftrightarrow, \bot \} }[/math].

То же в другой нотации:

[math]\displaystyle{ \bigl\langle \lor, \odot, \oplus \bigr\rangle }[/math], [math]\displaystyle{ \bigl\langle \lor, \oplus, 1 \bigr\rangle }[/math], [math]\displaystyle{ \bigl\langle \wedge, \odot, 0 \bigr\rangle }[/math], [math]\displaystyle{ \bigl\langle \wedge, \odot, \oplus \bigr\rangle }[/math], [math]\displaystyle{ \bigl\langle \wedge, \oplus, 1 \bigr\rangle }[/math] (см. алгебра Жегалкина), [math]\displaystyle{ \bigl\langle \lor, \odot, 0 \bigr\rangle }[/math] (инверсный к предыдущему).

См. также