Написать программу, которая на вход принимает корректное доказательство утверждения В в контексте Г, А,
и перестраивает его в корректное доказательство высказывания A->B в контексте Г.
Получение такого доказательства возможно по теореме о дедукции. Для перестроения будем применять алгоритм из её доказательства.
-
Разделить в первой строке контекст и результат по оператору
|- -
Разделить контекст на гипотезы по
, -
Сохранить список гипотез и отдельно гипотезу
A -
Распарсить список схем аксиом, сохранить дерево для каждой
-
Считать строку
D_i -
Проверить, не содержится ли в строке гипотеза из списка и не соответствует ли строка какой-либо схеме аксиом. Если да, вывести:
D_iD_i->A->D_iA->D_i
-
Проверить, является ли строка гипотезой
A. Если является, вывести:A->(A->A)A->((A->A)->A)(A->(A->A))->(A->(A->A)->A)->(A->A)(A->(A->A)->A)->(A->A)A->A
-
Проверить, является ли строка результатом MP. Для этого:
- Понять, что ни один другой случай не подходит
Если является, вывести:
(A->D_i)->(A->D_i->D_i)->(A->D_i)(A->D_i->D_i)->(A->D_i)A->D_i