2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение27.03.2015, 17:57 
Заслуженный участник


27/04/09
28128
Kosat в сообщении #996352 писал(а):
«Булева алгебра» – подмножество «исчисления высказываний»?
Не, ни в каком смысле.

Kosat в сообщении #996352 писал(а):
Мне нужен алгоритм………
Ну тогда выведите сначала все аксиомы Клини
Схемы аксиом для исчисления высказываний писал(а):
\begin{gather} 
F\to(G\to F) \\ 
(F\to G)\to((F\to(G\to H))\to(F\to H)) \\ 
F\to(G\to F\wedge G) \\ 
F\to F\vee G \\ 
F\to G\vee F \\ 
F\wedge G\to F \\ 
F\wedge G\to G \\ 
(F\to G)\to((H\to G)\to(F\vee H\to G)) \\ 
(F\to G)\to((F\to\neg G)\to\neg F) \\ 
\neg\neg F\to F 
\end{gather}
из ваших.

Эти аксиомы дают серию полезных выводимостей $F,G\vdash F\wedge G$, $F\vdash F\vee G$ и т. д., которые можно использовать для «собирания» формул (введения связок, как в указанном) и их «разбирания» (удаления связок, как в $F\wedge G\vdash F$).

(Оффтоп)

Вообще я бы убрал скобки в $a\to(b\to(c\to\ldots))$ и написал так:

\begin{gather} 
F\to G\to F \\ 
(F\to G)\to(F\to G\to H)\to F\to H \\ 
F\to G\to F\wedge G \\ 
F\to F\vee G \\ 
F\to G\vee F \\ 
F\wedge G\to F \\ 
F\wedge G\to G \\ 
(F\to G)\to(H\to G)\to F\vee H\to G \\ 
(F\to G)\to(F\to\neg G)\to\neg F \\ 
\neg\neg F\to F 
\end{gather}

Если обращение с формулами освоено хорошо, такое дополнительное соглашение о расстановке скобок может помогать чтению.

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение27.03.2015, 19:31 
Заслуженный участник


02/08/11
6892
Kosat в сообщении #996352 писал(а):
Трюк – это из всех строк сделать одну?
Да.

-- 27.03.2015, 20:47 --

Kosat в сообщении #996352 писал(а):
автология – это общезначимое высказывание, общезначимое высказывание – это тавтология. Но на вход моей задачи могут даваться не только общезначимые высказывания - в таком случае алгоритм должен выдавать наборы данных, на которых высказывания ложны.
В общем, булева алгебра является точной моделью исчисления высказываний. Тавталогии исчесления высказываний - это тождества булевой алгебры. Поэтому проверить выводимость формулы очень легко - надо просто проверить тождественность соотвествующей формулы булевой алгебры.
Более того, алгоритм, вычисляющий формулу булевой алгебры для определённых значений входящих переменных, несложно превратить в алгоритм, доказывающий соответствующую формулу в исчислении высказываний. Например, как вы будете проверять тождественность $A \to A$?. Возьмёте сначала $A = 1$, подставите и посчитаете эту импликацию - получится истина ($1$). Потом возьмёте $A=0$ - получится опять истина. Всё, все варианты перебрали - значит тождество. Как её доказывать? Да то же самое. Сначала доказываем из гипотезы $A$ - это элементарно делается. Потом из гипотезы $\neg A$ - опять элементарно. Всё, можно считать, что мы доказали эту формулу, поскольку с помощью дедукции эти два доказательства просто превращаются в искомое полное доказательство.

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение27.03.2015, 23:09 
Аватара пользователя


07/01/14
119
arseniiv в сообщении #996549 писал(а):
Ну тогда выведите сначала все аксиомы Клини
Схемы аксиом для исчисления высказываний
писал(а):
...
из ваших.


Я не понимаю алгоритма и при выводе на бумаге. Делаю наугад. Такие дела.

-- 27.03.2015, 23:11 --

