최원배 저자 추론이란 무엇인가라는 책을 읽고 배운점들을 적어본다.
주로 읽은 부분은 3장의 명제논리 추론이었다.
이야기는 아주 단순하게 시작된다. 명제는 어떻게 구분되는가다.
명제는 기본적으로 단순명제와 복합명제로 나눠진다.
내용은 단순하다. 단순명제는 그 자체로 참 거짓의 논리값을 가질 수 있는 명제다.
복합명제는 단순명제가 연결사로 연결된 형태의 명제다.
연결사로는 ~아니다, ~이고 ~, ~ 또는 ~, ~이면 ~이다. 가 있다.
보통 연결사를 접속사처럼 여길 수 있다는 측면에서 '~아니다'가 연결사에 포함된다는 점이 흥미롭다.
책에서는 '~아니다'를 연결사라고 설명하는데 있어 단순명제와 결합되어 새로운 논리값을 가질 수 있는 명제라는 점에서 연결사라고 하면서 설득한다.
이제 단순명제에 대한 예를 들어보자.
영희는 3학년이다. 철수는 3학년이다.
위 두 문장은 단순명제다. 그 자체로 참 또는 거짓의 논리값을 가질 수 있다.
이제 복합명제의 예를 들어보자.
영희는 3학년이고(A) 철수도 3학년이다.(B)
이 문장은 복합명제다. 각 단순 명제 (A), (B)가 참인지 거짓인지에 따라 전체 문장의 참, 거짓이 달라진다.
위의 설명대로라면 '영희는 3학년이 아니다.' 또한 복합명제다.
연결사마다의 특징은 잘 알려진 논리표를 통해 표현할 수 있다.
'~아니다.' 연결사에 대해 알아보자.
우선 'A가 아니다.'라는 문장을 '~A'라는 기호로 표현할 수 있다. 이것의 논리표는 다음과 같이 주어진다.
| A | ~A |
| T | F |
| F | T |
예를 들어, '영희는 3학년이다.'의 부정 표현 '영희는 3학년이 아니다.'는 영희가 3학년이면 거짓이고, 3학년이 아니면 참이된다. 자명하다.
'~ 이고 ~' 연결사의 논리표에 대해서 알아보자. 이런 연결사로 이어진 문장을 연언이라고 하고, 이 문장을 구성하는 문장들을 연언성원이라고 한다.
기호로는 \(A \wedge B\)로 쓴다.
| A | B | \(A \wedge B\) |
| T | T | T |
| T | F | F |
| F | T | F |
| F | F | F |
즉, 명제 A와 명제 B가 동시에 만족될 때(참일 때)만 전체 문장이 참이고 그렇지 않은 모든 경우에 거짓이다. 예를 들어, '영희는 3학년이고 철수도 3학년이다.' 라는 문장이 있을 때 두 사람 모두 실제로 3학년인 경우에만 참이고 둘 중 한명이라도 3학년이 아니면 거짓인 것이다. 여기서 짚고 넘어갈 점은 저런 주장(문장)이 쓰여졌을 때 기본적으로 참값을 갖고 있다고 봐야한다. 이것이 관습이다. 참인지 거짓인지 모르지만 존재하는 문장이라는 느낌으로 쓴 것이 아님을 명백히 해야한다. 그리고 그런 문장은 정말로 참인지 밝혀내는 것이 중요할 것이다.
'~ 또는 ~'연결사의 논리표에 대해서 알아보자. 이런 연결사로 이어진 문장은 선언이라고 하고, 각 구성 문장을 선언성원이라고 한다.
기호로는 \(A \vee B\)로 쓴다.
| A | B | \(A \vee B\) |
| T | T | T |
| T | F | T |
| F | T | T |
| F | F | F |
이것의 예로는 '영희가 3학년 또는 철수가 3학년이다.'가 있다. 진리표처럼 둘 중 하나만 참이어도 주장 전체가 참이다. 두 사람 모두 3학년, 둘중 한명만 3학년인 모든 경우 참이 된다. 다만 모두 3학년이 아닌 경우는 거짓말을 한 것이 된다. 헷갈리는 점은 '~ 또는 ~'이라는 말을 일상적으로 사용할 때는 베타적인 의미에서 쓸 때가 있다는 것이다. 베타적 의미에서 '또는'은 두 문장이 동시에 만족되는 경우는 참으로 여기지 않는다. 가령 위 문장에서의 '또는'을 배타적 의미로 해석하면 영희와 철수가 모두 3학년인 경우는 문장 전체가 거짓이 되는 것이다. 일상에서 베타적 의미로 쓰는 '또는'의 다른 예시는 '그 탈북민은 강원도 또는 인천으로 들어왔다.'라는 문장이 있다. 논리학에서는 기본적으로 베타적인 의미가 아니라 처음 예시에서 처럼 '또는'을 포괄적 의미로 해석한다.
마지막으로 가장 까다로운 '~ 이면 ~' 연결사에 대해서 알아보자.
기호로는 \(A \rightarrow B\)로 쓴다.
| A | B | \(A \rightarrow B\) |
| T | T | T |
| T | F | F |
| F | T | T |
| F | F | T |
앞의 문장 A가 참이면 B가 참일 때 전체 문장이 참이된다. 그리고 B가 거짓이면 전체문장은 거짓이 된다. 여기까지는 이해하기 쉽다. 예를 들어, '영희가 3학년이면 철수도 3학년이다' 라는 문장이 있을 때 영희가 3학년이지만 철수가 그렇지 않다면 문장 전체는 거짓이 된다. 인과 관계가 틀렸다는 면에서 그렇다. 더 좋은 예로, '어떤 도형이 정사각형이면 삼각형이다'라는 문장이 있다. 정사각형이 맞는 어떤 도형은 코너가 3개일 수 없으므로 삼각형이라는 문장은 거짓인데 따라서 전체 문장은 거짓이 되는 것이 맞다. 문제는 앞의 문장이 거짓일 때다. 문장의 자연스러운 의미를 생각하면 거짓일 때의 가정은 취급하지도 않기 때문에 모른다고 답해야 맞는 것 처럼 보인다. 그러나 모든 단순 명제의 논리값에 대한 문장 전체 논리값이 존재해야 한다면 이것은 잘못된 답이다. 따라서 논리학에서는 가능한 모든 경우에서 배제가능한 경우들을 배제한다.
| A | B | \(A \rightarrow B\) | |||
| F | T | T | T | F | F |
| F | F | T | F | T | F |
위 표는 A가 거짓일 때 가능한 네 가지 경우에 대해 적었다. 왼쪽부터 1,2,3,4라고 부르고 각 경우에 대해 어떻게 배제될 수 있는지 살펴보자.
4번이 만약 올바른 논리값이라고 하자. 그러면 전체 논리표는 \(A \wedge B\)와 동일해진다. '~이면~'라는 연결사의 의미가 '~이고~'과 동일하다는 것은 받아들이기 어렵다 따라서 배제한다.
2번이 만약 올바른 논리값이라고 하자. 그러면 전체 논리표는 B와 동일해진다. 'A이면 B이다.'라는 문장이 A의 참 거짓과 관계없이 B만으로 참 거짓을 판별할 수 있는 문장이 된다는 것이다. 이것도 받아들일 수 없기 때문에 배제한다.
3번이 만약 올바른 논리값이라고 하자. 그러면 논리표에 대칭성이 생긴다. 즉, 'A이면 B이다.'와 'B이면 A이다.'가 A, B의 논리값에 따라 똑같은 전체 논리값을 갖게 되는 것이다. '도형이 정사각형이면 그 도형은 사각형이다.'에서 전체 문장이 참이라고 해보자. 그러면 '도형이 사각형이면 그 도형은 정사각형이다.'라는 문장도 참이되는 꼴이다. 이것도 받아들이기 어렵다. 따라서 배제한다. 이제 남는 경우는 1번밖에 없기 때문에 논리표를 완성하기 위한 값들로 1번 경우를 채택한다.
이것을 받아들이기 위해 좀 더 직관적인 설명 방법도 있다. 'A이면 B이다.'라는 문장은 A가 참일때 B가 거짓인 경우에 거짓임을 표현하는 문장이라는 것이다. 따라서 이런 경우만 아니면 모두 참으로 보는 것이다.
일상생활에서 조건문을 어떻게 사용하고 있는지 관찰해보자. 책에서는 조건문을 직설적 조건문(indicative conditionals)와 가정법적 조건문(subjunctive conditionals)로 나눈다. 가정법적 조건문은 가정하는 내용이 거짓인 경우만 사용된다. 예를 들면, '6.25 전쟁이 일어나지 않았다면 한국은 좀 더 안전한 나라였을 텐데.' 같은 문장이 가정법적 조건문이다. 이런 경우 앞문장이 거짓이기 때문에 뒤 문장의 진위 여부에 상관없이 위 진리표에 따라 전체 문장은 참이 된다. 하지만 일상에서 그런 의미로 사용되지 않기 때문에 가정법적 조건문이 위 논리표대로의 의미를 지닌다고 하기는 어려워 보인다. 그렇다고 직설적 조건문이 완전히 위의 진리표대로의 의미를 갖고 있는지는 의문이다.
명제논리 추론이란 무엇인가.
우선 제거추론에 대한 설명을 먼저 살펴보았다.
1. 연언 제거추론 : 'A이고 B'라는 문장이 있으면 'A가 참이다.'와 'B가 참이다.'로 쪼갤 수 있다는 것이다.
2. 이중부정 제거추론 : 'A가 틀리다는 사실이 아니다' 처럼 A문장의 이중 부정 문장은 A가 참임을 의미한다.
3. 조건언 제거추론 : 'A이면 B다.'라는 사실에 'A가 참이다.'라는 문장이 있으면 B도 참이다.
4. 선언 제거추론 : 'A 또는 B다.'라는 문장과 'A이면 C다.'와 'B이면 C다.'라는 문장이 동시에 주어져 있으면 C가 참임을 알 수 있다.
이걸 보고서 느낀 것은 논리적 추론이란 단순명제 S1, ..., SN에 대한 복합명제 F가 참이면서 단순명제들 중 몇개에 대해 논리값이 주어졌을 때 정해지지 않은 다른 단순명제들의 논리값을 유일하게 결정하는 문제라고 할 수 있겠다. N개의 단순명제가 주어지면 N-1개가 주어졌을 때만 유일하게 결정될까? 어떤 비선형 다변수 함수가 값이 1인 지점이 1개인 경우가 존재하지 않는다고 단정할 수 없는 것 처럼 복합명제를 구성하는 방법에 따라 꼭 N-1개의 진리값이 주어져 있지 않다고 하더라도 추론을 완료할 수 있을지도 모른다.
그런 예시 한개만 생각해보자.
시도1 : (A and (B and ~C)) or (~A and (~B and C))
이런 문장이 참이면 A가 참이라는 것만 가정해도 B가 참, C가 거짓이라는 사실을 추론할 수 있다.
또는 A가 거짓이면 B가 거짓이고 C가 참임을 추론하는 것도 가능하다.
실제적으로 이런 논리표현을 사용하는 경우가 무엇이 있을까?
같은 표현으로는 (A and not(B->C)) or (~A and not(C->B)) = not(A->B->C) or not ((~A)->C->B) = not(A->B->C and (~A)->B->C)가 있다.
이것은 아직 잘 모르겠다.
다음에는 도입추론에 대한 설명으로 이어진다.