В математической логике теорема о дедукции — это метатеорема , которая оправдывает выполнение условных доказательств из гипотезы в системах, которые явно не аксиоматизируют эту гипотезу, то есть, чтобы доказать импликацию A → B , достаточно предположить A в качестве гипотезы, а затем перейти к выводу B. Теоремы о дедукции существуют как для пропозициональной логики , так и для логики первого порядка . [1] Теорема о дедукции является важным инструментом в системах дедукции в стиле Гильберта, поскольку она позволяет писать более понятные и обычно гораздо более короткие доказательства, чем это было бы возможно без нее. В некоторых других системах формального доказательства такое же удобство обеспечивается явным правилом вывода; например, естественная дедукция называет его введением в импликацию .
Более подробно, теорема о выводе пропозициональной логики гласит, что если формула выводима из набора предположений , то импликация выводима из ; в символах подразумевает . В особом случае, когда — пустое множество , утверждение теоремы о выводе можно записать более компактно как: подразумевает . Теорема о выводе для логики предикатов похожа, но имеет некоторые дополнительные ограничения (которые, например, будут выполнены, если — замкнутая формула ). В общем случае теорема о выводе должна учитывать все логические детали рассматриваемой теории, поэтому для каждой логической системы технически нужна своя теорема о выводе, хотя различия обычно незначительны.
Теорема о дедукции справедлива для всех теорий первого порядка с обычными [2] дедуктивными системами для логики первого порядка. [3] Однако существуют системы первого порядка, в которых добавляются новые правила вывода, для которых теорема о дедукции не выполняется. [4] В частности, теорема о дедукции не выполняется в квантовой логике Биркгофа – фон Неймана , поскольку линейные подпространства гильбертова пространства образуют недистрибутивную решетку .
Из примеров вы можете видеть, что мы добавили три виртуальных (или дополнительных и временных) правила вывода к нашей обычной аксиоматической логике. Это «гипотеза», «повторение» и «дедукция». Обычные правила вывода (т. е. «modus ponens» и различные аксиомы) остаются доступными.
1. Гипотеза — это шаг, на котором добавляется дополнительная предпосылка к уже имеющимся. Так, если ваш предыдущий шаг S был выведен как:
затем добавляется еще одна предпосылка H и получается:
Это символизируется переходом от n -го уровня отступа к n +1-му уровню и произнесением [b]
2. Повторение — это шаг, на котором повторно используется предыдущий шаг. На практике это необходимо только тогда, когда нужно взять гипотезу, которая не является самой последней гипотезой, и использовать ее в качестве последнего шага перед шагом дедукции.
3. Дедукция — это шаг, на котором удаляется самая последняя гипотеза (еще доступная) и добавляется префикс к предыдущему шагу. Это отображается путем удаления одного уровня отступа следующим образом: [b]
В аксиоматических версиях пропозициональной логики обычно имеются схемы аксиом (где P , Q и R заменяются любыми предложениями):
Эти схемы аксиом выбраны для того, чтобы из них можно было легко вывести теорему дедукции. Так что может показаться, что мы уклоняемся от ответа. Однако их можно обосновать, проверив, что они являются тавтологиями с использованием таблиц истинности и что modus ponens сохраняет истинность.
Из этих схем аксиом можно быстро вывести схему теоремы P → P (рефлексивность импликации), которая используется ниже:
Предположим, что у нас есть, что Γ и H вместе доказывают C , и мы хотим показать, что Γ доказывает H → C. Для каждого шага S в выводе, который является предпосылкой в Γ (шаг повторения) или аксиомой, мы можем применить modus ponens к аксиоме 1, S →( H → S ), чтобы получить H → S . Если шаг — это сам H (шаг гипотезы), мы применяем схему теоремы, чтобы получить H → H . Если шаг является результатом применения modus ponens к A и A → S , мы сначала убеждаемся, что они были преобразованы в H → A и H →( A → S ), а затем мы берем аксиому 2, ( H →( A → S ))→(( H → A )→( H → S )), и применяем modus ponens, чтобы получить ( H → A )→( H → S ), а затем снова, чтобы получить H → S . В конце доказательства мы будем иметь H → C , как и требовалось, за исключением того, что теперь оно зависит только от Γ, а не от H . Таким образом, шаг дедукции исчезнет, объединенный в предыдущий шаг, который был выводом, полученным из H .
Чтобы минимизировать сложность полученного доказательства, перед преобразованием следует выполнить некоторую предварительную обработку. Любые шаги (кроме заключения), которые фактически не зависят от H, следует переместить перед шагом гипотезы и убрать отступ на один уровень. А любые другие ненужные шаги (которые не используются для получения заключения или могут быть пропущены), такие как повторения, которые не являются заключением, следует устранить.
Во время преобразования может быть полезно поместить все приложения modus ponens к аксиоме 1 в начало вывода (сразу после шага H → H ).
При преобразовании modus ponens, если A находится вне области действия H , то необходимо применить аксиому 1, A →( H → A ), и modus ponens, чтобы получить H → A . Аналогично, если A → S находится вне области действия H , примените аксиому 1, ( A → S )→( H →( A → S )) и modus ponens, чтобы получить H →( A → S ). Не должно быть необходимости делать оба этих шага, если только шаг modus ponens не является заключением, потому что если оба находятся вне области действия, то modus ponens должен был быть перемещен выше H и, таким образом, также оказаться вне области действия.
При соответствии Карри–Ховарда вышеописанный процесс преобразования для метатеоремы вывода аналогичен процессу преобразования из терминов лямбда-исчисления в термины комбинаторной логики , где аксиома 1 соответствует комбинатору K, а аксиома 2 соответствует комбинатору S. Обратите внимание, что комбинатор I соответствует схеме теоремы P → P.
Если кто-то намерен преобразовать сложное доказательство, использующее теорему дедукции, в прямолинейное доказательство, не использующее теорему дедукции, то, вероятно, было бы полезно доказать эти теоремы раз и навсегда в самом начале, а затем использовать их для упрощения преобразования:
помогает преобразовать шаги гипотезы.
помогает преобразовать modus ponens, когда большая посылка не зависит от гипотезы, заменяет аксиому 2, избегая при этом использования аксиомы 1.
помогает преобразовать modus ponens, когда меньшая посылка не зависит от гипотезы, заменяет аксиому 2, избегая при этом использования аксиомы 1.
Эти две теоремы можно использовать вместе вместо аксиомы 2, хотя преобразованное доказательство будет более сложным:
Закон Пирса не является следствием теоремы дедукции, но его можно использовать вместе с теоремой дедукции для доказательства вещей, которые невозможно доказать иным способом.
Его также можно использовать для получения второй из двух теорем, которую можно использовать вместо аксиомы 2.
Мы доказываем теорему дедукции в дедуктивной системе исчисления высказываний в стиле Гильберта. [7]
Пусть будет набором формул и и формул, таких что . Мы хотим доказать, что .
Так как , существует доказательство из . Докажем теорему индукцией по длине доказательства n ; таким образом, гипотеза индукции состоит в том, что для любого и такого , что существует доказательство из длины до n , выполняется.
Если n = 1, то является членом множества формул . Таким образом, либо , в этом случае это просто , что выводится подстановкой из p → p , что выводится из аксиом, и, следовательно, также , либо находится в , в этом случае ; из аксиомы p → ( q → p ) с подстановкой следует , что и, следовательно, по modus ponens, что .
Теперь предположим гипотезу индукции для доказательств длины до n , и пусть будет формулой, доказуемой с доказательством длины n + 1. Тогда есть две возможности:
Таким образом, во всех случаях теорема верна и для n +1, и по индукции теорема о дедукции доказана.
Теорема дедукции верна также в логике первого порядка в следующей форме:
Здесь символ означает «является синтаксическим следствием». Ниже мы покажем, чем доказательство этой теоремы дедукции отличается от доказательства теоремы дедукции в исчислении высказываний.
В наиболее распространенных версиях понятия формального доказательства, в дополнение к схемам аксиом исчисления высказываний (или пониманию того, что все тавтологии исчисления высказываний должны рассматриваться как схемы аксиом сами по себе), существуют кванторные аксиомы и в дополнение к modus ponens одно дополнительное правило вывода , известное как правило обобщения : «Из K вывести ∀ vK ».
Чтобы преобразовать доказательство G из T ∪{ F } в доказательство F → G из T , нужно иметь дело с шагами доказательства G , которые являются аксиомами или являются результатом применения modus ponens таким же образом, как и для доказательств в пропозициональной логике. Шаги, которые являются результатом применения правила обобщения, рассматриваются с помощью следующей аксиомы квантора (действительной, если переменная v не является свободной в формуле H ):
Поскольку в нашем случае F предполагается замкнутым, мы можем взять H в качестве F. Эта аксиома позволяет вывести F →∀ vK из F → K и обобщения, что как раз и необходимо всякий раз , когда правило обобщения применяется к некоторому K в доказательстве G.
В логике первого порядка ограничение того, что F является замкнутой формулой, может быть ослаблено, если свободные переменные в F не изменялись при выводе G из . В случае, если свободная переменная v в F изменялась при выводе, мы пишем (верхний индекс в турникете указывает на то, что v изменялась), а соответствующая форма теоремы о дедукции — . [8]
Чтобы проиллюстрировать, как можно преобразовать естественную дедукцию в аксиоматическую форму доказательства, мы применим ее к тавтологии Q →(( Q → R )→ R ). На практике обычно достаточно знать, что мы можем это сделать. Обычно мы используем естественно-дедуктивную форму вместо гораздо более длинного аксиоматического доказательства.
Сначала мы запишем доказательство, используя метод естественной дедукции:
Во-вторых, преобразуем внутренний вывод в аксиоматическое доказательство:
В-третьих, преобразуем внешний вывод в аксиоматическое доказательство:
Эти три шага можно кратко изложить, используя соответствие Карри–Ховарда :