Зачем мы изучаем математическую логику?

 

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

Логику интересует лишь форма наших мыслей, но не их содержание. Разнообразие содержание укладывается в сравнительно небольшое число форм. Грубо говоря, логику интересуют сосуды - бутылки, ведра, бочки, - а не то, что в них налито.

В этом отношении логика сходна с грамматикой, которую мы изучали в школе. Грамматика тоже исследует и описывает формы языковых выражений, отвлекаясь от их содержания. Известное стихотворение "Бармаглот" из "Алисы в Зазеркалье" Льюиса Кэрролла начинается со следующих строк:

"Варкалось. Хливкие шорьки

Пырялись по наве.

И хрюкотали зелюки,

Как мюмзики в мове."

Знание грамматики позволяет нам обнаружить, что в этих строчках является подлежащим, сказуемым и т. д. Мы можем говорить о роде, числе, падеже наших существительных, не имея ни малейшего представления о том, что обозначают соответствующие слова. Более того, как говорит Алиса об этих строках: они "наводят на всякие мысли, хоть и неясно - на какие". Аналогичное знание о формах мысли дает нам логика.

При изучении логики мы вводим различные формальные языки. Дело в том, что формальные языки всегда проще, чем структура естественных языков. Иногда естественный язык может быть очень сложен.

Вот как, например, Марк Твен обыгрывает особенности словообразования в немецком языке [25, с. 59]:

"В одной немецкой газете, - уверяет он, - я сам читал такую весьма занятную историю:

Готтентоты (по-немецки: †хоттентотен‡), как известно, ловят в пустынях кенгуру (по-немецки:†бейтельрате‡ - сумчатая крыса). Они обычно сажают их в клетки (†коттэр‡, снабженные решетчатыми крышками (†латтенгиттер‡) для защиты от непогоды (†веттер‡).

Благодаря замечательным правилам немецкой грамматики все это вместе - кенгуру и клетки - получают довольно удобное название:

†Латтенгиттерветтеркоттэрбейтельратте‡.

Однажды в тех местах, в городе Шраттертроттэле, был схвачен негодяй, убивший готтентотку, мать двоих детей.

Такая женщина по-немецки должна быть названа †хоттентотенмуттер‡, а ее убийца сейчас же получил в устах граждан им †щраттертроттэльхоттентотенмуттэраттэнтэтэр‡, ибо убийца - по-немецки †аттэнтэтэр‡.

Преступника поймали и за неимением других помещений посадили в одну из клеток для кенгуру, о которых выше было сказано. Он бежал, но снова был изловлен. Счастливый своей удачей, негр-охотник быстро явился к старшине племени.

- Я поймал этого … Бейтельратте? Кенгуру? - в волнении вскричал он.

- Кенгуру? Какого? - сердито спросил потревоженный начальник.

- Как какого? Этого самого! Латтенгиттерветтеркоттэрбейтельратте.

- Яснее! Таких у нас много… Непонятно, чему ты так радуешься?

- Ах ты, несчастье какое! - возмутился негр, положил на землю лук и стрелы, набрал в грудь воздуха и выпалил:

- Я поймал щраттертроттэльхоттентотенмуттэраттэнтэтэр-латтенгиттерветтеркоттэрбейтельратте! Вот кого!

Тут начальник подскочил, точно подброшенный пружиной:

- Так что же ты мне сразу не сказал этого так коротко и ясно, как сейчас?!"

 

Математическая логика - это логика, развиваемая с помощью математических методов. Этот термин имеет и другой смысл: изучать математическую логику - значит изучать логику, используемую в математике.

Математическая логика, возникшая почти 100 лет назад в связи с внутренними потребностями математики, нашла применение в теоретическом и практическом программировании и, судя по всему, взаимодействие этих двух наук в недалеком будущем сможет принести новые плоды.

Почему программисты обратились к математической логике, а логики заинтересовались программированием? Математическая логика, занимается построением формальных языков, предназначенных для представлений таких фундаментальных понятий, как функция, отношение, аксиома, доказательство, и изучение основанных на этих языках логических и логико-математических исчислений.

В недрах математической логики были найдены математически точные понятия алгоритма и вычислимой функции, развита семантика формальных языков и теорий, построены системы логического вывода - и все это, заметим, было сделано в 30-40-х годах, в т. е. "докомпьютерную эру".

Программирование также имеет дело с формальными языками - языками программирования. Чтобы сделать эти языки удобными и естественными для человека полезно воспользоваться опытом математической логики. В результате появились принципиально новые языки функционального (Лисп, Clean) и логического (Пролог) программирования.

Для формализации семантики программы (это полезно при разработке трансляторов) необходим аппарат математической логики (уже использовались : l-исчисление Черча, теория областей Дана Скотта).

Другие приложения математической логики в программировании:

· теория логического вывода:

· правильность программ относительно спецификаций:

· "доказательное" программирование - метод построения правильных программ;

· задачи представления и обработки знаний;

· параллельные вычисления;

· проблемы сложности вычислений;

· элементная логическая база компьютеров.

 

 

Противоположность правильного высказывания - ложное высказывание. Но противоположность глубокой истины может быть другая глубокая истина.

Нильс Бор