Linearism › 이산수학 › DM.3

3강. 증명 방법

이산수학 · 1부. 논리와 증명

기본 · 약 15분 · 연습문제 6

요약

직접 증명, 대우 증명, 귀류법, 경우 나누기, 존재 증명과 반례, 필요충분조건

증명은 참이라고 받아들인 것(정의, 공리, 이미 증명한 정리)에서 출발해 논리 규칙만으로 결론에 이르는 글입니다. 2강의 조건문과 한정기호가 증명의 문법이라면, 이 강은 자주 쓰는 증명의 틀을 다룹니다. 선형대수 1장 “증명하는 법”과 내용이 겹치지만, 여기서는 정수에 관한 예로 연습합니다.

3.1 정의를 먼저 적는다

정의 3.1 (짝수, 홀수). 정수 nn이 어떤 정수 kk에 대해 n=2kn = 2k이면 짝수, n=2k+1n = 2k + 1이면 홀수입니다.

정의 3.2 (나누어떨어짐). 정수 a≠0a \ne 0, bb에 대해 b=akb = ak인 정수 kk가 있으면 “aa가 bb를 나눈다”고 하고 a∣ba \mid b로 씁니다.

증명의 첫 줄은 대개 가정을 정의로 풀어 쓰는 것입니다. “nn이 짝수”라고 쓰고 멈추지 말고 “n=2kn = 2k인 정수 kk가 있다”까지 씁니다.

3.2 직접 증명

p→qp \to q를 보이려면 pp를 가정하고 qq를 끌어냅니다.

정리 3.3. 두 홀수의 곱은 홀수입니다.

증명. m=2a+1m = 2a + 1, n=2b+1n = 2b + 1이라 합시다. 그러면

mn=4ab+2a+2b+1=2(2ab+a+b)+1mn = 4ab + 2a + 2b + 1 = 2(2ab + a + b) + 1

이고 2ab+a+b2ab + a + b는 정수이므로 mnmn은 홀수입니다. □

정리 3.4 (나누어떨어짐의 추이성). a∣ba \mid b이고 b∣cb \mid c이면 a∣ca \mid c입니다.

증명. b=akb = ak, c=blc = bl이면 c=a(kl)c = a(kl)이고 klkl은 정수입니다. □

3.3 대우 증명

p→qp \to q와 대우 ¬q→¬p\neg q \to \neg p는 동치(1강)이므로, 대우를 증명해도 됩니다. 결론의 부정이 다루기 쉬울 때 씁니다.

정리 3.5. n2n^2이 짝수이면 nn은 짝수입니다.

증명. 대우 “nn이 홀수이면 n2n^2은 홀수”를 보입니다. 이는 정리 3.3에서 m=nm = n으로 둔 경우입니다. □

직접 증명하려 하면 “n2=2kn^2 = 2k이면 n=2kn = \sqrt{2k}”처럼 정수 밖으로 나가게 되어 막힙니다.

3.4 귀류법

qq를 보이려면 ¬q\neg q를 가정하고 모순(어떤 rr과 ¬r\neg r이 동시에 참)을 끌어냅니다.

정리 3.6. 2\sqrt{2}는 무리수입니다.

증명. 2\sqrt{2}가 유리수라고 가정하고, 기약분수 2=a/b\sqrt{2} = a/b(a,ba, b는 공약수 1뿐인 정수, b≠0b \ne 0)로 씁시다. 양변을 제곱하면 a2=2b2a^2 = 2b^2이므로 a2a^2은 짝수이고, 정리 3.5에 따라 aa도 짝수입니다. a=2ca = 2c를 넣으면 4c2=2b24c^2 = 2b^2, 곧 b2=2c2b^2 = 2c^2이므로 bb도 짝수입니다. 그러면 aa와 bb가 공약수 2를 가져 기약분수라는 가정과 모순입니다. □

정리 3.7 (유클리드). 소수는 무한히 많습니다.

