과거 실질조건문의 정의를 배울 때는 A->B가 참인 경우는 A, B 모두 참이거나 A가 거짓일 때로 그냥 받아들였다. 보통 입문서에는 문장은 반드시 참이거나 거짓이므로 A가 건짓일 때도 A->B는 진리치가 있어야 하므로 편의상 A가 거짓일 때 A->B는 참으로 정하기로 약속하자고 했었다.

그러나 생각해본 결과 굳이 이렇게 정의하는데는 다른 꽤 좋은 직관이 있는 것 같다.

가령 A가 거짓이고 B가 거짓일 때 A->B를 거짓으로 정의한다면, 상당히 비직관적인 결론을 얻는다. 그렇게 정의한 뒤에 A->A를 생각해보자. A가 거짓일 때 정의에 의해 A->A는 거짓이 된다. 그러나 직관적으로 우리는 A가 거짓이더라도 A를 가정하여 A->A라는 결론을 받아들일 수 있다.

가령 리만가설이 틀렸다고 할지라도, 우리는 '리만가설이 참이라면 리만가설은 참인 것이다'라는 문장은 참이라고 생각한다.

리만가설이 참이라고 가정했을 때 누군가 골드바하의 추측이 참이라는 걸 증명했다고 하자. 즉, '리만가설이 참이라면 골드바하의 추측도 참이다'라는 것이다. 만약 현실에 있어서 리만가설도, 골드바하의 추측도 거짓임이 드러난다고 해서, 리만가설을 참이라고 가정했을 때 골드바하의 추측이 따라 나온다는 것이 거짓이 되는가?

따라서 우리는 A와 B가 모두 거짓이더라도 A->B를 참으로 정의해야 할 좋은 이유가 있다.

마지막으로 A는 거짓, B는 참일 때 A->B를 거짓으로 정의해보자. 이 역시 심각한 비직관을 낳는다. 이 정의를 따르면 MT를 증명할 수 없다. 형식적으로는 A->B이고 ~B이면 ~A를 추론할 수 없게된다. 정식으로는

(A->B & ~B )-> ~A가 거짓인 경우가 생긴다. A를 거짓으로, B를 참으로 두면 정의에 의해 A->B는 거짓이므로 연언의 정의에 의해 전건 전체는 거짓이다. 그리고 ~의 정의에 의해 ~A는 참이 되므로 조건문 전체는 다시 정의에 의해 거짓이다. 그러나 우리는 언제나 이것이 참이라고 상상한다. 사례를 보자.

회장님이 오시면 야근을 한다는 규칙이 있다고 하자. 그리고 만약 야근을 하지 않았다면 우리는 자연스럽게 "그러면 오늘 회장님 안 오셨나보네"라고 생각한다.

그러나 실제에 있어서, 회장님은 오시지 않았으나 야근은 했다고 하자. 이런 상황이 있다고해서 우리는 위와 같은 추론 방식을 거짓이라고 판단하는가? 그런것은 일상적인 직관, 특히 인간은 거짓인 상황을 언제든 상상할 수 있다는 사실에 어긋난다. 따라서 우리는 충분히 A와 B가 거짓이더라도 A->B를 참으로 정의할 좋은 이유를 가지고 있다.


입문서에는 이런 직관을 설명하지 않고 그냥 넘어가는 것이 안타깝다.

Posted by 괴델
,