1. Читал Мендельсона, увидел правило вывода Gen:
если
![$A$ $A$](https://dxdy-02.korotkov.co.uk/f/5/3/d/53d147e7f3fe6e47ee05b88b166bd3f682.png)
- формула, то
![$A \vdash (\forall x)A$ $A \vdash (\forall x)A$](https://dxdy-03.korotkov.co.uk/f/6/c/3/6c30cb86a519336740acfb81a4c698bc82.png)
Мне непонятно, как такая формула может быть правилом вывода, если я могу подобрать
![$A$ $A$](https://dxdy-02.korotkov.co.uk/f/5/3/d/53d147e7f3fe6e47ee05b88b166bd3f682.png)
и значения переменных так, что получится ложный вывод. Например
![$A(x)=[2|x]$ $A(x)=[2|x]$](https://dxdy-02.korotkov.co.uk/f/5/b/a/5ba257b5e53f9f7420a3db3f7a5398c782.png)
(2 делит
![$x$ $x$](https://dxdy-04.korotkov.co.uk/f/3/3/2/332cc365a4987aacce0ead01b8bdcc0b82.png)
),
![$A$ $A$](https://dxdy-02.korotkov.co.uk/f/5/3/d/53d147e7f3fe6e47ee05b88b166bd3f682.png)
задан на множестве целых чисел. Тогда полагая
![$x=2$ $x=2$](https://dxdy-04.korotkov.co.uk/f/3/5/f/35f90009ee25795d1c7343df953d384582.png)
получаем, что посылка истинна, а вывод - нет. Даже представить себе не могу, что здесь не так.
На конечном множестве
![$M=(a_1,...,a_n)$ $M=(a_1,...,a_n)$](https://dxdy-02.korotkov.co.uk/f/5/c/c/5cc42d3e79daa6bb47439e10ee8b7d2182.png)
Gen выглядит вообще убийственно:
![$A(x_j) \vdash A(x_1) \wedge ... \wedge A(x_n)$ $A(x_j) \vdash A(x_1) \wedge ... \wedge A(x_n)$](https://dxdy-02.korotkov.co.uk/f/5/f/6/5f696b120ae4d7f26e84d3ffccb047b282.png)
Давайте сначала поймём, что утверждает правило
![$\mathrm{Gen}$ $\mathrm{Gen}$](https://dxdy-03.korotkov.co.uk/f/a/d/f/adf352a4264e4d5c4c1f689243aa195482.png)
на бытовом языке: Если некоторая формула
![$A(x)$ $A(x)$](https://dxdy-01.korotkov.co.uk/f/4/4/4/44464d5df0694c6ba968e633ffaf880682.png)
истинна при
любых значениях
![$x$ $x$](https://dxdy-04.korotkov.co.uk/f/3/3/2/332cc365a4987aacce0ead01b8bdcc0b82.png)
, то формула
![$\forall x \, A(x)$ $\forall x \, A(x)$](https://dxdy-02.korotkov.co.uk/f/d/f/2/df2de401e414604140f0234c94be403482.png)
также истинна. Вспомните в матанализе сколько раз доказываются теоремы следующим образом. Говорим, пусть
![$\varepsilon$ $\varepsilon$](https://dxdy-02.korotkov.co.uk/f/9/a/e/9ae7733dac2b7b4470696ed36239b67682.png)
-- задано, потом показываем, что что-то верно, для этого эпсилон. А потом говорится, так как эпсилон произвольно, то это верно для любого эпсилон. Вот это и утверждается.
Теперь понятно, что вы делаете здесь не так?
-- Пн сен 13, 2010 14:09:29 --1. Читал Мендельсона, увидел правило вывода Gen:
если
![$A$ $A$](https://dxdy-02.korotkov.co.uk/f/5/3/d/53d147e7f3fe6e47ee05b88b166bd3f682.png)
- формула, то
![$A \vdash (\forall x)A$ $A \vdash (\forall x)A$](https://dxdy-03.korotkov.co.uk/f/6/c/3/6c30cb86a519336740acfb81a4c698bc82.png)
Мне непонятно, как такая формула может быть правилом вывода, если я могу подобрать
![$A$ $A$](https://dxdy-02.korotkov.co.uk/f/5/3/d/53d147e7f3fe6e47ee05b88b166bd3f682.png)
и значения переменных так, что получится ложный вывод. Например
![$A(x)=[2|x]$ $A(x)=[2|x]$](https://dxdy-02.korotkov.co.uk/f/5/b/a/5ba257b5e53f9f7420a3db3f7a5398c782.png)
(2 делит
![$x$ $x$](https://dxdy-04.korotkov.co.uk/f/3/3/2/332cc365a4987aacce0ead01b8bdcc0b82.png)
),
![$A$ $A$](https://dxdy-02.korotkov.co.uk/f/5/3/d/53d147e7f3fe6e47ee05b88b166bd3f682.png)
задан на множестве целых чисел. Тогда полагая
![$x=2$ $x=2$](https://dxdy-04.korotkov.co.uk/f/3/5/f/35f90009ee25795d1c7343df953d384582.png)
получаем, что посылка истинна, а вывод - нет. Даже представить себе не могу, что здесь не так.
На конечном множестве
![$M=(a_1,...,a_n)$ $M=(a_1,...,a_n)$](https://dxdy-02.korotkov.co.uk/f/5/c/c/5cc42d3e79daa6bb47439e10ee8b7d2182.png)
Gen выглядит вообще убийственно:
![$A(x_j) \vdash A(x_1) \wedge ... \wedge A(x_n)$ $A(x_j) \vdash A(x_1) \wedge ... \wedge A(x_n)$](https://dxdy-02.korotkov.co.uk/f/5/f/6/5f696b120ae4d7f26e84d3ffccb047b282.png)
2. Почему в узком исчислении предикатов не пользуются доказательством формул, аналогичных доказательству в алгебре высказываний. Т.е., например, если надо доказать
![$\vdash ((\exists xA(x)) \to C) \to (\forall y(A(y) \to C))$ $\vdash ((\exists xA(x)) \to C) \to (\forall y(A(y) \to C))$](https://dxdy-02.korotkov.co.uk/f/1/c/c/1cc1e9bfb07a7045e936b4abd55b728c82.png)
, то можно рассмотреть 2 случая:
![$C$ $C$](https://dxdy-02.korotkov.co.uk/f/9/b/3/9b325b9e31e85137d1de765f43c0f8bc82.png)
истинно и
![$C$ $C$](https://dxdy-02.korotkov.co.uk/f/9/b/3/9b325b9e31e85137d1de765f43c0f8bc82.png)
неистинно (
![$C$ $C$](https://dxdy-02.korotkov.co.uk/f/9/b/3/9b325b9e31e85137d1de765f43c0f8bc82.png)
- замкнутая формула, поэтому рассматриваем только 2 варианта). Подставляя в эту формулу, получим две формулы:
![$\vdash 1 \to (\forall y 1)$ $\vdash 1 \to (\forall y 1)$](https://dxdy-04.korotkov.co.uk/f/7/f/8/7f84c961b2783cdf8a17cd506cabde2282.png)
и
![$\vdash (\neg (\exists xA(x))) \to (\forall y( \neg A(y)))$ $\vdash (\neg (\exists xA(x))) \to (\forall y( \neg A(y)))$](https://dxdy-04.korotkov.co.uk/f/7/e/6/7e699add7aff64be26aaaf178a47483282.png)
(я здесь пишу
![$C=1$ $C=1$](https://dxdy-01.korotkov.co.uk/f/4/5/3/4530a6b20824de0f6fbe187fdbcfd23f82.png)
, если при интерпретации и подстановке значений переменных
![$C$ $C$](https://dxdy-02.korotkov.co.uk/f/9/b/3/9b325b9e31e85137d1de765f43c0f8bc82.png)
истинно, иначе пишу
![$C=0$ $C=0$](https://dxdy-04.korotkov.co.uk/f/b/1/6/b16f5cc5be180c41902395e595876db282.png)
.
![$(\forall xA(x))=1$ $(\forall xA(x))=1$](https://dxdy-02.korotkov.co.uk/f/1/a/3/1a352a01bf7e8a17294533250636777382.png)
, если для всех
![$A(x)$ $A(x)$](https://dxdy-01.korotkov.co.uk/f/4/4/4/44464d5df0694c6ba968e633ffaf880682.png)
истинно)
Первая формула верна, вторая - тоже, как следствие из определения квантора
![$\exists$ $\exists$](https://dxdy-01.korotkov.co.uk/f/4/2/3/42353da95c0a3784bd8339b6e4fb126082.png)
. Значит в общем формула тоже верна.
Если бы в формуле рассматривали не
![$C$ $C$](https://dxdy-02.korotkov.co.uk/f/9/b/3/9b325b9e31e85137d1de765f43c0f8bc82.png)
, а
![$A(x)$ $A(x)$](https://dxdy-01.korotkov.co.uk/f/4/4/4/44464d5df0694c6ba968e633ffaf880682.png)
, то было бы 4 варианта:
1.
![$(\forall x A(x))=1, A(x)=1, (\exists x A(x))=1$ $(\forall x A(x))=1, A(x)=1, (\exists x A(x))=1$](https://dxdy-04.korotkov.co.uk/f/f/7/1/f7192b1f0751064555191c62bb5f387782.png)
2.
![$(\forall x A(x))=0, A(x)=1, (\exists x A(x))=1$ $(\forall x A(x))=0, A(x)=1, (\exists x A(x))=1$](https://dxdy-02.korotkov.co.uk/f/5/4/4/544fe61e35e083b491c30b234fa07c1a82.png)
3.
![$(\forall x A(x))=0, A(x)=0, (\exists x A(x))=1$ $(\forall x A(x))=0, A(x)=0, (\exists x A(x))=1$](https://dxdy-03.korotkov.co.uk/f/a/9/1/a91b97ea5bd27f1ec0dd3c6950fd556882.png)
4.
![$(\forall x A(x))=0, A(x)=0, (\exists x A(x))=0$ $(\forall x A(x))=0, A(x)=0, (\exists x A(x))=0$](https://dxdy-04.korotkov.co.uk/f/b/7/3/b736e72aef03df74e1a05b927bb94c7082.png)
Их можно было бы подставлять в формулу и отдельно доказывать.
Сам я ответил так: не получится аксиоматизировать теорию + в общем виде алгоритм проверки истинности формулы сложен, особенно если рассматривать предикаты с
![$n$ $n$](https://dxdy-02.korotkov.co.uk/f/5/5/a/55a049b8f161ae7cfeb0197d75aff96782.png)
переменными. Но этот метод хотя бы правомерен, то есть я же им могу пользоваться?
Давайте я здесь тоже без сложных слов обойдусь. Что мы имеем для высказываний:
(1) Алгебра высказываний;
(2) Исчисление высказываний.
И в них принципиально разный подход. в алгебре мы придумываем значения переменных когда что-то доказываем про истинность или ложность, то есть оперируем значениями.
В исчислении высказываний мы имеем набор аксиом и правила вывода. И можем только с помощью них что-то делать, то есть здесь подход синтаксический, к смыслу самой формулы не апеллирующий.
Потом доказывается теорема о полноте, утверждающая, что как бы мы не доказывали всё равно одно и тоже получим.
С предикатами та же петрушка, есть:
(1) Исчисление предикатов;
(2) Теория моделей.
В первом случае мы также имеем только набор аксиом и правила вывода и работаем только с записями формул. Во втором случае мы придумываем модели, то есть носитель и интерпретируем символы сигнатуры. Также есть теорема о полноте.
Коротко: есть два подхода синтаксический и семантический, и они дают одинаковые результаты.