LINUX.ORG.RU

Автоматическая проверка выводимости высказывания в заданной формальной теории

 , ,


0

1

A = {X, Y, Z}

A* - множество всех слов над алфавитом A (включая пустое слово).

Правила вывода:

    ∀α ∈ A* : αY ⇒ αYZ

    ∀α ∈ A* : Xα ⇒ Xαα

    ∀α,β ∈ A* : αYYYβ ⇒ αZβ

    ∀α,β ∈ A* : αZZβ ⇒ αβ

Теорема 1:

    XY ⇒ XZ

Задача: определить выводимость Теоремы 1.

----

Ни для кого не будет спойлером, что теорема 1 невыводима. В самом деле, заданного базиса недостаточно, чтобы взяв за аксиому слово XY доказать слово XZ. Это можно доказать так называемым «аналитическим» способом, ручным разбором. Быть может, удастся уложиться на половину листа.

Есть ощущение, что к 2013-му году должен быть способ доказать невыводимость утверждения в рамках заданной формальной теории с алфавитом, элементами и аксиоматической базой.

Прологовский backtracking в данном случае, как и для любых неконструктивных задач, подходит слабо. DCG тоже пристроить некуда.

Coq, как theorem-prover, в подобных задачах автоматического доказательства тоже подходит довольно слабо. Но буду рад ошибиться насчёт него и agda.

Решаема ли эта задача полностью автоматически? Если да, то как, если нет, то почему?

я вообще крайне слабо разбираюсь в вопросе, но задача выглядит тривиальным примером неэффективной процедуры; полностью автоматизировать её на тьюринговом вычислителе невозможно. Coq и Agda могут лишь помочь с автоматической проверкой корректности доказательства (для чего в большинстве случаев и используются)

jtootf ★★★★★
()
Ответ на: комментарий от dmitry_malikov

как-то так. вот маленький список. ставлю бочку пороха против дохлой каракатицы, что исходная задача сводится к word problem в том или ином виде

jtootf ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.