Гильбертова система - автоматизирует доказательство

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

21
задан false 11 June 2014 в 12:57
поделиться

4 ответа

I just saw this blog entry: Money vs. Decimal in SQL Server.

Which basically says that money has a precision issue...

declare @m money
declare @d decimal(9,2)

set @m = 19.34
set @d = 19.34

select (@m/1000)*1000
select (@d/1000)*1000

For the money type, you will get 19.30 instead of 19.34. I am not sure if there is an application scenario that divides money into 1000 parts for calculation, but this example does expose some limitations.

при условии, что Вы уже практиковались в функциональном программировании или комбинаторной логике.


Конечно, есть и другие вспомогательные средства, где мы можем оставаться в сфере логики:

  • доказательство проблемы в какой-нибудь более интуитивной дедуктивной системе (например, естественная дедукция )
  • и затем с использованием метатеорем , которые предоставляют возможность «компилятора»: перевод «высокоуровневого» доказательства естественной дедукции в «машинный код» Система дедукции в стиле Гильберта. Я имею в виду, например, металогическую теорему под названием « теорема дедукции ».

Что касается средств доказательства теорем, насколько мне известно, возможности некоторых из них расширены, так что они могут использовать интерактивный человеческий помощь. Например, Coq .



Приложение

Давайте посмотрим на пример. ⊢ αβα

Axiom scheme — chain rule:


━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [CRα,β,γ]
⊢ (αβγ) ⊃ (αβ) ⊃ αγ

Rule of inference — modus ponens:


αβα
━━━━━━━━━━━━━━━━━━━ [MP]
β



Proof tree

Let us see a tree diagram representation of the proof:


━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [CRα, αα, α] ━━━━━━━━━━━━━━━ [VEQα, αα]
⊢ [ α ⊃ ( α α ) ⊃ α ] ⊃ ( α α α ) ⊃ α α α ⊃ ( α α ) ⊃ α
━━━━━━━━━━━━━━━━ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ [ МП ] ━ ━━━━━━━━━━ [ VEQ α , α ]
⊢ ( α α α ) ⊃ α α α α α
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ━━━━ [ МП ]
αα

Proof formulae

Let us see an even conciser (algebraic? calculus?) representation of the proof:

(CRα,αα,α VEQα,αα) VEQα,α: ⊢ αα

so, we can represent the proof tree by a single formula:

  • the forking of the tree (modus ponens) is rendered by simple concatenation (parentheses),
  • and the leaves of the tree are rendered by the abbreviations of the corresponding axiom names.

It is worth of keep record about the concrete instantiation, that' is typeset here with subindexical parameters.

As it will be seen from the series of examples below, we can develop a proof calculus, where axioms are notated as sort of base combinators, and modus ponens is notated as a mere application of its "premise" subproofs:

Example 1

VEQα,β: ⊢ αβα

meant as

Verum ex quolibet axiom scheme instantiated with α,β provides a proof for the statement, that αβα is deducible.

Example 2

VEQα,α: ⊢ ααα

Verum ex quolibet axiom scheme instantiated with α,α provides a proof for the statement, that ααα is deducible.

Example 3

VEQα, αα: ⊢ α ⊃ (αα) ⊃ α

meant as

Verum ex quolibet axiom scheme instantiated with α, αα provides a proof for the statement, that α ⊃ (αα) ⊃ α is deducible.

Example 4

CRα,β,γ: ⊢ (αβγ) ⊃ (αβ) ⊃ αγ

meant as

Chain rule axiom scheme instantiated with α,β,γ provides a proof for the statement, that (αβγ) ⊃ (αβ) ⊃ αγ is deducible.

Example 5

CRα,αα,α: ⊢ [α ⊃ (αα) ⊃ α] ⊃ (ααα) ⊃ αα

meant as

Chain rule axiom scheme instantiated with α,αα,α provides a proof for the statement, that [α ⊃ (αα) ⊃ α] ⊃ (ααα) ⊃ αα is deducible.

Example 6

CRα,αα,α VEQα,αα: ⊢ (ααα) ⊃ αα

meant as

If we combine CRα,αα,α and VEQα,αα together via modus ponens, then we get a proof that proves the following statement: (ααα) ⊃ αα is deducible.

Example 7