warlock66613 в сообщении #996616 писал(а):
Более того, алгоритм, вычисляющий формулу булевой алгебры для определённых значений входящих переменных, несложно превратить в алгоритм, доказывающий соответствующую формулу в исчислении высказываний. Например, как вы будете проверять тождественность $A \to A$?. Возьмёте сначала $A = 1$, подставите и посчитаете эту импликацию - получится истина ($1$). Потом возьмёте $A=0$ - получится опять истина. Всё, все варианты перебрали - значит тождество. Как её доказывать? Да то же самое. Сначала доказываем из гипотезы $A$ - это элементарно делается. Потом из гипотезы $\neg A$ - опять элементарно. Всё, можно считать, что мы доказали эту формулу, поскольку с помощью дедукции эти два доказательства просто превращаются в искомое полное доказательство.


Меня интересует вот этот момент: "Сначала доказываем из гипотезы $A$ - это элементарно делается. Потом из гипотезы $\neg A$ - опять элементарно." В алгоритмической плоскости, для любых входных формул. Не ясно...

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение28.03.2015, 00:20 
Заслуженный участник


02/08/11
6892
Kosat, алгоритм проверки формулы по таблице истинности представляете? Когда сначала для каждой буквы устанавливается - истинна она или ложна, затем для выражений, образованных из этих букв, затем для выражений из выражений и так далее, пока до формулы не дойдём.
Например, та же $A \vee B \to B \vee A$. Начинаем с четырёх стартовых позиций - четырёх строк таблицы истинности. Например, для случая $A=0$, $B=1$. Вычисляем $A$: $A=0$. Вычисляем $B$: $B=1$. Затем вычисляем $A \vee B = 0 \vee 1 = 1$. Затем вычисляем $B \vee A = 1 \vee 0 = 1$. Наконец вычисляем всё выражение $A \vee B \to B \vee A = 1 \to 1 = 1$. А откуда мы знаем, что $0 \vee 1 = 1$, $1 \to 1 = 1$ и т. д.? А у нас должны быть забиты в программу таблички, в которых все возможные варианты записаны.

Доказательство производится также. Только вместо "рассчитать значение подвыражения $X$ - $1$ или $0$" для каждой подформулы $X$ нужно написать доказательство - либо доказательство $X$, либо доказательство $\neg X$. Например, для случая $\neg A$, $B$. Доказываем $\neg A$: $\neg A$. Доказываем $B$: $B$. Затем доказываем $A \vee B$. Как? А у нас должны быть забиты в программу таблички, в которых все возможные варианты записаны. Только теперь это должны быть таблички функций. В предыдущем случае у нас для дизъюнкции была табличка из четырёх строк, так?
Вот такая:
Код:
x | y | x V y
0 | 0 |   0
0 | 1 |   1
1 | 0 |   1
1 | 1 |   1

И здесь у нас тоже должна быть такая же табличка их четырёх строк. Но теперь каждая строка - это не тройка чисел, а функция, которая принимает два аргумента. Первый аргумент - это ряд формул, доказательство $X$ либо $\neg X$ - в зависимости от строки таблицы. Второй аргумент - опять же ряд формул, доказательство $Y$ или $\neg Y$ - опять же в зависимости от строки. А возвращать эти функции должны соответственно доказательство $X \vee Y$ (для функций из нижних трёх строк) или $\neg(X \vee Y)$ (для функции в верхней строке).

Таким образом, мы выбираем подходящую функцию и скармливаем ей доказательство $\neg A$ (а это, напоминаю, просто список из одной формулы - собственно $\neg A$) и доказательство $B$ (аналогично, список из одной этой формулы). И получаем на выходе доказательство $A \vee B$. Дальше таким же макаром получаем доказательство $B \vee A$. Наконец, берём табличку для импликации, берём фукцию из последней строки, скармливаем ей имеющиеся у нас на этом этапе доказательства $A \vee B$ и $B \vee A$, и получаем назад искомое доказательство.

Видите - всё очень просто, надо только накодить эти таблички функций. Всего функций будет 14 штук - две для отрицания и по четыре для остальных операций.

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

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение30.03.2015, 21:19 
Аватара пользователя


07/01/14
119
Идея мне понятна довольно приблизительно. Как ваши нынешние слова соотносятся с предыдущим доказательством/выводом (опустим необходимость «вклинить» доказательство $A \to A$ непосредственно в тело основного вывода)? Дело в том, что я по-прежнему слаб даже в доказательствах на бумаге. Я понимаю, что нам сейчас нужно доказать $\neg A \to (\neg B \to \neg (A \to B))$, но как это сделать? И даже когда мы докажем парочку формул, как их скомбинировать? Например, $A \to \neg \neg A$? Извините за задержки в общении - я пытался разобраться в сказанном вами и у меня есть и другие задания.

