Логика и язык

Feb 27, 2011 21:24

Интересную тему поднял muharred в комментах к посту о тесте по логике. "Фразы "Я давно там был" и "Я давно там не был" - вроде бы по законам логики должны быть прямым отрицанием друг друга. Но чисто с точки зрения русского языка обе фразы несут одинаковый смысл." Чтобы разобраться в ситуации, я предложил перейти к более строгим формулировкам: Пусть f(t) - логическая функция, означающая, что в момент времени t "я там был", и g(t) - означающая, что t случилось "давно". Тогда получается, что "я давно там был" = "самая поздняя точка, когда я там был, была давно" = g(min{ t | !f(t)}) При этом "я давно там не был" = "самая давняя точка, когда я там всё ещё не был, была давно" = g(max{ t | f(t)}). Вопрос #1: эквивалентны ли эти формулы? Мне думается, что нет: например, если в последний раз, когда я там был, случился "давно", но непосредственно следующий момент времени уже классифицируется как "недавно", то "я давно там был" будет истиной, а "я давно там не был" - ложью. Вопрос #2: изменится ли ответ на вопрос #1, если перейти к непрерывным определениям (на множестве действительных чисел?). Я думаю, что нет. Но сейчас поясню. В случае действительных чисел, max и min могут не существовать, поэтому нужно переформулировать без них: "Я давно там был" = для каждого раза, когда я там был, это было давно = ∀ t: f(t)->g(t) "Я давно там не был" = существует момент, который произошёл "давно", после которого я там никогда не был = ∃ t1: g(t1) & (∀ t > t1: !f(t)) Мне сложно представить себе, как можно определить функцию "давно", чтобы эти выражения были эквивалентны. Простые определения (с открытым и закрытым непрерывным интервалом) допускают краевый случай, когда формулы будут отличаться. Интересно, что psilogic на это скажет :) Update: на самом деле, у меня закралась ошибка (я её специально не буду исправлять, для иллюстрации) - если логике следовать строго, то про момент времени t1 не сказано, был ли я там или нет (вполне может быть f(t1)=true). Таким образом, выражения "я давно там был" и "я давно там не был" получаются абсолютно эквивалентными. Если же заменить t > t1 на t >= t1, то, по сути, добавляется условие !f(t1), что создаёт возможность краевого случая неэквивалентности. Наверное, правильно будет строгое равенство, пусть уж лучше они будут эквивалентны эти выражения :) Update: on the second thought, я немного запутался. Надо будет подумать над этим ещё раз, после работы.
Previous post Next post
Up