증명. 소수가 유한개 p1,…,pnp_1, \dots, p_n뿐이라고 가정합시다. N=p1p2⋯pn+1N = p_1 p_2 \cdots p_n + 1은 1보다 크므로 어떤 소수 pp로 나누어떨어집니다. pp는 p1,…,pnp_1, \dots, p_n 가운데 하나여야 하지만, NN을 어느 pip_i로 나눠도 나머지가 1이므로 모순입니다. □

3.5 경우 나누기

가정이 몇 가지 경우로 나뉘면 각 경우를 따로 증명합니다. 모든 경우를 빠짐없이 다뤘는지 확인하는 것이 중요합니다.

정리 3.8. 모든 정수 nn에 대해 n2+nn^2 + n은 짝수입니다.

증명. nn이 짝수이면 n=2kn = 2k이고 n2+n=2(2k2+k)n^2 + n = 2(2k^2 + k)입니다. nn이 홀수이면 n=2k+1n = 2k + 1이고 n2+n=(2k+1)(2k+2)=2(2k+1)(k+1)n^2 + n = (2k+1)(2k+2) = 2(2k+1)(k+1)입니다. 어느 경우든 짝수입니다. □

(짧게는 n2+n=n(n+1)n^2 + n = n(n+1)이 연속한 두 정수의 곱이라 하나는 짝수라고 해도 됩니다.)

3.6 존재 증명과 반례

∃x P(x)\exists x\, P(x)는 그런 xx를 하나 보이면 됩니다(구성적 증명). ∀x P(x)\forall x\, P(x)가 거짓임을 보이려면 P(x)P(x)가 거짓인 xx 하나, 곧 반례(counterexample)를 보이면 됩니다.

예제 3.9. “모든 소수는 홀수”는 반례 22로 거짓입니다. “n2+n+41n^2 + n + 41은 모든 자연수 nn에서 소수”는 n=0n = 0부터 3939까지 참이지만 n=40n = 40에서 402+40+41=41240^2 + 40 + 41 = 41^2이므로 거짓입니다. 예를 많이 확인해도 증명이 되지 않는다는 좋은 예입니다.

3.7 필요충분조건

p↔qp \leftrightarrow q(“pp일 필요충분조건은 qq”)는 p→qp \to q와 q→pq \to p를 따로 증명합니다.

정리 3.10. 정수 nn에 대해, nn이 짝수일 필요충분조건은 n2n^2이 짝수인 것입니다.

증명. (⇒\Rightarrow) n=2kn = 2k이면 n2=2(2k2)n^2 = 2(2k^2)입니다. (⇐\Leftarrow) 정리 3.5입니다. □

쓰이는 곳. 논문의 Theorem–Proof 부분, 알고리즘의 정확성 증명, 머신러닝 이론의 일반화 상한이 이 강의 방법(직접, 대우, 귀류법, 경우 나누기)으로 쓰입니다.

3.8 이 장의 요약

방법 가정 보일 것
직접 pp qq
대우 ¬q\neg q ¬p\neg p
귀류법 ¬q\neg q (와 pp) 모순
경우 나누기 각 경우 각 경우에서 qq
반례 — P(x)P(x)가 거짓인 xx 하나

문제

3.1 [개념] · 확인 문제

“n2n^2이 홀수이면 nn은 홀수”를 대우로 증명할 때 가정하는 것은?

  1. n2n^2이 홀수
  2. nn이 짝수
  3. nn이 홀수이고 n2n^2이 짝수
  4. n2n^2이 짝수
정답
2
풀이

p→qp \to q의 대우는 ¬q→¬p\neg q \to \neg p입니다. 여기서 qq는 “nn은 홀수”이므로 ¬q\neg q, 곧 “nn은 짝수”를 가정하고 “n2n^2은 짝수”를 보입니다.

3.2 [계산] · 확인 문제

예제 3.9의 식 n2+n+41n^2 + n + 41이 소수가 아닌 가장 작은 자연수 nn(0 이상)은?

힌트 1

n=40n = 40과 n=41n = 41을 넣어 보면 41이 곱의 꼴로 드러납니다. 그보다 작은 nn에서는 모두 소수입니다.

