6강 / 20강

증명 — 우겨서 이기는 게 아니라 길을 놓는 일

직접증명 · 대우증명 · 귀류법 · 반례

증명 — 우겨서 이기는 게 아니라 길을 놓는 일
증명은 이미 참인 것에서 보이고 싶은 것까지 디딤돌을 놓는 일입니다.

"짝수 두 개를 더하면 짝수다." 여러분은 이게 참이라는 걸 압니다. 그런데 왜 참인가요? 2 + 4 = 6, 10 + 8 = 18… 백 개를 확인해도 증명이 아닙니다. 101번째에서 깨지지 않는다고 누가 보장하죠?

증명(proof)은 이미 참이라고 인정된 것에서 출발해, 규칙을 어기지 않는 걸음으로 목표까지 가는 길입니다. 길이 한 번 놓이면 모든 경우에 대해 끝납니다 — 무한히 많아도요.

이산수학에서 쓰는 길은 네 가지면 충분합니다.

방법언제 쓰나하는 일
직접증명대부분p 라고 치고, 계산해서 q 에 도착
대우증명가정이 다루기 어려울 때¬q 라고 치고 ¬p 에 도착 (3강의 대우)
귀류법"없다 / 무한하다"를 보일 때거짓이라고 치고 모순을 끌어냄
반례∀ 명제를 깨뜨릴 때어기는 예 하나를 제시
컴퓨터의 완전 탐색은 유한한 범위만 확인합니다.
Python 브라우저에서 실행

직접증명 — 정의를 펼쳐 쓰기

주장 : a와 b가 짝수이면 a + b도 짝수이다.

증명. 짝수의 정의는 "2로 나누어떨어지는 수", 즉 어떤 정수 k에 대해 a = 2k 로 쓸 수 있다는 뜻이다.

가정에 의해 a = 2k, b = 2m 인 정수 k, m이 있다.
그러면 a + b = 2k + 2m = 2(k + m) 이다.
k + m은 정수이므로 a + b는 2 × (정수) 꼴이다. 따라서 a + b는 짝수이다. ∎

대부분의 직접증명은 이렇게 정의를 문자로 펼쳐 쓰고, 정리해서, 다시 정의로 접는 모양입니다.

증명 방법 고르기 — 이 주장에는 어떤 길이 어울릴까요
불러오는 중…

대우증명 — 뒤에서 접근하기

주장 : n²이 짝수이면 n도 짝수이다.

직접 하려면 "n²이 짝수다"에서 시작해야 하는데, 제곱근을 다루기가 성가십니다. 대우를 보면 훨씬 쉬워요 — "n이 홀수이면 n²도 홀수이다".

증명(대우). n이 홀수라 하자. 그러면 n = 2k + 1.
n² = (2k+1)² = 4k² + 4k + 1 = 2(2k² + 2k) + 1 — 2 × (정수) + 1 꼴, 즉 홀수이다.
대우가 참이므로 원래 명제도 참이다. ∎

대우가 참이면 원래도 참 — 3강에서 배운 그대로입니다.
Python 브라우저에서 실행

귀류법 — 아니라고 치고 모순을 끌어내기

보이고 싶은 것을 부정한 뒤, 그 가정에서 말이 안 되는 결론을 끌어내는 방법입니다. 말이 안 되는 결론이 나왔으니 출발점이 틀린 것이고, 따라서 원래 명제가 참이라는 거예요.

"~인 것은 없다", "~은 무한히 많다" 처럼 직접 구성하기 어려운 주장에 특히 강합니다.

목록이 유한하다고 치면 언제나 목록 밖의 소수가 만들어집니다.
Python 브라우저에서 실행
예시 40개는 증명이 아닙니다.
Python 브라우저에서 실행
🤔 확인 문제
"n이 홀수이면 n²도 홀수이다"를 증명해서 "n²이 짝수이면 n도 짝수이다"를 얻는 방법은?
🤔 확인 문제
"모든 홀수는 소수이다"가 거짓임을 보이는 가장 짧은 방법은?
🤔 확인 문제
귀류법의 뼈대를 바르게 말한 것은?