LINUX.ORG.RU

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

 ,


1

3

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

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

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

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



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

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

А что значит «формальная модель рассуждений»?

Это модель рассуждений в рамках формальной системы © — совокупности абстрактных объектов, не связанных с внешним миром, в которой представлены правила оперирования множеством символов в строго синтаксической трактовке без учёта смыслового содержания, то есть семантики.

Кстати, разве логика первого порядка, она же логика предикатов, не позволяет строить заведомо неверные конструкции?

Может. Но при учёте модальности, зависящей от контекста, неверные конструкции не всегда ложные ©.

Например, твой тезис «есть зеленые ежи» зависит от квантора существования ∃ травы, покрашенной зелёной краской солдатами перед инспекцией командования, через которую пробежал ёжик :)

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

Это модель рассуждений в рамках формальной системы © — совокупности абстрактных объектов, не связанных с внешним миром

А разве существует модель рассуждений, которая оперирует не абстрактными объектами?

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

абстрактных объектов

Кстати, понятие «абстрактный объект» не обязательно должен быть несвязанным с внешним миром. Под этим, чаще всего подразумевается универсалия. Универсалия связана с внешним миром, просто она обобщает его явления.

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

А разве существует модель рассуждений, которая оперирует не абстрактными объектами?

С некоторыми оговорками да: например, в нечёткой логике объекты не вполне абстрактны, ибо обладают функцией принадлежности © каждого члена пространства рассуждения к данному нечёткому множеству.

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

quickquest ★★★★★
()
Последнее исправление: quickquest (всего исправлений: 1)
Ответ на: комментарий от quickquest

ибо обладают функцией принадлежности © каждого члена пространства рассуждения к данному нечёткому множеству.

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

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

Тут за аксиому надо брать «Q не существует».

А таких Q не менее, чем счётное множество. Потому что к предикату «множество, не включающее себя» можно добавить любое условие, но парадокс самовключения не исчезнет.

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

как функция принадлежности может сделать объект конкретным.

Ну, например, функция принадлежности к кластерам троллей, флудеров, etc... конкретизирует абстрактного нарушителя правил ЛОРа в парадигме нечёткой логики модераторов до конкретного персонажа.

К примеру: поиск по лингвистической переменной «эфиродинамика» однозначно конкретизирует забаненого Napilnic'а среди прочих альтернативно алогичных субъектов :)

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

Из этого же разряда вопрос, можно ли иметь такую арифметику, которая не позволит записать «1=2»

Можно, конечно. Вводим грамматику как f(0)=f'(0), где f' и f эквивалентные арифметические преобразования. Тогда можно записать

0=0
1+0=1+0
2*(1+0)=2*(1+0)
2*(1+0)=(1+1)*(1+0)
2=1+1
а 1=2 не является корректной строкой данной грамматики.

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

А таких Q не менее

Тут вообще нельзя говорить об «их количестве», потому что Q просто нет. Рассел его грамматиечски сформулировал. но логически его не существует в системе

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

где f' и f эквивалентные арифметические преобразования

В вашей грамматике грамматическое понятие «эквивалентные арифметические преобразования» не определено. Как Вы их выявляете именно грамматически?

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

Я понял, о чем Вы говорите. Любую универсалию можно конкретизировать до конечного объекта.

Но это ни о чем вообще. Нет никакого особого языка где это не так, за исключением такого, который оперирует заведомо ложными или несуществующими абстракциями. «баба яга» конкретизировать нельзя до конечного материального объекта. Но можно конкретезировать до какого-нибудь персонажа видеоигры, например. Поэтому тут разницы с тз языка даже нет

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

Тут вообще нельзя говорить об «их количестве», потому что Q просто нет.

Чтобы ввести его в систему аксиом, его придётся определить. Типа «множество множеств не включающих себя не существует». А потом писать дополнительные аксиомы типа: «множество натуральных чисел и множеств включающих себя не существует», «множество треугольников и множеств включающих себя не существует», ...

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

Я думаю, что это в аксиоматиук все-таки включать не надо. Это противоречие просто само исключает это множество из системы. То есть несуществование выводимо. Рассел ошибся

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

Соответственно, то что выводимо, в аксиоматику не включается, потому что аксиоматика не должна быть избыточной.

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

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

Пусть расселовское множество существует, тогда [парадокс Рассела]. Следовательно его не существует

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

Как Вы их выявляете именно грамматически?