정답
40
풀이

n=40n = 40이면 1600+40+41=1681=4121600 + 40 + 41 = 1681 = 41^2입니다. n=0,…,39n = 0, \dots, 39에서는 모두 소수임을 확인할 수 있습니다(재계산 스크립트가 확인합니다). 답은 40입니다.

3.3 [개념] · 확인 문제

모든 정수 nn에 대해 참인 것을 모두 고릅니다.

  1. n2+nn^2 + n은 짝수
  2. n3−nn^3 - n은 3의 배수
  3. n2+1n^2 + 1은 짝수
  4. n(n+1)(n+2)n(n+1)(n+2)는 6의 배수
힌트 1

3번은 반례 하나를 찾아봅니다. 2번은 n3−n=(n−1)n(n+1)n^3 - n = (n-1)n(n+1)로 인수분해됩니다.

정답
1,2,4
풀이

1번은 정리 3.8입니다. 2번은 연속한 세 정수 (n−1)n(n+1)(n-1)n(n+1)의 곱이므로 그중 하나가 3의 배수입니다. 3번은 n=2n = 2이면 5로 홀수이므로 거짓입니다. 4번은 연속한 세 정수 가운데 짝수와 3의 배수가 있으므로 6의 배수입니다.

3.4 [계산]

정리 3.7의 증명에서 처음 다섯 소수로 만든 N=2⋅3⋅5⋅7⋅11+1N = 2 \cdot 3 \cdot 5 \cdot 7 \cdot 11 + 1은?

정답
2311
풀이

2⋅3⋅5⋅7⋅11=23102 \cdot 3 \cdot 5 \cdot 7 \cdot 11 = 2310이므로 N=2311N = 2311입니다. (2311은 그 자체로 소수입니다. 다음 경우인 30031=59⋅50930031 = 59 \cdot 509처럼 NN이 소수가 아닐 수도 있지만, 어느 경우든 NN의 소인수는 p1,…,pnp_1, \dots, p_n이 아닙니다.)

3.5 [증명]

3\sqrt{3}이 무리수임을 귀류법으로 보입니다. 필요하면 “3∣n23 \mid n^2이면 3∣n3 \mid n”을 먼저 증명합니다.

힌트 1

nn을 3으로 나눈 나머지가 0, 1, 2인 경우로 나눠 n2n^2의 나머지를 봅니다.

풀이

먼저 보조 사실: n=3k+1n = 3k + 1이면 n2=3(3k2+2k)+1n^2 = 3(3k^2 + 2k) + 1, n=3k+2n = 3k + 2이면 n2=3(3k2+4k+1)+1n^2 = 3(3k^2 + 4k + 1) + 1이므로, 3∤n3 \nmid n이면 3∤n23 \nmid n^2입니다. 대우로 3∣n23 \mid n^2이면 3∣n3 \mid n입니다.

3=a/b\sqrt{3} = a/b(기약분수)라 가정하면 a2=3b2a^2 = 3b^2이므로 3∣a23 \mid a^2, 따라서 3∣a3 \mid a입니다. a=3ca = 3c를 넣으면 9c2=3b29c^2 = 3b^2, b2=3c2b^2 = 3c^2이므로 3∣b3 \mid b입니다. aa, bb가 공약수 3을 가지므로 기약분수라는 가정과 모순입니다.

3.6 [증명]

정수 a,ba, b에 대해 “abab가 짝수일 필요충분조건은 aa와 bb 가운데 적어도 하나가 짝수인 것”임을 보입니다.

풀이

(⇐\Leftarrow) a=2ka = 2k이면 ab=2(kb)ab = 2(kb)이므로 짝수입니다. bb가 짝수인 경우도 같습니다.

(⇒\Rightarrow) 대우를 보입니다: aa와 bb가 둘 다 홀수이면 정리 3.3에 따라 abab는 홀수입니다. 따라서 abab가 짝수이면 적어도 하나는 짝수입니다.