Lion D.
Philosophy of Logic and Mathematics 본문
내가 앞으로 이야기하는 logic은 모두 mathematical logic에 대한 이야기이다.
우리나라의 모든 사람이 수학을 배우지만, 수학이 무엇인지 정의하기는 까다롭다. 수학은 오로지 생각으로만 존재하는 개념을, 가능한 가장 엄밀한 방법으로 다루는 학문이다. 많은 사람들이 허수(imaginary number)가 실제로 존재하지 않는다고 생각한다. 그러면 실수(real number)는 실제로(really) 존재하는가? 그렇지 않다. 이때 존재한다는 말은 현실에 있다는 말이고, 사과 한 개, 바나나 한 개가 존재한다고 숫자 1이 현실에 있는 것은 아니다. 단지 사과 $i$개라는 표현이 없기 때문에 사람들이 혼란을 가지는 것이다.
왜 수학은 생각으로만 존재하는 개념을 다루는가? 왜냐면 연역적인 결론 도출이 가능하기 때문이다. 연역적 과정을 통해서 얻은 결론이야말로 우리가 의심 없이 믿을 수 있는 것이다. 과학은 수학을 도구로서 사용하는 학문이다. 즉 과학은 수학이 아니고 귀납적인 과정을 통해 결론을 도출한다. 1
이제 수학을 어떻게 구성하는지 생각해 보자. 수학은 참인 명제를 조합하여 새로운 명제를 만드는 것으로서 발전해 나간다. 참인 명제는 세 가지로 구분할 수 있다. 정의, 공리, 정리. A를 B로 정의한다는 것은 앞으로의 모든 문장에서 A가 나타날 때마다 B로 바꾸어 읽으라는 것이다. 공리는 흔히 말하길 '증명 없이 참이라고 받아들이는 명제'이다. 물론 공리를 그렇게 받아들일 수도 있고, 좀 더 포괄적으로는 정의를 하는 다른 방법이다. 우리는 집합과 $\in$ 기호를 엄밀하게 정의하기 위해서 $\mathsf{ZF}$ 공리계를 사용한다. 물론 평행성 공리나 선택공리처럼 참으로 받아들이느냐 마느냐에 대한 논쟁이 강한, 전형적인 공리라 할 수 있는 것들도 많다.
정리는 정의와 공리를 이용해서 참임을 보일 수 있는 명제이다.
이제 논리학에 대해서 이야기해보도록 하자. 20세기 집합론이 태동한다. 흔히 알려진 러셀의 역설은 naive set theory의 모순성을 지목하고, aximomatic set theory를 도입하게 한다. 또한 우리가 논리적으로 구성한 수학적 체계가 과연 모순이 없는 지에 대한 의심을 품게 한다.
수학을 할 때 우리는 natural language를 사용한다. 사실, 조금 엄밀한 natural language를 사용한다. 예를 들면 A '또는' B란 표현은 A와 B가 모두 성립할 경우도 포함한다. 그러나 과연 우리가 사용하는 natural language는 모순이 없는가? 우리가 사용하는 언어가 모순이 있다면, 우리는 모순이 없는 더 제한된, formal language를 사용해야 한다. 그렇기 때문에 propositional logic을 다룬다. 그리고 first-order logic이나 더 높은 order를 가지는 logic을 구성한다. 괴델이 first-order logic의 완전성을 증명했기 때문에 우리는 first-order logic이나, 그 위에 $\mathsf{ZFC}$를 얹은 집합론도 모순 없이 사용할 수 있다. 2
특히나 first-order logic은 natural language의 부분과 isomorphic하다고 할 수 있다.(이걸 증명할 수 있다 보다는, 말이 그렇다는 소리) 그러니 충분히 제한된 natural language에서 집합론을 논하는 것은 문제가 없다.
그런데 문제는...
언뜻 보기에 first-order logic은 집합을 필요로 하는 것처럼 보인다. 요컨대 집합이 먼저냐 논리가 먼저냐 하는 순환 논리에 빠진 것이다. 이 질문에 굉장히 잘 설명되어 있다. 사실 굉장히 답도 잘 달려있다;; 요약하자면 이렇다: 우리는 natural language에서 set theory를 구성해야 한다. 그리고 first-order logic을 구성하고, 이 위에서 다시 $\mathsf{ZF}$를 설립한다. 이때 natural language를 first-order logic과 isomorphic한 것으로 제한하여 사용했다면, first-order logic의 completeness에 의해 제한된 natural language도 complete하다.
즉 first-order logic을 정의하기 위해서는 집합을 필요로 한다. 그러나 이름을 붙이기 전에 이미 존재하는 것이 있다. first-order logic도 그러하기 때문에 우리는 재귀적 정의에 대한 걱정 없이 (제한된) natural language, 또는 first-order logic을 사용할 수 있다.
한편 주의할 점은 괴델이 보인 completeness는 first-order logic의 completeness이지 first-order logic+$\mathsf{ZF}$의 completeness가 아니다! 그래서 $\mathsf{ZFC}$가 있는 것이고...