Как операции над строками. Назовём выражением любую строку, которая может быть получена как часть корректного выражения слева или справа от «=».

Корректной строкой является «0». Корректной строкой является «1».

Эквивалентными преобразованиями для a=b являются c+a=c+b, c*(a)=c*(b), где c — корректная строка

Тривиальным преобразованием строки назовём такие: a->a, (a) -> a, a -> (a), a+b -> b+a, a*b->b*a, (a+b)*c->a*c+b*c, a*c+b*c->(a+b)*c, 0*a -> 0, 0 -> 0*a, 1*a -> a, a -> 1*a, где a, b, c являются корректными строками. Любое тривиальное преобразование эквивалентно любому другому тривиальному преобразованию.

P.S. Возможно список грамматических правил не исчерпывающ

monk ★★★★★
()
Последнее исправление: monk (всего исправлений: 1)
Ответ на: комментарий от monk

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

Но притягивать чайник к чистой логике не следует. Тут оба заявления, типа «чайник есть» и «чайника нет» равнозначны, и все выводится из данной аксиоматики.

Притягивание это за уши к вопросу бога еще более нелепо, потму как этот вопрос выходит за рамки естественных наук

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

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

— В одной шкатулке лежит ключ к твоим кандалам, — сказал король, — и если ты сможешь найти его, ты свободен. Но в другой шкатулке лежит кинжал к твоему сердцу, если ты этого не сможешь.

На первой шкатулке было написано: «Либо обе надписи истинны, либо обе ложны».

На второй шкатулке было написано: «В этой шкатулке лежит ключ».

Шут размышлял так: «Предположим, что первая надпись истинна. Тогда вторая надпись тоже истинна. Теперь предположим, что первая надпись ложна. Тогда вторая надпись всё равно истинна. Так что во второй шкатулке должен лежать ключ, если первая надпись истинна, и если первая надпись ложна. Поэтому во второй шкатулке логически должен лежать ключ».

Шут открыл вторую шкатулку и нашел кинжал.

— Как? — закричал шут в ужасе, когда его утаскивали прочь. — Это логически невозможно!

— Вполне возможно, — ответил король. — Я просто написал эти надписи на двух шкатулках, а потом положил кинжал во вторую.

В общем, как говорил дзенский мудрец: Есть ли у собаки природа Будды? Это самый серьезный вопрос из всех. Если вы ответите да или нет, Вы утратите собственную природу Будды.

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

Пусть расселовское множество существует, тогда [парадокс Рассела]. Следовательно его не существует

Пусть куча существует, тогда [парадокс кучи]. Следовательно куч не существует.

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

Эквивалентными преобразованиями для a=b являются c+a=c+b, c*(a)=c*(b), где c — корректная строка

Но это же не правила грамматики, а проверка вычислением

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

Но это же не правила грамматики, а проверка вычислением

Каким таким вычислением? Пусть a является «3», b является «1+2», то есть «3=1+2» является корректным выражением, тогда «2+3=2+1+2» тоже является корректным выражением. Замечу, что в описании эквивалентных преобразований никакого смысла значкам «+» и «*» не придаётся. Это просто символы между произвольными корректными строками.

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

Это несуществующий парадокс.

А парадокс Рассела существующий?

Понятие «кучи» не определено

А множество Q определено?

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

А парадокс Рассела существующий?

Да

А множество Q определено?

Как формула — да

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

У Вас была бы параллель если бы Вы, например, не определили понятие «множество». Короче,там примитивная софистика, основанная на неоднозначности термина «куча»

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

Из какого грамматического правила, или из каких, следует, что 1=0 некорректное выражение?

Пусть a является «3», b является «1+2», то есть «3=1+2»

Это и есть вычисление. Вы делаете подставновку, и выводите результат. Причем делаете еще и арифметические операции при этом

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

У Вас была бы параллель если бы Вы, например, не определили понятие «множество».

У множества по определению нет возможности не существовать. Потому что множество = совокупность элементов по какому либо критерию. Если таковых элементов нет, то множество является пустым. Если элементы есть, то множество состоит из них. А если из парадокса выводить несуществование, то из апорий Зенона приходится констатировать, что движения и/или самого пространства не существует.

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

У множества по определению нет возможности не существовать. Потому что множество = совокупность элементов по какому либо критерию.

В таком случае есть множество всех чисел, которые являются четными

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

Из какого грамматического правила, или из каких, следует, что 1=0 некорректное выражение?