(CRα,αα,α VEQα,αα) VEQα,α: ⊢ αα

If we combine the compund proof (CRα,αα,α) together with VEQα,αα (via modus ponens), then we get an even more compund proof. This proves the following statement: αα is deducible.

Combinatory logic

Although all this above has indeed provided a proof for the expected theorem, but it seems very unintuitive. It cannot be seen how people can "find out" the proof.

Let us see another field, where similar problems are investigated.

Untyped combinatory logic

Combinatory logic can be regarded also as an extremely minimalistic functional programming language. Despite of its minimalism, it entirely Turing complete, but evenmore, one can write quite intuitive and complex programs even in this seemingly obfuscated language, in a modular and reusable way, with some practice gained from "normal" functional programming and some algebraic insights, .

Adding typing rules

Combinatory logic also has typed variants. Syntax is augmented with types, and evenmore, in addition to reduction rules, also typing rules are added.

For base combinators:

  • Kα,β is selected as a basic combinator, inhabiting type αβα
  • Sα,β,γ is selected as a basic combinator, inhabiting type (αβγ) → (αβ) → αγ.

Typing rule of application:

  • If X inhabits type αβ and Y inhabits type α, then X Y inhabits type β.

Notations and abbreviations

  • Kα,β: αβα
  • Sα,β,γ: (αβγ) → (αβ)* → αγ.
  • If X: αβ and Y: α, then X Y: β.

Curry-Howard correspondence

It can be seen that the "patterns" are isomorphic in the proof calculus and in this typed combinatory logic.

  • The Verum ex quolibet axiom of the proof calculus corresponds to the K base combinator of combinatory logic
  • The Chain rule axiom of the proof calculus corresponds to the S base combinator of combinatory logic
  • The Modus ponens rule of inference in the proof calculus corresponds to the operation "application" in combinatory logic.
  • The "conditional" connective ⊃ of logic corresponds to type constructor → of type theory (and typed combinatory logic)

Functional programming

But what is the gain? Why should we translate problems to combinatory logic? I, personally, find it sometimes useful, because functional programming is a thing which has a large literature and is applied in practical problems. People can get used to it, when forced to use it in erveryday programming tasks ans pracice. And some tricks and hints of functional programming practice can be exploited very well in combinatory logic reductions. And if a "transferred" practice develops in combinatory logic, then it can be harnessed also in finding proofs in Hilbert system.

External links

Links how types in functional programming (lambda calculus, combinatory logic) can be translated into logical proofs and theorems:

Links (or books) how to learn methods and practice to program directly in combinatory logic:

23
ответ дан 29 November 2019 в 20:21
поделиться

Система Гильберта обычно не используется в автоматическом доказательстве теорем. Гораздо проще написать компьютерную программу, которая будет делать доказательства с использованием естественной дедукции. Из материала курса CS :

Некоторые часто задаваемые вопросы о системе Гильберта: В: Как узнать, какая аксиома схемы для использования, и которые замены сделать? Поскольку есть бесконечно много возможностей, это невозможно попробовать их все, даже в принцип. A: Алгоритма нет; в по крайней мере, не простой. Скорее, есть быть умным. В чистой математике это не рассматривается как проблема, поскольку больше всего беспокоит наличие доказательства. Однако в приложения для информатики, один заинтересован в автоматизации удержания процесс, так что это фатальный недостаток. В Система Гильберта обычно не используется в автоматическое доказательство теорем. Q: Итак, почему люди заботятся о Гильберте система? A: С modus ponens в качестве единственное дедуктивное правило, он обеспечивает приемлемая модель того, как люди изобретают математические доказательства. Как мы увидим, методы, которые более поддаются компьютерная реализация предоставить доказательства которые менее «похожи на людей».

7
ответ дан 29 November 2019 в 20:21
поделиться

Найти доказательства в исчислении Гильберта очень сложно.

Вы можете попытаться перевести доказательства из исчисления секвенций или естественного вывода в исчисление Гильберта.

5
ответ дан 29 November 2019 в 20:21
поделиться
  1. Which specific Hilbert system? There are tons.
  2. Probably the best way is to find a proof in a sequent calculus and convert it to the Hilbert system.
3
ответ дан 29 November 2019 в 20:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: