Элементы логики

Математики имеют дело с объектами, такими как, например, -- числа, -- функции, -- матрицы, -- прямые на плоскости и т.д., а также имеют дело с высказываниями. Высказывание есть некоторое повествовательное предложение, подлежащим в котором является математический объект, и про которое можно в принципе сказать верно оно или ложно. Приведем примеры высказываний.

1. Прямая пересекает ось Ох.

2. Число «пи» больше 3.14.

3. Отношение равно 1.

4. Число есть корень уравнения .

5. Число составляет все множество корней уравнения .

6. Корень из 2 не будет корнем никакого многочлена с целыми коэффициентами.

7. Число e (основание натуральных логарифмов) не будет корнем никакого многочлена с целыми коэффициентами.

Здесь утверждения 2,4,7 справедливы, утверждения 1,5,6 ложны, а 3 не является утверждением, поскольку нет такого объекта-числа как 0/0.

А будут ли сами «ИСТИНА» и «ложь» математическими объектами? Да, будут. Они составляют весьма важное в математической логике множество

 

которое называется булеаном, и на котором можно определить разнообразные логические операции: «или», «и», «следует», «эквивалентность», «не», «либо» (исключающее). Первые четыре операции, а также последняя двуместные (или, как говорят, бинарные), операция отрицания «не» одноместная (=унарная). Чтобы напомнить житейский смысл этих операций, попытайтесь оценить истинность следующих высказываний в зависимости от разных истинностных оценок компонент этих высказываний.

а. Не верно, что Васька плут и мошенник.

б. Не верно, что Фигаро здесь или Фигаро там.

в. Ветер дует, потому (=из-за того), что деревья качаются.

г. Мы победим либо все вместе погибнем.

д. Ты и ты и ты не можете сравниться с Матильдой моей

Так как нам надо алгебраизировать операции на булеане (помни название предмета!), то полагаем: и это равно 1 в однобитовом представлении булеана, и это равно 0, операцию «или» называем дизъюнкцией и обозначаем “or”, операцию «и» называем конъюнкцией и обозначаем “and” (иначе, она называется логическим умножением), операцию отрицания обозначаем “not”, операцию следования называем импликацией и обозначаем , исключающее или обозначаем “xor” (по-другому “+”, -- логическое сложение). Тогда действия этих операций можно свести в таблицу

Таблица 1

x 0 1 0 1
y 0 0 1 1
x or y 0 1 1 1
x and y (= xy) 0 0 0 1
x +y 0 1 1 0
x xor y (= x+y) 0 1 1 0
not x (=1+x) 1 0
x Imp y (x ⇒ y) 1 0 1 1
x Equ y (x≡ y) 1 0 0 1

 

Предпоследняя строка таблицы определяется в соответствии с принципом «солгавши раз, да кто тебе поверит!». Если некто ложное утверждение объявляет истинным, и тем самым его собственное мировоззрение становится противоречивым, то далее он может объявлять, что угодно – в своих глазах он будет прав. Еще раз объясним импликацию на математическом языке: – ложность посылки влечет истинность импликации вне зависимости от . В компьютерных языках операции импликации и эквивалентности используют крайне редко. Частично это объясняется тем, что эквивалентно (здесь -- какие-либо высказывания).

На битовые строки логические операции распространяются покомпонентно:

 

 

Здесь * -- какая-либо бинарная операция, а -- унарная операция (она у нас пока одна – отрицание, но все впереди)

ПРИМЕРЫ логических вычислений в (полубайт):


В среде VBA под True и False отводится два байта (=16 бит), столько же сколько и под тип целого числа Integer. При этом True представляется строкой из единиц (1,1,…,1), а False – строкой из нулей. Система представления целых чисел типа Integer такова, что первый бит указывает на знак числа (см. «Компьютер и алгебра») и строка из 16 единиц представляет целое число -1. Поэтому ничего удивительного нет в том, что на вопросы к дебюггеру “True = -1”; “True<False” он ответит утвердительно.