Игошин Математическая логика и теория алгоритмов (1019110), страница 26
Текст из файла (страница 26)
Следовательно, эти функции равны и доказываемая формула справедлива. Совершенно аналогично доказывается в т о р а я формула. С) Заметим, что подобным образом могут быть записаны формулы разложения булевой функции по любой ее переменной. Запишите, например, такие разложения по последней переменной. 103 Теорема 10.5 (о представлении булевых функций через коньюнкцию, дизъюнкцию и отрицание). Всякая булева функция Яхь хъ „,, х„) может быть представлена в виде суперпозиции коньюнкции, дизьюнкции и отрицания; причем знак отрицания стоит только непосредственно около переменной и не стоит ни перед одной из внутренних скобок.
Доказательство будем вести методом математической индукции по числу и аргументов функции у". В предыдущем параграфе перечислены все булевы функции от одного аргумента. Их всего четыре. Напомним их (используя равенства теоремы 9.3, и): Ях) = 0 = х х', ~~(х) = х, Л(х) = х', ~(х) = 1 = х ~~ х'.
Отсюда видно„что все функции от одного аргумента выражаются через конъюнкцию, дизъюнкцию и отрицание; причем знак отрицания стоит только непосредственно около переменных. Это означает, что утверждение теоремы справедливо при и = 1. Предположим, что теорема верна для всех функций от к аргументов. Докажем ее для функций от к+ 1 аргумента.
Пусть|(хь ..., хы хь,,) — произвольная булева функция от /с+ 1 аргумента. На основании предыдущей леммы запишем разложение данной функции по последней переменной: з(хь ..., х„, хь,,) = (хь,| з(хь ..., х, 1)) ч (х'„.)"(хв ..., х, О)). Как отмечалось в начале настоящего параграфа, фиксирование в булевой функции одного аргумента приводит к булевой функции с числом аргументов на единицу меньшим, нежели число аргументов исходной функции. Так что каждая из функций ~(хь ..., хы 1) и Яхь ..., хм О) есть булева функция от к аргументов. Но согласно предположению индукции, все такие функции выражаются через конъюнкцию, дизъюнкцию и отрицание, причем знак отрицания стоит только непосредственно около переменных и не стоит ни перед одной из внутренних скобок.
Принимая это во внимание, видим, что правая часть последнего равенства представляет собой суперпозицию лишь трех функций — конъюнкции, дизъюнкции и отрицания. Причем отрицание стоит около переменной х„,, Это и доказывает окончательно теорему. П Булевы функции и формулы алгебры высказываний.
Установим сначала соответствие между формулами алгебры высказываний и булевыми функциями. Это делается следующим образом. Во-первых, определяется взаимно-однозначное соответствие между пропозициональными переменными и булевыми переменными, при котором прописная буква, обозначающая пропозициональную переменную, соответствует той же самой строчной букве, обозначающей булеву переменную: Р, О, Л, Х У, 2, Хь Хъ ." )'о ~'з ,о, а, г, х, у, 7, хо х,, ..., уь уъ 104 Во-вторых, устанавливается соответствие между знаками логических связок и одноименных булевых функций: Наконец скобкам ставятся в соответствие те же скобки. Тогда каждой формуле алгебры высказываний соответствует единственная булева функция, а каждой булевой функции соответствует формула алгебры высказываний.
Чтобы найти для данной формулы алгебры высказываний соответствующую ей булеву функцию, достаточно каждую прописную букву формулы заменить на такую же строчную букву, а каждый символ логической операции — на символ одноименной булевой функции. Например„формуле (Р ~-э Д) -+ ((-,Х, ~ Х,) л У) соответствует булева функция (р +.э д') — > ((х,' ~ хг) г'). Если булева функция задана с помощью формулы, то для того чтобы найти соответствующую этой функции формулу алгебры высказываний, нужно в выражении для булевой функции заменить строчные буквы такими же прописными буквами, а каждый символ булевой функции ',, ~~, — ~, <-+ заменить соответственно символом одноименной логической операции, л, ~, ->, ~-э. Здесь возникает неоднозначность такого обратного соответствия, поскольку булева функция может иметь множество различных формульных выражений.
Например, функция, рассмотренная в предыдущем абзаце, имеет также следующие формульные выражения: (Р е-> Д') -Ф (х,' . 2' ъ хз . з'); ((Р— ~ м7) ' (Д + Р)) + ((х~ '4 хз) 7) ((р' ч д') (р ч д)) -+ (х,' г' г х, г') и т.д. Этим выражениям сопоставляются соответственно следующие формулы алгебры высказываний: (Р~-> -О) — ~ (( Х1 л У) и (Хг л У)); ((Р— > О) л (- Д вЂ” > Р)) -> (( Л; ч Хт) л - У); И-Р -О) (Р В)- И Х,. К) (Х, ' г))и..д.
Следовательно, все перечисленные формулы соответствуют одной и той же булевой функции. Возникает вопрос, всякой ли булевой функции соответствует некоторая формула алгебры высказываний. другими словами, всякая ли булева функция может быть выражена (представлена) некоторой формулой алгебры высказываний. Если булева функция задана с помощью формулы, то соответствующая этой функции Формула алгебры высказываний отыскивается так, как описано в предылущем абзаце. Если же булева функция задана не в виде Формулы, то, в силу теоремы 10.5, формульное выражение для нее тем не менее существует, и, следовательно, представляющая !05 ее формула алгебры высказываний может быть найдена по правилу, описанному выше. Итак, отметим еше раз„что каждой формуле алгебры высказываний соответствует единственная определяемая этой формулой булева функция, что будет для нас важным в дальнейшем.
Нормальные формы булевых функций. На основе теоремы 10.5 всякая булева функция может быть представлена некоторой формулой алгебры высказываний. Нетрудно понять, что всякая формула алгебры высказываний, равносильная формуле, представляющей некоторую булеву функцию ~; будет представлять функцию, равную ~ В частности, одной из таких представляющих формул будет совершенная дизъюнктивная нормальная форма (если данная булева функция не равна тождественно О, т.е. представляющая формула не тождественно ложна) или совершенная конъюнктивная нормальная форма (если данная булева функция не равна тождественно 1, т.
е. представляющая формула не является тавтологией). Отыскав совершенную нормальную форму для формулы алгебры высказываний, представляющей данную булеву функцию (применяя правила, полученные в теоремах 5.2 и 5.4), можно перейти от этой формы к формульному выражению для данной булевой функции. Его будем называть совершенной (дизьюнктивной или коньюнктивной) нормальной формой данной булевой функции, сокращенно СДН-формой или соответственно СКН-формой. Каждая из них для данной булевой функции, если она существует, единственна.
Приобретя опыт работы с булевыми функциями, можно отыскивать их нормальные формы, не переходя к символике алгебры высказываний. При этом, если функция задана каким-то формульным выражением, то для его тождественного преобразования следует пользоваться свойствами булевых функций, установленными в теоремах 9.3 — 9.5, а если функция задана своими значениями на всех наборах значений аргументов (т.е.
если она задана таблично), то следует применять правила, полученные в теоремах 5.2 и 5.4, переведя их предварительно на язык булевых функций. й 11. Системы булевых функций В теореме 10.5 доказано, что всякая булева функция может быть представлена в виде суперпозиции трех булевых функций: дизъюнкции, конъюнкции и отрицания. В настоящем параграфе тема представления булевых функций в виде суперпозиций функций из некоторой системы развивается и доводится до определенного конца: приводятся необходимые и достаточные условия (теорема 11.4 Поста), которым должна удовлетворять система булевых функций для того, чтобы всякая булева функция могла быть представлена в виде суперпозиции функций из этой системы. 106 Полные системы булевых функций.
Напомним, что понятие суперпозиции булевых функций обсу»клалось в 5 10 (определение 10.2). Определение 11.1. Система булевых функций называется нолной, если всякая булева функция является суперпозицией функций из этой системы, Теорема 11.2. Следующие системы булевых функций являются полными: 1)( ~», ., '); 2)(+,, '); 3)(н, '); 4)(, '); 5)(-», '); 6)( ! ); 7)М Доказательство. Полнота первой системы доказана втеореме 10.5.
Эго можно использовать лля доказательства полноты остальных систем, приведенных в теореме. В силу полноты системы ( ~~,, ') каждая булева функция является суперпозицией дизъюнкции, конъюнкции и отрицания. Если мы сможем выразить дизъюнкцию через функции +, и ', то тем самым докажем, что всякую функцию можно выразить через эти функции, т.е. докажем полноту системы функций (+,, ').