์ฆ๋ช ํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋ค. Indirect proof : ๋ง ๊ทธ๋๋ก ์ง์ ์ ์ผ๋ก ์ฆ๋ช ํ์ง ์๋ ์ฆ๋ช ๋ฒ. - ๋ฐ๋ ๋ช ์ ๊ฐ ๊ฑฐ์ง์์ ๋ฐํ ์ด ๋ช ์ ๊ฐ ์ฐธ์์ ์ฆ๋ช ํ๋ ๊ท๋ฅ๋ฒ(proof by contradiction)์ด ๋ํ์ ์ธ ์์. Direct proof : ๋ง ๊ทธ๋๋ก ์ง์ ์ ์ผ๋ก ๋ช ์ ๊ฐ ์ฐธ์์ ์ฆ๋ช ํ๋ ๋ฐฉ๋ฒ. - ๊ท๋ฉ๋ฒ(induction)์ด ๋ํ์ ์ธ ์์.
๊ท๋ฉ๋ฒ์ ์ด์ฐ ์ํ ๋ถ์ผ์ ์ปดํจํฐ ๊ณผํ์์ ๋งค์ฐ ์ค์ํ ์ญํ ์ ํ๋ค๊ณ ํ๋ค. ์ฌ์ค ์ด์ฐ ์ํ์์ ์ด์ฐ discrete์ด๋ผ๋ ํน์ง์ ๊ท์ ํ๋๋ฐ ์ฌ์ฉ๋๋ค๊ณ ํ๋ค.
์ผ๋ฐ ๊ท๋ฉ๋ฒ Ordinary Induction
P๋ผ๋ ๋ช ์ ๋ฅผ ์ฆ๋ช ํ๊ณ ์ ํ๋ค๋ฉด
- P(0) 0์ ๊ฒฝ์ฐ์ P๊ฐ ์ฐธ์ด๊ณ
- P(n) ์ด ์ฐธ์์ด P(n+1)๊ฐ ์ฐธ์์ ํจ์ํ๋ค๋ฉด
- P(m)๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฐธ์ด๋ค. ์์ ๊ฐ์ ๋ ผ๋ฆฌ ํ์์ ๋ง์ถฐ์ ์ฆ๋ช ์ ํ๋ฉด ๋๋ค. ๋ณด๊ธฐ์๋ ์ฐธ ๊ฐ๋จํ๋ฐ ์ ์ด๋ ๊ฒ ์ด๋ ค์ด์ง ๋ชจ๋ฅด๊ฒ ๋ค.
์์
์์ ์์ ์์๋ก ์ ์๋ ๋ฌธ์ ๋ ๋ค์๊ณผ ๊ฐ๋ค.
1
P = For all $n \in \mathbb{N}$: $1+2+3+\cdots+n=\frac{n(n+1)}{2}$ ๊ทธ๋ผ ์์ P๋ฅผ ์ฆ๋ช ํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ๋ ๋ช ์ ๋ฅผ ์ฆ๋ช ํด์ผ ํ๋ค.
- P(0) ์ฆ๋ช base case
- P(n)๊ฐ P(n+1)๋ฅผ ํจ์ํจ์ ์ฆ๋ช ๋ค์๊ณผ ๊ฐ๋ค.
๋จผ์ , base case ์ฆ๋ช
$\frac{0(0+1)}{2} = 0$
๋ค์, ํจ์๊ด๊ณ ์ฆ๋ช
P(n) implies P(n+1) ์ค์ํ ๋ถ๋ถ์ ์ผ์ชฝ์ ๊ฐ์ ํ๊ณ ์ค๋ฅธ์ชฝ์ ์ฆ๋ช ํ๋ ์ ์ด๋ค. $1+2+3\cdot+n=\frac{n(n+1)}{2}$ ์ ๊ฐ์ $1+2+3\cdot+n+(n+1)=\frac{(n+1)((n+1)+1)}{2}$ ์ ์ฆ๋ช
P(n)์ ์ ๋ณ์ ๊ฐ๊ธฐ ๋๋ฌธ์ (๊ฐ์ ๋์๊ธฐ ๋๋ฌธ์) ์ ๋ณ์ (n+1)์ ๋ํด์ค๋ ์ ๋ณ์ ๊ฐ๋ค. $1+2+3\cdot+n+(n+1)=\frac{n(n+1)}{2}+(n+1)$ ์ค๋ฅธ์ชฝ ๋ณ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณํ ์ ์๋ค. $\frac{n(n+1)}{2}+(n+1)=\frac{n(n+1)}{2}+\frac{2n(n+1)}{2}=\frac{n^2+3n+2}{2}=\frac{(n+1)(n+2)}{2}$ ๋ง์ง๋ง์ผ๋ก (n+2)๋ (n+1)+1 ์ด๋ฏ๋ก $\frac{(n+1)((n+1)+1)}{2}$๊ฐ ๋์จ๋ค.
2. Lํธ๋ก๋ฏธ๋ ธ ํ์ผ๋ง ๋ฌธ์
$2^n*2^n$๊ฐ๋ก ์ด๋ฃจ์ด์ง ํ์ผ ์์ 'ใด'์ ๋ชจ์์ผ๋ก ์๊ธด 3์นธ ๋์ด์ ํ์ผ์ ๋ฐฐ์นํ๋ ค๊ณ ํ ๋, ํ ์นธ์ Bill ์ด๋ผ๋ ์ฌ๋์ ๋์์ ์ธ์ธ ์ ์๋ค(= ํ ์นธ์ ์๋ฆฌ๋ ๋น์ด์๋ค).
base case
P(0) ๋ $2^0*2^0=1$ ์ด๋ผ์ ํ ์นธ์ ์๋ฆฌ๊ฐ ๋น์ด์์ผ๋ ์ฐธ
inductive step
P(n) -> P(n+1) $2^{n+1}2^{n+1}=2^{2n+2}=2^{2n}2^2=4(2^n2^n)$ n+1์ n์ผ๋์ ํ์ผ ์ ์ฒด๊ฐ 4๊ฐ ์๋๊ฒ๊ณผ ๊ฐ๋ค. ๊ทธ๋์ $2^n2^n$์ ๊ฒฝ์ฐ๊ฐ ์ฐธ์ด๋ผ๋ฉด ๋๋จธ์ง ์ธ ๊ฐ์ $2^n*2^n$์์๋ ์ฐธ์ด๊ณ ๋๋จธ์ง ์ธ ๊ฐ์์๋ ํ ์๋ฆฌ์ฉ ๋น๊ฒ ๋๊ณ ๊ฑฐ๊ธฐ์ ๋ง์ง๋ง ํ์ผ์ ๋ฃ์ผ๋ฉด ์ ์ฒด$2^{n+1}*2^{n+1}$ ๊ฐ์ ํ์ผ์์๋ ๋ฑ ํ ์นธ์ ์ ์ธํ๊ณ ๋ชจ๋ ํ์ผ๋ก ๋ฎ์ ์ ์๋ค.
Now, good proofs are very much like good code. In fact, one of the reasons we care so much about teaching you how to write a good proof in computer science is so that later on, you'll be able to prove that your programs are doing what you expect-- what they're supposed to do.
์ฆ๋ช ์ด ํ๋ก๊ทธ๋๋ฐ์ ๋งค์ฐ ์ค์ํ๋ค๊ณ .