Его невозможно построить по указанным правилам, значит оно некорректно. Также как для языка Си некорректна строка «1+-/2».

Это и есть вычисление.

Нет. В данном случае это просто строки. Если не вводить сокращённую запись, то будет просто "(1+1+1)=1+(1+1)" и она строится исключительно методами преобразования строк. «2» = сокращение для "(1+1)", а «3» = сокращение для "(1+1+1)".

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

В таком случае есть множество всех чисел, которые являются четными

Конечно. А есть сомнения?

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

Я имел в виду под «всеми числами» вообще все числа, включая нечетные. Это соответствует Вашему заявлению, что множество это люая отсебятина, с заданным свойством.

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

Я имел в виду под «всеми числами» вообще все числа, включая нечетные.

Всё верно. Выбираем вообще все числа, включая нечетные. Применяем к ним предикат «которые являются четными». Получаем искомое множество.

что множество это люая отсебятина, с заданным свойством

набор из элементов, каждый из которых является любой отсебятиной с заданным свойством.

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

Его невозможно построить по указанным правилам, значит оно некорректно

По-моему, Вы не вполне осознаете разницу между грамматикой и проверкой. Вы в своей «грамматике» соаершенно прозрачно используете арифметические вычисления, а гоаорите, что используете только грамматические правила. Из грамматики у вас только одно правило там: a=b, где a и б любое слово языка

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

набор из элементов, каждый из которых является любой отсебятиной с заданным свойством.

Задать Вы все что угодно можете, но это не значит что все заданные множества существуют

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

Если бы было так как Вы говорите, дескать, любое заданное множество с произвольным свойством существовало как семантическая единица, то Парадокса Рассела бы не потребовалось для «опровержения», достаточно было бы задать любое идиотское множество, типа того что выше

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

Мне на полном серьёзе любопытно. Нельзя так спрашивать, да? Ну извини, я не знал.

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

По-моему, Вы не вполне осознаете разницу между грамматикой и проверкой.

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

x1, x2, ..., xn = v1, v2, ..., vn
на уровне грамматики не проверить.

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

Чем множество четных чисел идиотское? Как семантическая единица существует множество любых объектов, отобранных по произвольному свойству (вплоть до множества всех несуществующих объектов).

То же множество из парадокса Рассела определённо существует как семантическая единица, потому что мы о нём можем говорить.

monk ★★★★★
()

Не путай значения слова грамматика в данном контексте.

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

Чем множество четных чисел идиотское?

Не множество четных, а множество всех, или всех натуральных, которые одновременно являются четными

Как семантическая единица существует множество любых объектов, отобранных по произвольному свойству (вплоть до множества всех несуществующих объектов).

Нет. Как семантическая единица может существовать только то множество, которое непротиворечиво. Точно также как выражение «1+2=5» существует как синтаксическая, но ен семантическая единица.

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

Бесконечное множество.

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

Но бесконечное множество не доказано, и об этом речи нет и не было

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

Ты сам его доказал в этом треде. Есть у тебя 3 аксиомы, ты нашел то, что они не покрыли (невыводимую и неопровержимую формулу), ввел четвертую, получил систему из 4-ех аксиом, в них опять из теорем Геделя не всё покрыто, нашел, ввёл пятую и т.д..

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

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

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

Тут можно проще сказать. Что он собственно «открыл»? Любая система содержит невыводимые формулы, и эти формулы являются ее аксиомами.

protsquest
() автор топика

формальная логика сводится к построению грамматически «корректного» языка

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

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

Логика — это и есть формальная, традиционная или аристотелева логика, а к остальным нужно ставить определение(математическая, диалектическая и тд).

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

Точно также как выражение «1+2=5» существует как синтаксическая, но ен семантическая единица.

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

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

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

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

Формулы Геделя невозможно сделать аксиомами, так как из их истинности следует их ложность. Можно запретить их формулировку: «множество Q не существует», утверждение «это утверждение ложно» не является утверждением, .... Но перечислимым запрет быть не может, так как количество таких утверждений бесконечно, а достаточно общий запрет, запрещающий ссылку на себя будет запрещать вообще любые утверждения об утверждениях (иначе утверждение «утверждение в сообщении №... ложно» не содержит слово «себя», но косвенно ссылается).

Чтобы теорема Геделя не работала, надо, чтобы в рамках формальной системы или нельзя было выводить утверждения об утверждениях или невозможно было описать натуральные числа. То есть она, как минимум, не должна содержать арифметику.

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