LINUX.ORG.RU

Логика и грамматика в программировании

 ,


1

3

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

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

Это не соответствует понятию логики вообще, которая пляшет не от языка, а от смысла высказываний. Высказывания логики строятся на естественном языке, который грамматически допускает любые, в том числе и противоречивые высказывания.

Каково соотношение межуд логикой и формальной логикой? Что общего между ними?



Последнее исправление: protsquest (всего исправлений: 1)

Ответ на: комментарий от peregrine

невнимательно читаете

введение 4-й аксиомы также опровергает теорему гёделя, и дальше использовать её нельзя

anonymous
()

Ну, берем тьюринг-полный язык программирования. Для него пишем заведомо синтаксически корректную подпрограмму. Пишем на этом же языке утверждение - результат подпрограммы равен нулю(или чему хотите).

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

Kokonavtuz
()
Ответ на: комментарий от monk

Оно существует как семантическая единица, содержащая ложное утверждение.

Это даже не важно, считать его семантической единицей или нет. Достаточно и того, что его отсутствие выводимо.

Кстати аналогом Q в языке будет выражение «это выражение ложно». Оно не может быть истинно, оно не может быть ложно, но оно существует в русском языке. Фактически, оно является примером геделевой формулы для русского языка.

Поскольку выражение логически противоречиво, оно просто не должно применяться, вот и все. В геометрии можно объявить такой прямоугольник, у которого углы не прямые. Дальше что? Геометрия умерла от этого?

anonymous
()
Ответ на: комментарий от monk

Но перечислимым запрет быть не может

Его перечислимость не требуется. Достаточно сказать, что любое противоречивое выражение(выражение для которого выводимо противоречие) недействительно. Вот это как раз можно сделать аксиомой для любой логики

anonymous
()
Ответ на: комментарий от anonymous

Достаточно сказать, что любое противоречивое выражение(выражение для которого выводимо противоречие) недействительно.

Пусть S — выражение «если S истинно, тогда теорема Ферма верна». Мы не знаем, истинно ли S, но если оно истинно, то теорема Ферма верна. Предыдущая фраза истинна и тождественна утверждению S, значит S истинна. Следовательно, теорема Ферма верна.

Противоречий нет (оно невыводимо). Значит выражение S допустимо в нашей формальной системе?

-----------

Есть ещё один момент, для утверждения вида «это утверждение ложно, если проблема останова разрешима» противоречие не выводимо (оно становится противоречивым, только если проблема останова разрешима, а это не доказано), а значит утверждение является утверждением нашей формальной системы.

monk ★★★★★
()
Ответ на: комментарий от monk

Пусть S — выражение «если S истинно, тогда теорема Ферма верна». Мы не знаем, истинно ли S, но если оно истинно, то теорема Ферма верна. Предыдущая фраза истинна и тождественна утверждению S, значит S истинна.

Это очередная дешевая софистика. Тут подвох в том, что S не является истинным выражением. Если S истино, оно верно, но S не истино, а лишь утверждает то что утверждает.

protsquest
() автор топика
Ответ на: комментарий от monk

Мы не знаем, истинно ли S, но если оно истинно, то теорема Ферма верна.

И более того, вот это вот " Мы не знаем, истинно ли S, но если оно истинно, то теорема Ферма верна." — тоже ложь. Из того что есть фраза, которая это утверждает, не следует, что это действительно так

protsquest
() автор топика
Ответ на: комментарий от monk

Вы можете сказать, например «если бегемоты летают, то русалки существуют». Мы не знаем, летают ли бегемоты, но если летают, значит русалки существуют. Вау, но именно это и говорит эта фраза, значит она истинна!

Истина, на самом деле заключается в том, что прежде чем пускать людей в народную науку, надо вначале проверять их на IQ и общую вменяемость

protsquest
() автор топика
Ответ на: комментарий от protsquest

надо вначале проверять их на IQ и общую вменяемость

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

monk ★★★★★
()
Ответ на: комментарий от protsquest

" Мы не знаем, истинно ли S, но если оно истинно, то теорема Ферма верна." — тоже ложь. Из того что есть фраза, которая это утверждает, не следует, что это действительно так

Из того, что есть истинная фраза, которая это утверждает, следует, что это действительно так.

monk ★★★★★
()
Ответ на: комментарий от protsquest

Тут подвох в том, что S не является истинным выражением. Если S истино, оно верно, но S не истино, а лишь утверждает то что утверждает.

Неграмотно так говорить. Методику определения истинности выражений в студию! Пользуясь логикой - правилами преобразований выражений - можно судить об истинности только через истинность или ложность ДРУГИХ выражений. Каких? Истинность сферического выражения в вакууме логикой не определить.

Классический пример: король Франции лысый - утверждает много всего сразу: существует Франция, существует король Франции, он один, он лысый.

Kokonavtuz
()
Ответ на: комментарий от monk

Из того, что есть истинная фраза, которая это утверждает, следует, что это действительно так.

Но ее истинность ниоткуда не следует.То есть нет истинной фразы там

protsquest
() автор топика
Ответ на: комментарий от Kokonavtuz

Истинность сферического выражения в вакууме логикой не определить.

нет никакой «истинности», если это логически не следует из посылок. Пример «методики» — дедукция

protsquest
() автор топика
Ответ на: комментарий от monk

А IQ созданию парадоксов не мешает, скорее наоборот.

Тогда лучше нанимать обезьян на должность математиков. Дешевле обходится

protsquest
() автор топика
Ответ на: комментарий от protsquest

Если S истино, оно верно, но S не истино, а лишь утверждает то что утверждает.
но S не истино

Почему? Просто так?

Нет посылок - нет и дедукции.

Kokonavtuz
()
Ответ на: комментарий от protsquest

Так в том и вопрос. Вы определяете истинность выражений логически выводя ее из посылок, других выражений. Вдруг выражение S не зависит от других выражений, а только от себя. Оно какое? Истинное - тогда почему? Противоречивое - чему противоречит? Бесмысленное, нейтральное, логически невычислимое, нещитово, какое?

Подобие функции в бесконечной рекурсии, разве нет? А могут выражения S быть в вашем супер-непротиворечивом языке программирования?

Kokonavtuz
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.