Тема 6. Классы Поста и замыкание.
Функции, сохраняющие 0. Функции, сохраняющие 1.
Говорят, что булева функция сохраняет 0, если 𝑓(0,0, . . . ,0) = 0.
Говорят, что булева функция сохраняет 1, если 𝑓(1,1, . . . ,1) = 1.
Обозначим через 𝑻0 (𝑻1) множество всех булевых функций, сохраняющих 0 (1), а через 𝑻0(𝑛) (𝑻1 (𝑛)) множество функций от 𝑛 переменных, сохраняющих 0 (1).
Самодвойственные функции.
Булева
функция называется самодвойственной,
если она равна двойственной к ней, т.е.
на любом наборе (𝛼1,...,
𝛼n)
значений переменных (𝑥1,...,
𝑥n)
выполняется равенство 𝑓(𝛼1,...,
𝛼n)
=
.
Обозначим через 𝑺 множество всех самодвойственных функций, а через 𝑺(𝑛) множество самодвойственных функций от 𝑛 переменных.
Монотонные функции.
Если
для любого 𝑖
𝛼i
≤ 𝛽i
(𝑖
= 1,2,..., 𝑛),
то говорят, что вектор
= (𝛼1,
𝛼2,...,
𝛼n)
предшествует
вектору
= (𝛽1,
𝛽2,...,
𝛽n),
и пишут
≺̱
.
Заметим, что если номер вектора меньше номера вектора (и, значит, в таблице истинности стоит выше ), то это еще не значит, что предшествует . Чтобы выяснить, предшествует ли один вектор другому, нужно, согласно определению, сравнить их координаты (первую с первой, вторую со второй и т.д.).
Если имеет место хотя бы одно из соотношений ≺̱ или ≺̱ , то и называют сравнимыми.
Опр. Булева функция 𝑓 называется монотонной, если для любых наборов и значений переменных, таких что ≺̱ , выполняется неравенство 𝑓( ) ≤ 𝑓( ).
Обозначим через 𝑴 множество всех монотонных функций, а через 𝑴(𝑛) множество монотонных функций от 𝑛 переменных.
Чтобы убедиться в немонотонности функции, достаточно найти два булевых вектора и , такие что ≺̱ , а 𝑓( ) > 𝑓( ). Для вывода о монотонности нужно сравнить значения функции на всех парах сравнимых векторов.
Линейные функции.
Опр. Булева функция называется линейной, если ее полином Жегалкина имеет степень 0 или 1.
Иначе говоря, функция линейна, если ее можно представить формулой вида
𝑓 = 𝑏0 ⊕ 𝑏1 𝑥1 ⊕ 𝑏2𝑥2 ⊕. . .⊕ 𝑏n𝑥n.
Обозначим через 𝑳 множество всех линейных булевых функций, через 𝑳(𝑛) - множество линейных функций от 𝑛 переменных
Классы Поста.
Множества функций 𝑻0, 𝑻1, 𝑺, 𝑴, 𝑳 называют классами Поста.
Замыкание системы булевых функций.
Замыкание [𝔅] системы булевых функций 𝔅 - это множество всех функций, которые можно задать формулами над 𝔅.
Заметим что термин «система» используется в дискретной математике как синоним слова «множество».
Пример 12.
а) Пусть 𝔅 = {1, 𝑥}, тогда [𝔅] = {0,1, 𝑥, 𝑥̄ }.
б) Замыканием системы 𝔅 = {∧,∨, ¬} является множество всех булевых функций 𝑃2, поскольку любая булева функция представима в виде СДНФ или СКНФ.
в) Замыканием системы 𝔅 = {0,1,∧,⊕} является множество всех булевых функций 𝑃2, поскольку любая булева функция представима в виде полинома Жегалкина.
Опр. Система функций 𝕭 называется замкнутой, если [𝕭] = 𝕭.
Классы Поста 𝑻0, 𝑻1, 𝑺, 𝑴, 𝑳 являются замкнутыми множествами.
Тема 7. Полнота системы булевых функций.
Понятие полной системы.
Опр. Множество булевых функций 𝔅 = {𝑓1, 𝑓2,..., 𝑓m,...} называется полной системой, если любая булева функция может быть задана формулой над 𝔅.
Пример 1.
а) {∧,∨, ¬} - полная система, поскольку любая булева функция представима в виде СДНФ или СКНФ.
б) {0,1,∧,⊕} - полная система, поскольку любая булева функция представима в виде полинома Жегалкина.
в) {𝑥, 𝑥 ∧ 𝑦} - полная система, поскольку любую булеву функцию можно сначала выразить формулой над {∧,∨, ¬}, а затем заменить в этой формуле все дизъюнкции формулой 𝑥 ∨ 𝑦 = 𝑥 ∧ 𝑦. В итоге получится формула над {𝑥, 𝑥 ∧ 𝑦}.
Теорема о полноте двух систем.
Пусть заданы две системы булевых функций: 𝔅1 = {𝑓1, 𝑓2, ...} и 𝔅2 = {𝑔1, 𝑔2, ...}. Тогда, если система 𝔅1 - полная и каждая ее функция может быть задана формулой над 𝔅2, то система 𝔅2 тоже полная.
Лемма о функции, сохраняющей 0.
Пусть 𝑓 ∉ 𝑻0. Тогда формулой над множеством {𝑓} можно задать либо константу 1, либо отрицание.
Лемма о функции, сохраняющей 1.
Пусть 𝑓 ∉ 𝑻1. Тогда формулой над множеством {𝑓} можно задать либо константу 0, либо отрицание.
Лемма о самодвойственной функции.
Пусть 𝑓(𝑥1, 𝑥2, ..., 𝑥n) - несамодвойственная функция. Тогда формулой над множеством {𝑓, ¬} можно задать константы 0 и 1.
Лемма о монотонной функции.
Пусть 𝑓(𝑥1, 𝑥2, ..., 𝑥n) - немонотонная функция. Тогда формулой над множеством {𝑓, 0,1} можно задать отрицание.
Лемма о нелинейной функции.
Пусть 𝑓 ∉ 𝑳. Тогда формулой над множеством {𝑓, 0,1, } можно задать конъюнкцию.
Критерий полноты системы булевых функций (теорема Поста).
Для того чтобы система функций 𝔅 = {𝑓1, ..., 𝑓k } была полна, необходимо и достаточно, чтобы для каждого из классов Поста в 𝔅 нашлась функция 𝑓i, ему не принадлежащая.
Базисы.
Опр. Полная система функций называется базисом, если после удаления из нее любой функции получается неполная система.
