[Propositional calculus] Простой вопрос
От: dilettante  
Дата: 09.03.11 08:20
Оценка:
Здравствуйте

Разгребая старый макаронный С-код, стал думать как бы составить все логические уравнения (условия) для строк внутри функции с целью упрощения. В конце концов стал учить калкулюс, и читая википедию возник такой вопрос:

Вот тут даются схемы аксиом и далее пример доказательства A → A.
Вопрос: разве, изменив соответствующим образом использование схем аксиом в п. 1 и 2 — не получается, что таким же образом можно доказать A → B, и вообще, А → <что угодно> ? Где ошибка?

PS: В первом шаге считать ψ = B, χ = Z → A и т.д.
Re: [Propositional calculus] Простой вопрос
От: deniok Россия  
Дата: 09.03.11 09:28
Оценка:
Здравствуйте, dilettante, Вы писали:


D>Вот тут даются схемы аксиом и далее пример доказательства A → A.

D>Вопрос: разве, изменив соответствующим образом использование схем аксиом в п. 1 и 2 — не получается, что таким же образом можно доказать A → B, и вообще, А → <что угодно> ? Где ошибка?

D>PS: В первом шаге считать ψ = B, χ = Z → A и т.д.


выкладки сделай, тогда увидишь, где ошибка (ну или мы ткнём).
Re[2]: [Propositional calculus] Простой вопрос
От: dilettante  
Дата: 09.03.11 11:48
Оценка:
Здравствуйте, deniok, Вы писали:

D>Здравствуйте, dilettante, Вы писали:


D>>PS: В первом шаге считать ψ = B, χ = Z → A и т.д.


D>выкладки сделай, тогда увидишь, где ошибка (ну или мы ткнём).


Да, вчера ночью не заметил — а сейчас сделал ещё раз и увидел ошибку, спасибо

Вообще адская вещь, как подходить к доказательству даже чего-то совсем простого — например (Α∧B→C) → (A→B→C) — совершенно не понятно.
Re[3]: [Propositional calculus] Простой вопрос
От: Tilir Россия http://tilir.livejournal.com
Дата: 15.03.11 07:29
Оценка:
Здравствуйте, dilettante, Вы писали:

D>Вообще адская вещь, как подходить к доказательству даже чего-то совсем простого — например (Α∧B→C) → (A→B→C) — совершенно не понятно.


Откройте для себя секвенциальное исчисление, там свойство подформульности сильно упрощает автоматизацию доказательства.
Re[3]: [Propositional calculus] Простой вопрос
От: dilmah США  
Дата: 15.03.11 09:01
Оценка:
D>Вообще адская вещь, как подходить к доказательству даже чего-то совсем простого — например (Α∧B→C) → (A→B→C) — совершенно не понятно.

это исчисление полно, и вывод утверждений в нем это не более глубокая вешь чем разложение формул в ДНФ.
Re[3]: [Propositional calculus] Простой вопрос
От: Silver_S Ниоткуда  
Дата: 24.03.11 23:45
Оценка:
Здравствуйте, dilettante, Вы писали:

D>Вообще адская вещь, как подходить к доказательству даже чего-то совсем простого — например (Α∧B→C) → (A→B→C) — совершенно не понятно.


Сначала избавляешься от ненужных стрелок: A->B == !A | B
А потом как в арифметике начальной школы(только булева арифметика малость отличается), раскрываешь скобочки и убеждаешься что оно==true
Такие штуковины наверное известны? !(A&B)==!A | !B ; ...

(A&B -> C) -> (A->B->C)
!( !(A&B) | C) | (!A | (!B | C))
( A & B & !C) | !(A & B & !C)
X | !X == true
Re[4]: [Propositional calculus] Простой вопрос
От: deniok Россия  
Дата: 25.03.11 05:28
Оценка:
Здравствуйте, Silver_S, Вы писали:

S_S>(A&B -> C) -> (A->B->C)

S_S>!( !(A&B) | C) | (!A | (!B | C))
S_S>( A & B & !C) | !(A & B & !C)
S_S>X | !X == true

Классицист детектед, интуиционисты негодуют.

Доказываем через изоморфизм Карри-Говарда:
curry :: ((a, b) -> c) -> a -> b -> c
curry f x y  =  f (x, y)
Re[5]: [Propositional calculus] Простой вопрос
От: jazzer Россия Skype: enerjazzer
Дата: 25.03.11 06:54
Оценка:
Здравствуйте, deniok, Вы писали:

D>Здравствуйте, Silver_S, Вы писали:


S_S>>(A&B -> C) -> (A->B->C)

S_S>>!( !(A&B) | C) | (!A | (!B | C))
S_S>>( A & B & !C) | !(A & B & !C)
S_S>>X | !X == true

D>Классицист детектед, интуиционисты негодуют.


D>Доказываем через изоморфизм Карри-Говарда:

D>
D>curry :: ((a, b) -> c) -> a -> b -> c
D>curry f x y  =  f (x, y)
D>

тут доказательство в смысле "скомпилируется программа или нет"?
jazzer (Skype: enerjazzer) Ночная тема для RSDN
Автор: jazzer
Дата: 26.11.09

You will always get what you always got
  If you always do  what you always did
Re[6]: [Propositional calculus] Простой вопрос
От: deniok Россия  
Дата: 25.03.11 07:03
Оценка:
Здравствуйте, jazzer, Вы писали:

J>Здравствуйте, deniok, Вы писали:


D>>Здравствуйте, Silver_S, Вы писали:


S_S>>>(A&B -> C) -> (A->B->C)

S_S>>>!( !(A&B) | C) | (!A | (!B | C))
S_S>>>( A & B & !C) | !(A & B & !C)
S_S>>>X | !X == true

D>>Классицист детектед, интуиционисты негодуют.


D>>Доказываем через изоморфизм Карри-Говарда:

D>>
D>>curry :: ((a, b) -> c) -> a -> b -> c
D>>curry f x y  =  f (x, y)
D>>

J>тут доказательство в смысле "скомпилируется программа или нет"?

Да, в смысле, что если мы можем написать валидную функцию с таким типом, то этот тип — теорема логики. Правда, пара (эквивалент И) введена ad hoc, честнее было бы конечно всё делать не в Хаскелле, а в System F. Но у Хаскелла внутреннее представление — это фактически System F (с расширениями, конечно).
Re[3]: [Propositional calculus] Простой вопрос
От: Silver_S Ниоткуда  
Дата: 25.03.11 11:29
Оценка:
Здравствуйте, dilettante, Вы писали:

D>... как подходить к доказательству даже чего-то совсем простого — например (Α∧B→C) → (A→B→C) — совершенно не понятно.

Если писать движок, претендующий на высокую интеллектуальность. То проблема будет не столько в том, как доказать какую-то громоздкую конструкцию, а как найти наиболее простой способ из огромного множества других вариантов.
Если не использовать навороченые теоремы, то в этом примере наиболее простой способ, все-же, самый дубовый. Подстановкой значения A.
(A&B -> C) -> (A->B->C)
Вместо A подставляем true, остается: (B -> C) -> (B->C) == true
Подставляем false: (false -> C) -> (false->(B->C)), из него true->true==true
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.