Вот эти схемы аксиом, похоже, у нас используются (судя по примерам входных данных):
$$1: A \to (B \to A)$$
$$2: (A \to B) \to ((A \to B \to C) \to (A \to C))$$
$$3: A \wedge B \to A$$
$$4: A \wedge B \to B$$
$$5: A \to (B \to A \wedge B)$$
$$6: A \to A \vee B$$
$$7: B \to A \vee B$$
$$8: (A \to Q) \to ((B \to Q) \to (A \vee B \to Q))$$
$$9: (A \to B) \to ((A \to \neg B) \to \neg A)$$
$$10: \neg \neg A \to A$$
Хотя, наверно, можна брать и другие. Суть же не в этом...

Благодарен за помощь.

 Профиль  
                  
 
 Posted automatically
Сообщение30.03.2015, 21:49 
Супермодератор
Аватара пользователя


20/11/12
5728
 i  Тема перемещена из форума «Помогите решить / разобраться (М)» в форум «Математика (общие вопросы)»
Причина переноса: долгая тема

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение30.03.2015, 22:08 
Заслуженный участник


27/04/09
28128

(Оффтоп)

Kosat в сообщении #998184 писал(а):
Хотя, наверно, можна брать и другие. Суть же не в этом...
Суть в том числе и в этом, потому что, чтобы взять другие, нужно сначала их вывести из тех, которые есть, а также в обратную сторону. :-)

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение30.03.2015, 23:04 
Аватара пользователя


07/01/14
119

(Оффтоп)

arseniiv в сообщении #998209 писал(а):
Суть в том числе и в этом, потому что, чтобы взять другие, нужно сначала их вывести из тех, которые есть, а также в обратную сторону. :-)


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

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение30.03.2015, 23:19 
Заслуженный участник


27/04/09
28128

(Оффтоп)

Kosat в сообщении #998257 писал(а):
Все наборы схем аксиом имеют одинаковую выразительную мощность.
Ну, просто обычно при изучении предлагают пользоваться только чем-то одним или тем, что явно доказано быть эквивалентным ему, иначе при некоторой вольности можно было бы составить циклическое «доказательство» чего-нибудь. В общем, это я так, особо ни о чём, потому и в блоке оффтопа спрятал.

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение07.04.2015, 21:54 
Аватара пользователя


07/01/14
119
Вторая схема аксиом, из тех, которые, похоже, у нас используются (судя по примерам входных данных), звучит не
$$2: (A \to B) \to ((A \to B \to C) \to (A \to C))$$
, а
$$2: (A \to B) \to ((A \to (B \to C)) \to (A \to C))$$

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение10.04.2015, 06:00 
Аватара пользователя


07/01/14
119
warlock66613 в сообщении #996729 писал(а):
Если эта идея понятна, можете начинать писать функцию для первой строки таблицы импликации. Я вам помогу.


Вот доказательство первой строки таблицы импликации по аксиоматике в Википедии:
$$\neg A, \neg B \vdash A \to B$$
$$\Box \neg A \to (\neg A \to B) \eqno{A}_{9}$$
$$\neg A \to B \eqno{m. p.}\blacksquare$$

Вторая доказывается абсолютно аналогично. Вот она:
$$\neg A, B \vdash A \to B$$

Доказать же третью в данной аксиоматике я не знаю как. Внушает надежды десятая схема аксиом, но проблема в том, что последовательному применению modus ponens мешает наличие В и его отрицания в последовательных импликациях. Вот третья строка, как я её понимаю:
$$A, \neg B \vdash \neg (A \to B)$$

Четвёртую вы уже доказали:
$$A, B \vdash A \to B$$

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

