Основы объектно-ориентированного программирования на языке C# book | Page 59

4.2 Булевi вирази
A – висловлювання , iстиннiсть якого визначається x 1 , а B – висловлювання , iстиннiсть якого визначається x 2 , то висловлювання “ A або B ” iстинне тодi i тiльки тодi , коли iстинне заперечення висловлювання “ не A та не B ”. Слiд зауважити , що як i кон ’ юнкцiю , диз ’ юнкцiю не складно виразити через числовi операцiï : x ∨ y = max x , y = x + y − xy при x ∈ { 0 , 1 } та y ∈ { 0 , 1 }. Хоча диз ’ юнкцiя i виражається через заперечення i кон ’ юнкцiю , ïï , як правило , включать до числа базових булевих операцiй , через якi виражають iншi булевi функцiï . Це є пiдставою визначення поняття булевого виразу , наведеного нижче .
Означення 4.2 ([ 1 ]). Нехай дано скiнчений перелiк рiзних символiв – iмен змiнних x 1 , ..., x n . Поняття булевого виразу вiд змiнних x 1 , ..., x n визначається iндуктивним чином :
( 1 ) константи 0 , 1 та змiннi x 1 , ..., x n є булевими виразами вiд змiнних x 1 , ..., x n ;
( 2 ) якщо E та E ′ – булевi вирази вiд змiнних x 1 , ..., x n , то вирази ( E ∨ E ′ , ( E ∧ E ′ , та E є булевими виразами вiд змiнних x 1 , ..., x n ;
( 3 ) кожний булевий вираз можна отримати за допомогою скiнченого числа застосувань правил ( 1 ) та ( 2 ).
Наприклад , x 1 ∨ x 2 , ( x 1 ∨ 0 ) ∨ 1 , ( x 1 ∨ x 2 ) ∨ ( x 3 ∧ x 4 ) є булевими виразами ( вiд змiнних x 1 , x 2 , x 3 , x 4 ).
Для позначення довiльного булевого виразу вiд x 1 , x 2 , ..., x n використовують позначення φ ( x 1 , x 2 , ..., x n ).
Означення 4.3 ([ 1 ]). Для заданого булевого виразу φ ( x 1 , x 2 , ..., x n ), булева функцiя , зображена φ – це булева функцiя f φ : { 0 , 1 } n → { 0 , 1 }, така , що для кожного кортежу ( b 1 , b 2 , ..., b n ) ∈ { 0 , 1 } n , f φ ( b 1 , b 2 , ..., b n ) є значенням , отриманим шляхом пiдстановки b 1 замiсть x 1 , b 2 замiсть x 2 ,..., b n замiсть x n у виразi φ ( x 1 , x 2 , ..., x n ) та спрощеннi отриманого виразу до значення 0 або 1 за допомогою таких правил : 0 ∨ 0 = 0 , 0 ∨ 1 = 1 , 1 ∨ 0 = 1 , 1 ∨ 1 = 1 , 0 ∧ 0 = 0 , 0 ∧ 1 = 0 , 1 ∧ 0 = 0 , 1 ∧ 1 = 1 , 0 , 1 .
Легко бачити , що кожний булевий вираз зображає єдину булеву функцiю . Проте поняття булевого виразу вiдрiзняється вiд поняття булевоï функцiï : булевий вираз є лише символiчним записом , тому 0 та x 1 ∧ x – рiзнi булевi вирази вiд змiнноï x 1 . В той же час вони зображають одну i ту ж булеву функцiю 0 1 ( для функцiï суттєвими є лише вiдповiднiсть мiж значеннями аргументiв та результатом ). Означення 4 [ 1 ]. Два булевих вирази називаються еквiвалентними , якщо вони зображають одну i ту ж булеву функцiю .
59