논리학을 가르치다 보면 자연스럽게 자연 연역을 가르치게 됩니다. 공리적 증명이나 시퀀트 계산은, 강력하지만 교습자가 형식 체계에 대한 이해가 이미 있지 않으면 들이밀기 어렵죠. 진리 나무 방법은 증명이라고 하기엔 너무 덜 강력하고요. 한편, 자연 연역은 쉬우면서도 강력합니다. 공리적 증명과 마찬가지로 완전성을 겸비한 연역 체계를 구성할 수 있고, 자연어 논증과 같은 형식을 갖고 있어서 접근성도 높습니다. 논리 교육 GOAT.
한편, 자연 연역은 논리 상항들을 그 도입 규칙(I-rule)과 제거 규칙(E-rule)을 통해 정의합니다. 가령, ∧의 도입 규칙은 ‘P, Q ⇒ P ∧ Q’ 꼴로 주어지고, 제거 규칙은 ‘P ∧ Q ⇒ P’ 꼴로 주어지죠. 그런 식으로 ∨까지만 해도 잘 정의됩니다. 나아가 →와 ¬의 제거 규칙까지도요…. 문제는 마지막 두 녀석의 도입 규칙에서 등장합니다.
이 두 녀석의 도입 규칙을 위해, 전통적인 자연 연역에서는 ‘가정’(assumption)과 가정의 ‘해제’(discharge)라는 개념이 등장합니다. 그래서 대략 두 도입 규칙은 이런 식으로 소개되지요:
(1) ‘P라는 가정을 도입한 후 Q를 귀결로 얻었다고 하자. 그때 우리는 P를 해제한 뒤, P → Q를 얻는다.’
(2) ‘P라는 가정을 도입한 후 임의의 Q에 대해 Q ∧ ¬Q를 얻었다고 하자. 그때 우리는 P를 해제한 뒤, ¬P를 얻는다.’
그런데 이것들은 엄밀히 말해 ‘도입 규칙’이라고 하기 어렵습니다. 직관적으로, 도입 규칙이란 구문론적(syntactic) 절차를 제공해야 합니다. 연산자 O에 대해, 그 도입 규칙은 O를 포함 않는 문장으로부터 O를 포함하는 문장을 생성하는 절차에 관한 소개로 간주되는 것이 자연스럽단 것이죠. 그리고 이때 ‘O를 포함 않는 문장’이란, O를 갖는 언어의 대상 언어 층위 문장이어야 할 것입니다.
그런데 (1)과 (2)를 형식화하는 가장 자연스러운 꼴은 대충 다음과 같은 무엇입니다:
(1*) (P, X1, …, Xn ⇒ Q) ⇒ (X1, …, Xn ⇒ P → Q)
(2*) (P, X1, …, Xn ⇒ Q ∧ ¬Q) ⇒ (X1, …, Xn ⇒ ¬P)
띠용? 여기에서 ‘⇒’의 양항에는 대상 언어 문장이 아닌, 바로 우리가 지금 쓰고 있는 메타 언어 문장이 취해지고 있습니다.
사실, (2)의 문제는 약간의 형식적 비엄밀함을 감수한다면 다음과 같은 수정으로 개선이 가능합니다:
(2’) X → (P ∧ ¬P) ⇒ ¬X
하지만 (2’)는 여전히 ‘→’에 의존적이고, 따라서 (1)의 문제가 해결되지 않으면 ‘O가 없는 문장에서 O가 있는 문장을 만든다’라는, 도입 규칙에 대한 직관적 이해는 일관적으로 적용될 수 없게 됩니다.
이 지점에서 생각나는 해결책은 둘 정도입니다.
하나, →에 대해서는 도입 규칙을 정의하지 않는다: 이 선택지는 간편하지만, ‘논리 상항의 의미는 그 사용’이라는 비트겐슈타인적 정신을 크게 훼손합니다. 나아가, 자연 연역 체계의 완전성 또한 훼손하고 말지요.
그렇다면,
둘, →-I를 ‘조건화’라는 이름의 메타 규칙으로 밀어내고, 대신 사소한 규칙(가령, ¬P ⇒ P → Q나 Q ⇒ P → Q)을 ‘→’의 도입 규칙으로 취한다: 이 선택지는 자연 연역의 완전성을 유지하면서, →를 사용 규칙에 따라 정의할 수 있게 합니다. 대신 너무나 이상해 보이죠.
그래서 저는 둘 중 어느 것도 고를 수 없었습니다.
그렇다면 조건문에 있어 적절한, 즉, ‘도입’의 개념에 잘 부합하면서도 사소하지 않은 도입 규칙이란 무엇인가…? 여기에서 잠깐 멈춰 있습니다. 여러분께서 아시는 앞선 논의들이나 여러분의 견해가 필요합니다… 도움!
