이산수학의 논리파트를 배우며 조건(함축)연산자를 배웠습니다. 저는 조건문을 배우면서 진리표에 대한 의문으로 큰 혼동을 겪었는데, 아래 내용은 책에 설명되지 않은 내용을 개인적으로 찾아보며 정리한 것입니다. 틀린 내용이 있다면 지적해주시면 감사하겠습니다.

조건문이란?

우선 조건 연산자의 진리표를 보자.

 

p → q에서 p가 참이고 q가 거짓일 때만 거짓이고 나머지 경우에는 참인 연산자이다. 여기서 p를 전건, 또는 충분조건이라고 한다. q는 후건, 또는 필요조건이라고 한다. 이 조건 연산자를 이용해서 만든 합성 명제 p → q를 조건문이라고 한다.

조건문의 진리표에 대한 혼란

조건연산자는 우리말로 풀어서 흔히 "만약 p이면 q이다"라고 한다. 이를 이용해서 조건문 하나를 하나 만들어보자. 

시험에서 만점 받으면 엄마가 컴퓨터를 사준다.

시험에서 만점을 받았는데 컴퓨터를 받았다면 당연히 위 문장은 참이 된다. 만약 시험에서 만점을 받았는데 컴퓨터를 받지 못했다면? 그렇다면 거짓말을 한 것이므로 위 문장은 거짓이 된다. 직관적으로 생각해도 그렇다. 그런데 문제는 시험에서 만점을 받지 못했을 경우이다. 시험을 망쳤는데 엄마가 컴퓨터를 사줬다면 많은 사람들이 조건문이 거짓이라고 생각한다. 그 이유는 일반적으로 사람이 대화할때 "시험에서 만점 받으면 컴퓨터 사줄게"라는 말을 하는 것은 "시험에서 만점을 안받으면 컴퓨터를 안사줄꺼야"라는 말이 내포되어있기 때문이다. 그러나 위 진리표에서 보다시피 시험을 망쳤을때 엄마가 컴퓨터를 사줬을때도 위 조건문은 참이다. 이 때문에 나는 엄청 혼란이 왔었다.

 

하지만 사실 위 문장을 엄밀히 따져보자. 위 문장에서는 시험에서 만점을 받았을 경우에만 엄마가 컴퓨터를 사준다고 했지, 시험에서 만점을 받지 못했을 경우에 대해서는 아무 이야기도 없었다. 근데 왜 하필이면 전건이 거짓이면 조건문이 무조건 참인지에 대한 의문이 들었다. 그래, 시험을 망쳤을 경우에 어떻게 한다는 이야기는 없었지. 그렇다면 전건이 거짓일때 조건문의 결과는 참이 아니라 "알 수 없음"인 상태 아닌가? 왜 참이라는 것이지?

"조건문이 거짓말이 아니라면, 조건문은 참인 말이다."

위 문장에서는 "시험에서 만점을 받으면 엄마가 컴퓨터를 사준다"라고 했다. 따라서 시험에서 망쳤는데 컴퓨터를 사준 것은 거짓말이 아니다. 조건문이 거짓이 아닌 것이 밝혀졌으므로 조건문의 결과는 "알 수 없음"이 아닌 참이라는 것을 알 수 있다.

 

6이 3의 배수라면 6은 정수이다.
6이 3의 배수라면 2020은 짝수이다.

전건은 참이고, 후건도 참이다. 두 조건문 모두 참이다. 첫번째 문장은 조건문이 참인 것을 직관적으로 쉽게 알 수 있다. 그러나 두번째 문장을 본다면 "저게 도대체 무슨 말이야???"라는 생각이 든다. 일상언어에서는 "A이면 B이다" 라는 문장은 A와 B가 어떤 관계가 있을 때만 참 또는 거짓을 이야기 할 수 있다고 생각한다. 그러나 이산수학에서는 "A이면 B이다" 라는 조건문에서는 그런 관계가 있건 없건 상관없이 참/거짓의 결과가 나온다. A가 항상 참이고 B가 항상 참이면 그냥 조건문도 참인 것이다.

6이 3의 배수라면 6은 무리수이다.
6이 3의 배수라면 2020은 짝수이다.

전건은 참이고, 후건은 거짓이다. 두 조건문 모두 거짓이다. 두번째 문장에서는 6이 3의 배수인건 맞는데 1+2는 10이 아니니 조건문이 거짓말이라고 할 수 있다. 

7이 3의 배수라면 7은 정수이다.
7이 3의 배수라면 2020은 짝수이다.

전건은 거짓이고, 후건은 참인 조건문이다. 두 조건문 모두 참이다. 7이 3의 배수라면 7은 정수라고 했으니, 7이 3의 배수이던 아니던 조건문 자체는 거짓말이 아니다. 즉 참이다. 두번째 문장도 마찬가지로 "7이 3의 배수라면 2020은 짝수이다" 라고 했으니, 거짓말은 하지 않았다. 즉 참이다.

7이 3의 배수라면 7은 무리수이다.
7이 3의 배수라면 2020은 짝수이다.

전건은 거짓이고, 후건도 거짓이다. 두 조건문 모두 참이다. 위와 마찬가지로 7이 3의 배수가 아니기 때문에 조건문은 거짓말을 하지 않았다. 

결론

조건문에 대한 궁금증을 알아보던 과정에서 논리연산자가 사람의 언어(자연어)에 늘 1대1로 들어맞는것은 아니라는 것을 알게 되었다. 사람의 언어는 같은 말이라도 상황에 따라 내포하는 의미가 달라지기 때문에 논리연산자를 언어적으로 풀어봤을 때 전혀 직관적으로 이해가 되지 않을 수 있다. 그럴때는 "아! 조건 연산자라는 놈은 저런 진리표를 가지도록 수학자들이 정의했구나!" 라고 외우면 된다. 더 찾아보니 전건이 거짓일 경우 조건문이 무조건 참이라고 정의해야 조건 연산자가 존재하는 가치가 있기 때문이라고 하는 글도 몇개 있었다. 실제로 조건연산자가 저 위와 다른 진리표를 가진다고 정의한다면 다른 연산자들의 정의와 겹치게 된다. 

'수학 > 이산수학' 카테고리의 다른 글

수의 표현  (0) 2020.08.05
집합의 크기(카디널리티)  (0) 2020.08.03
이산수학이란 무엇인가?  (0) 2020.08.01