| << К разделам |
| Информатика |
| Алгоритмы |
| Теория информации |
| Теория программирования |
| Все статьи |
| Журнал |
| Подписка |
Интернет-Журнал «Потенциал» |
| Авторам |
| Печатные номера |
|
Адрес редакции: 109544, г. Москва, ул. Рабочая, 84, редакция журнала "Потенциал". Телефоны: 787-24-94, 787-24-95, 678-35-86 E-mail: potential@potential.org.ru Главный редактор А.Д. Гладун Шеф-редактор Г.А. Четин Подробная информация Свидетельство о регистрации— СМИ ПИ № ФС 77-19521. Издаётся с января 2005 года. Тираж — 4000 экз, периодичность выхода — раз в месяц Печать — ООО "Азбука-2000" Журнал издаётся на средства выпускников технических вузов ISSN 1814-6422 |
| Полезные сайты |
ЗФТШ
|
МЦНМО
|
Журнал "Квант"
|
"Открытый Колледж"
|
Союз образовательных сайтов
|
Интернет-портал "Абитуриент"
|
| Другие ссылки... |
|
Жили в грузинском селе три брата. Украл у них кто-то барана. Первый брат говорит: — Раз украл, значит рыжий. Второй продолжает рассуждение: — Раз рыжий, значит, кривой. Третий завершает: — Раз рыжий и кривой, значит, Гоги. Пошли они бить Гоги. Схватили их соседи и привели к судье. Тот спрашивает, почему они бесчинствуют? — Мы не бесчинствуем, а вора бьем. Гоги у нас барана украл. — А как вы это узнали? — Логически. Рассказали братья свои рассуждения. — Да где же здесь логика? Так вы что угодно доказать сможете! — Не что угодно, а лишь правду. — Ну ладно, я сейчас выйду в соседнюю комнату и что-то спрячу в ящичек, а вы логически установите, что я спрятал. Возвращается судья с ящичком. Первый брат говорит: — Раз спрятано, значит, круглое. Второй продолжает: — Раз круглое, значит, белое. Третий завершает: — Раз круглое и белое, значит, яйцо. Судья открывает ящичек, показывает всем яйцо и заявляет: — Гоги, сейчас же отдай барана и заплати штраф! Грузинско"=русский анекдот.
Все люди смертны.
Сократ - человек
Следовательно, сократ смертен
На подобных рассуждениях иллюстрировал логику и её создатель Аристотель, и его последователи многие столетия (по традиционной хронологии 2000 лет, но нужно помнить, что измерения в истории подчиняются тем же законам, что и физические измерения, и точность дат из древней истории, вычисленная по законам, по которым обрабатываются физические измерения, 500 лет). Льюис Керролл 1 заметил, что логика применима и к рассуждениям в возможных и невозможных мирах, подобным следующему:
Все змеи крылатые.
Автор статьи - змея.
Следовательно, у автора есть крылья
Это сразу же привело к абсурду (точный логический термин!) — столько веков ошибочно приписывающуюся логике репутацию науки, занимающейся лишь тривиальностями. Формальная наука отличается тем, что она проверяет прежде всего форму и поэтому может рассуждать про глокую куздру из знаменитого предложения академика Щербы «Глокая куздра штеко быдланула бокра и кудрячит бокренка» столь же уверенно, как про сивую кобылу.
Поскольку программист, в некотором смысле, творец возможных либо даже невозможных миров, в принципе он ограничен в своей деятельности лишь законами логики.
Далее, в определении предмета логики мы избежали слова «изучение». Это связано с тем наблюдением, которое сделал ещё в XVIII веке великий кенигсбергский философ Иммануил Кант. Логика не изучает мышление, она упорядочивает и нормализует его. Она имеет дело не с процессом открытия, а с формой изложения полученного результата с тем, чтобы убедить других в его правильности, а себя в отсутствии самообмана (заметьте аналогию с отладкой программы!)
Кант сказал ещё точнее и жестче: «Логика является цензурой мысли». Мы привыкли поклоняться идолу свободы и рассматривать само слово «цензура» как нечто почти нецензурное. Но посмотрите, как выродилась наша литература после получения абсолютной свободы. Противодействие порождает действие, наступление вызывается обороной (Клаузевиц), чтобы иметь опору, надо от чего-то отталкиваться, чтобы добиваться успехов, надо преодолевать трудности, и вот осталась нашей богеме лишь одна возможность измышлять нечто новое: наркотики, «дурь»
— Это какой же дури надо было нанюхаться, чтобы придумать такое! Вот классно!
«Творческая интеллигенция», из-за полного отсутствия представлений о платоновских идеальных мирах, которые приоткрывает настоящая наука (прежде всего, математика), не видит другого способа стимуляции воображения, кроме ‘дури’ 2!
Для достижения большей выразительности поэт накладывает на себя самоограничение, переходя от прозы к стихам. Настоящие стихи (а не то, что в нынешнее время называется «верлибр») проверяются прежде всего по формальному признаку: наличию чёткого ритма, а затем по создаваемому ими впечатлению и заложенному в них смыслу.
Доказательное логическое рассуждение относится к обычному в некотором отношении так же, как стихи относятся к прозе. Но стихи часто ценятся за неоднозначность, а доказательство — лишь за однозначность. Чтобы конструкция была доказательством, нужно, чтобы её синтаксическая правильность гарантировала семантическую. Чтобы конструкция была доказательством в конкретной системе (в этом случае её чаще всего называют выводом), нужно, чтобы она удовлетворяла однозначным, четким и алгоритмически разрешимым условиям, наложенным данной системой. Если система, в которой задано понятие вывода, работает с формулами математического формального языка, причём достаточно общепризнанным способом, её называют теорией, а в общем случае просто исчислением.
Первое из этих правил задаёт аксиому. Оно имеет посылок, и, соответственно, не требует для своего применения никаких ранее построенных объектов. Аксиомы часто пишутся просто как выражения, опуская конструкцию правила с посылок. Данная аксиома могла бы быть просто записана как .
Второе правило позволяет соединить два ранее построенных скобочных выражения, поставив их одно за другим. Третье — поставить скобки вокруг ранее построенного выражения.
Приведённое ниже дерево является выводом в данном исчислении.
Поскольку в структуре дерева для нас важно лишь то, что новые объекты могут быть построены лишь на базе уже построенных ранее, это дерево часто записывается как последовательность объектов:
Программист при этом может заметить, что, перейдя от дерева к последовательности (что, как прокомментирует математик, никакой существенной роли не играет), мы коренным образом изменили структуру данных: теперь у нас имеется сеть, в которой один и тот же объект может использоваться несколько раз (в данном случае таким объектом была лишь наша аксиома). Вспомните, что писалось в статье «Чего не могут вычислительные машины?» Когда теоретик говорит, что это все безразлично, практик должен насторожиться.
На этом примере показаны все характерные черты традиционных исчислений. Новые объекты получаются из уже выведённых по правилам вывода. С теоретической точки зрения вывод может быть записан как последовательность объектов либо как дерево.
Только что приведённое исчисление выводило объекты, которые сами по себе особого смысла не имеют. Но ещё в 20-х гг. прошлого века Д. Гильберт и его ученики переформулировали аналогичным образом исчисление высказываний. В этом исчислении объектами являются формулы, построенные при помощи связок
("и", "или", "следовательно", "не"). Его фрагмент, содержащий лишь импликацию, задаётся тремя правилами с нулем посылок (схемами аксиом) и одним правилом с двумя посылками:
(1)
(2)
(3)
(4)
Это исчисление называется классической импликативной (импликация = следствие) логикой в форме Гильберта. Формулы имеют обычное истолкование, основанное на таблицах истинности. В этом исчислении выводятся те и только те импликативные формулы, которые тождественно обращаются в истину. Но установить это исключительно нетривиально.
В принципе (и даже в реальности) таблица истинности, в которой рассмотрены все наборы значений и получена тождественная истина, сама по себе является доказательством формулы исчисления высказываний. Но такое доказательство несколько туповато: в любом случае нужно рассматривать все значения, получается гарантированный полный перебор. А гильбертовское доказательство выглядит порою просто безумно. Например, вот как доказывается простейшая теорема
:
(2)
(3)
(3)
На примере гильбертовского исчисления видны характерные признаки исчислений, обоснованно претендующих на звание логик.
Заметим, что в предыдущем абзаце отсутствует слово «доказательство». Если бы мы ограничились задачей доказательства, классическая логика стала бы ещё более подходящей. Именно поэтому «практические» (что, как следует из многих уже сказанных вещей, да и из многого другого, означает: бесконечно далекие от практики) математики никакой другой логики не знают и знать не хотят. Но задача «доказать» включает в себя элемент жульничества. Для практики нужно проверять.
Вы, наверно, уже слышали, что классическая логика не единственна. Но в большинстве популярных изданий и в «общественном мнении» проводится в корне неправильная точка зрения на неклассические логики: дескать. они многозначные, там могут быть другие значения формул, кроме двух стандартных: истина и ложь. Многозначные логические исчисления (даже если они могут претендовать на имя логики) являются скорее модификациями классической логики. Самые интересные и самые важные для приложений неклассические логики — те, где переходят к совершенно другой семантике формул.
), поскольку мы можем просто не уметь распознать эти два случая. Брауэр показал, что закон исключенного третьего в обычной логике эквивалентен ещё одному общепринятому закону: снятия двойного отрицания
, который в курсе математики выступает в качестве доказательств от противного:
«Нужно доказать A . Предположим, что не верно A … Получаем абсурд. Полученное противоречие доказывает теорему»
Как всегда у первооткрывателей, гениальные прозрения у Брауэра сочетались с некорректными объяснениями. Если причина недоразумений в самой логике, почему же эллины, создавшие и отработавшие классическую логику на примере геометрии, в которой также рассматривается бесконечная совокупность объектов, ни с какими неприятностями, проистекающими от нее, не сталкивались? Да дело просто в том, что гениальная интуиция и потрясающее чувство гармонии эллинов воспрепятствовали им использовать в геометрии числа. Тем самым они избежали попадания в область неразрешимых проблем. А, как показал Гёдель, там, где появляются натуральные числа, возникают и неразрешимые проблемы. Но, конечно же, неразрешимые проблемы возникают лишь для бесконечных совокупностей объектов.
А там, где возникают неразрешимые проблемы, закон исключенного третьего выглядит до глупости оптимистичным: как мы можем утверждать, что или не , когда мы в принципе не можем знать ни того, ни другого?
Но самое важное у Брауэра было то, что он полностью видоизменил приоритеты математики. Если традиционная математика занимается поиском и доказательством теорем, то он начал её рассматривать как источник построений. Мало доказать теорему, нужно, чтобы обоснование дало нам построение объекта, существование которого утверждается в теореме. А использование доказательств в качестве источника построений — именно то, что нужно от математики информатику.
Брауэр был, как и полагается гению, последователен и жесток. Мало высказать благие пожелания, нужно, чтобы они не стали благоглупостью, беспощадно провести их в жизнь . Если нам нужны построения, то логическое значение формулы отступает на второй план. Главное то, какую конструкцию несёт в себе её доказательство. Сами шаги доказательства в этом случае превращаются в шаги построения, а всё доказательство в программу. Как прекрасно для программистов! Но, конечно же, нужно помнить, что такой идеал достижим лишь в принципе.
Таким образом, каждая формула в конструктивных логиках превращается в задачу, а сама концепция истинностных значений исчезает. В классической логике все теоремы имеют одно и то же значение — истина. В конструктивной логике они соответствуют разным задачам и разным построениям.
Несмотря на то, что идеал остаётся сверкающей мечтой, конструктивные логики уже развились настолько, что могут служить средством анализа программ и помощью при их построении. Их связи с программами посвящена следующая статья.
Дважды два — четыре. Значит, Москва — столица России.Релевантные логики исследуют логические зависимости, связь по смыслу между высказываниями. В принципе, модальные и релевантные логики были бы великолепными инструментом программиста. Первые — для анализа противоречивых требований заказчиков или начальства. Вторые — для анализа собственных и чужих рассуждений, чтобы понять, где же кроется хитрая ошибка в программе. Но до такого уровня они ещё не доросли. Желающим подробнее ознакомиться с состоянием современной логики автор мог бы рекомендовать, скажем, свою книгу: Непейвода Н. Н. Прикладная логика. Издание второе. Новосибирск, НГУ, 2000 г.