Основы алгебры логики

Критерий полноты [формулировка]. Лемма о немонотонной функции

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

Формулировка. Система булевых функций FF является полной тогда и только тогда, когда она целиком не принадлежит ни одному из замкнутых классов  S,M,L,T_0,T_1~S,M,L,T\_0,T\_1.

  1. монотонные функции { функция монотонно не убывает по каждому из своих аргументов } ;

  2. функции, сохраняющие нуль { функция от нуля даёт ноль } ;

  3. функции, сохраняющие единицу { функция от единицы даёт единицу } ;

  4. линейные функции { функция представима многочленом, в котором каждый член состоит из одной переменной } ;

  5. самодвойственные функции { функция двойственна сама себе } .

Лемма: Суперпозицией нелинейной функции, отрицания и константы 11 можно получить конъюнкцию.

Доказательство: Пусть f(x_1,x_2,...,x_n)f(x\_1, x\_2 , ..., x\_n) — нелинейная функция, тогда полином Жигалкина для нее содержит слагаемое, в котором присутствует произведение каких-то переменных $x\_i\*x\_j$. Пусть для простоты это будет произведение x_1x_2x\_1x\_2. Произведя группировку слагаемых в полиноме Жегалкина для ff относительно x_1x_2,x_1,x_2x\_1x\_2, x\_1, x\_2, функцию ff представим в виде $f(x\_1,..., x\_n)=x\_1\*x\_2\*h\_0(x\_3,...,x\_n)+$ { собрали все слагаемые с $x\_1\*x\_2$ и вынесли $x\_1\*x\_2$ за скобки. В скобках осталась сумма h_0(x_3,...,x_n)h\_0(x\_3,...,x\_n), в которой переменных x_1,x_2x\_1, x\_2 нет } +x_1∗h_1(x_3,...,x_n)+x_2∗h_2(x_3,...,x_n)+h_3(x_3,...,x_n)+ x\_1*h\_1(x\_3,..., x\_n) + x\_2*h\_2(x\_3,..., x\_n) + h\_3(x\_3,..., x\_n)

Функция h_0(x_3,...,x_n)≠0h\_0(x\_3,..., x\_n) \neq 0, в противном случае многочлен Жигалкина слагаемых с произведением x_1x_2x\_1x\_2 не имеет, тогда существует набор (a_3,...,a_n)(a\_3,..., a\_n) из 00 и 11, для которого h_0(a_3,...,a_n)=1h\_0(a\_3,..., a\_n) = 1. Пусть на этом наборе h_1(a_3,...,a_n)=a;h_2(a_3,...,a_n)=b;h_3(a_3,...,a_n)=ch\_1(a\_3,..., a\_n)=a; h\_2(a\_3,..., a\_n)=b; h\_3(a\_3,..., a\_n)=c. Тогда функция $g(x\_1,x\_2)= f(x\_1,x\_2,a\_3,..., a\_n)=x\_1\*x\_2+a\*x\_1+b\*x\_2+c$. Построим функцию h(x_1,x_2)=g(x_1+bx_2+a)=(x_1+b)h(x\_1,x\_2) = g(x\_1+bx\_2+a) =(x\_1+b) $(x\_2+a)+a(x\_1+b)+b(x\_2+a)+c = x\_1\*x\_2+a\*x\_1+b\*x\_2+a\*b+a\*x\_1+a\*b+b\*x\_2+a\*b+c$ $=\_1\*x\_2+a\*b+c=x\_1\*x\_2+d, d=a\*b+c$

Если d=0d=0, то $h(x\_1,x\_2)=x\_1\*x\_2$, конъюнкция получена. Если d=1d=1, то $h(x\_1,x\_2)=x\_1\*x\_2+1 \Rightarrow x\_1\*x\_2=\bar { h } (x\_1,x\_2)$, что и требовалось доказать.

Другие статьи из категории

Похожие статьи

Все статьи →

Основы алгебры логики

Теорема об аналоге СДНФ в Pk

Аналог СДНФ в Pk позволяет однозначно представлять любую функцию k-значной логики через комбинации значений переменных и их отрицаний.…

Основы алгебры логики

Теорема о заведомо полныx системаx

Заведомо полная система функций гарантирует возможность реализации всех возможных отображений в рамках k-значной логики. Для проверки…

Основы алгебры логики

Класс Te . Теорема о замкнутости Te

Класс Te включает все функции, для которых выполнено условие сохранения константы e. Замкнутость класса означает, что любая суперпозиция…

Основы алгебры логики

Лемма о построении множества F[x1,x2]

Множество F[x1,x2] представляет собой набор всех возможных отображений пар значений [x1,x2] в множество значений k-значной логики. Лемма…

Основы алгебры логики

Теорема об алгоритме распознавания полноты

Алгоритм распознавания полноты позволяет определить, можно ли с помощью заданной системы функций выразить любую функцию из Pk. Для этого…

Нужен расчёт?

Пришлите исходные данные — уточним состав работы и ответим по срокам.

Связаться