Пока делаю остальные задачи - дошёл уже до эффективного формирования ПОЛИЗа. Смотрю и смотрю на самые начальные строки доказательства вашего примера. Должна быть связь с рекомендованным вами "последовательным сниманием кожуры" с выражения, но я её плохо вижу. Но, по внимательному прочтению разнообразных источников, начинаю осознавать ваш способ как единственно возможный. Помогите, пожалуйста - я же сделал доказательство первой (и второй) строк таблицы импликации по аксиоматике в Википедии.

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение16.04.2015, 11:51 
Аватара пользователя


07/01/14
119
Я сделал первую задачу (всё-таки приложу файл pdf), теперь думаю над второй. Подробно растолкованный пользователем warlock66613 способ включал теорему о дедукции, которая находится под номеро 15.4 по моей ссылке Формализованное исчисление высказываний. Но там используется не та система схем аксиом, что мне нужно. Как из системы схем аксиом Клини (см. выше в теме) вывести вторую схему аксиом Гильберта??? Заранее спасибо всем откликнувшимся.

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение30.04.2015, 18:00 
Аватара пользователя


07/01/14
119
Я решил и вторую задачу. При рассмотрении четвёртой я столкнулся с трудностью осуществления шага 1б в доказательстве теоремы о дедукции 15.4. Вот удачные и неудачные примеры реализации схем аксиом и правил вывода исчисления предикатов, которые мне удалось вычленить из примеров к четвёртому заданию. Они настолько отличаются от того, что дано в Википедии, и настолько странно выглядят, что я в затруднении (да и с имеющимся в Википедии я не знаю, как сделать этот шаг). Особенно надеюсь и смиренно уповаю на помощь уважаемого arseniiv и других интересующихся (конструктивной?) логикой пользователей.

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение01.05.2015, 03:37 
Заслуженный участник


27/04/09
28128
Выглядят, действительно, чуть странно. Видимо, @ и ? обозначают кванторы и, видимо, это соответственно $\forall,\exists$. Формулы видны из чистого исчисления предикатов, его же с равенством, и всего этого с арифметикой. Судя по всему, вы должны написать программу, которая проверяет, правильны ли выводы или нет (это не то же самое, что получать выводы данных формул или показывать, что вывода нет; проще). Чего ещё сказать, не придумал пока.

На всякий случай переведу все небуквенные символы из формул в том файле, если что-то ещё непонятно:

( ) , -> & ! @ ? = 0 ' + *
$${(}\;{)}\;{,}\qquad{\to}\;{\wedge}\;{\neg}\;{\forall}\;{\exists}\qquad{=}\qquad{0}\;{'}\;{+}\;{\cdot}$$Первые две группы вам знакомы; дальше идёт двуместный предикатный символ для обозначения равенства; потом идут чисто арифметические: константа (или нульместный функциональный символ) для обозначения нуля, одноместный ф. символ для обозначения следующего числа ($n'$ — это $n$ плюс 1), двуместные ф. символы для сами знаете чего. :-)

Kosat в сообщении #1009623 писал(а):
При рассмотрении четвёртой я столкнулся с трудностью осуществления шага 1б в доказательстве теоремы о дедукции 15.4.
Ничего напоминающего 16 там не нашёл. :roll:

UPD: Если имеется в виду следствие 15.6, там математической индукцией по числу гипотез.

(Оффтоп)

Я так всё расписал только лишь на случай, если где-то дыра. Не ругайте за замещение К. О..

 Профиль  
                  
 
 Re: Как доказать общезначимое высказывание с помощью исчисления
Сообщение01.05.2015, 12:17 
Аватара пользователя


07/01/14
119
Ваш быстрый ум идёт рука об руку с некоторой невнимательностью. В посте чуть выше я давал файл с условиями задач. Теперь я пытаюсь реализовать изменение обычного вывода на вывод после применения теоремы о дедукции - но уже в формальной арифметике основанной на исчислении предикатов с равенством. Кроме кучи проблем чисто программистского свойства, непонятны и логические переходы. Например - как через правило (в нашем случае - правила) вывода обобщения выразить $F_m \to B_1$ (или, другими словами, $F_m \to F_m^`$ - но уже не $F_m \to F_m$, как в исчислении предикатов без этих правил вывода из одной строки в другую) из доказательства теоремы о дедукции. Уверен, это один из тех вопросов, которые легко решит человек, владеющий таинством логических формул.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 59 ]  На страницу Пред.  1, 2, 3, 4  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group