์ฆ๋ช
ํ๋ ๋ฐฉ๋ฒ์ผ๋ก๋ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋ค.
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 :
๊ทธ๋ผ ์์ P๋ฅผ ์ฆ๋ช
ํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ ๋ ๋ช
์ ๋ฅผ ์ฆ๋ช
ํด์ผ ํ๋ค.
- P(0) ์ฆ๋ช base case
- P(n)๊ฐ P(n+1)๋ฅผ ํจ์ํจ์ ์ฆ๋ช
๋ค์๊ณผ ๊ฐ๋ค.
๋จผ์ , base case ์ฆ๋ช
๋ค์, ํจ์๊ด๊ณ ์ฆ๋ช
P(n) implies P(n+1)
์ค์ํ ๋ถ๋ถ์ ์ผ์ชฝ์ ๊ฐ์ ํ๊ณ ์ค๋ฅธ์ชฝ์ ์ฆ๋ช
ํ๋ ์ ์ด๋ค.
์ ๊ฐ์
์ ์ฆ๋ช
P(n)์ ์ ๋ณ์ ๊ฐ๊ธฐ ๋๋ฌธ์ (๊ฐ์ ๋์๊ธฐ ๋๋ฌธ์)
์ ๋ณ์ (n+1)์ ๋ํด์ค๋ ์ ๋ณ์ ๊ฐ๋ค.
์ค๋ฅธ์ชฝ ๋ณ์ ๋ค์๊ณผ ๊ฐ์ด ๋ณํ ์ ์๋ค.
๋ง์ง๋ง์ผ๋ก (n+2)๋ (n+1)+1 ์ด๋ฏ๋ก ๊ฐ ๋์จ๋ค.
2. Lํธ๋ก๋ฏธ๋ ธ ํ์ผ๋ง ๋ฌธ์
๊ฐ๋ก ์ด๋ฃจ์ด์ง ํ์ผ ์์ 'ใด'์ ๋ชจ์์ผ๋ก ์๊ธด 3์นธ ๋์ด์ ํ์ผ์ ๋ฐฐ์นํ๋ ค๊ณ ํ ๋,
ํ ์นธ์ Bill ์ด๋ผ๋ ์ฌ๋์ ๋์์ ์ธ์ธ ์ ์๋ค(= ํ ์นธ์ ์๋ฆฌ๋ ๋น์ด์๋ค).
base case
P(0) ๋ ์ด๋ผ์ ํ ์นธ์ ์๋ฆฌ๊ฐ ๋น์ด์์ผ๋ ์ฐธ
inductive step
P(n) -> P(n+1)
n+1์ n์ผ๋์ ํ์ผ ์ ์ฒด๊ฐ 4๊ฐ ์๋๊ฒ๊ณผ ๊ฐ๋ค.
๊ทธ๋์ ์ ๊ฒฝ์ฐ๊ฐ ์ฐธ์ด๋ผ๋ฉด ๋๋จธ์ง ์ธ ๊ฐ์ ์์๋ ์ฐธ์ด๊ณ
๋๋จธ์ง ์ธ ๊ฐ์์๋ ํ ์๋ฆฌ์ฉ ๋น๊ฒ ๋๊ณ ๊ฑฐ๊ธฐ์ ๋ง์ง๋ง ํ์ผ์ ๋ฃ์ผ๋ฉด ์ ์ฒด ๊ฐ์ ํ์ผ์์๋ ๋ฑ ํ ์นธ์ ์ ์ธํ๊ณ ๋ชจ๋ ํ์ผ๋ก ๋ฎ์ ์ ์๋ค.
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.
์ฆ๋ช ์ด ํ๋ก๊ทธ๋๋ฐ์ ๋งค์ฐ ์ค์ํ๋ค๊ณ .
Invariant ๋ถ๋ณ์
์์ ์์๋ ์์น ๋ฐ๊พธ๋ ํผ์ฆ๋ฌธ์ ๋ฅผ ํตํด ์ค๋ช ํ๋ค.
๋ถ๋ณ์์ด๋?
์ด๊ธฐ ์ํ์์ ๋ชฉํ ์ํ๋ก ์ดํํ ์ ์์์ ์ฆ๋ช
ํ ๋ ๊ฐ์ฅ ํจ๊ณผ์ ์ผ๋ก ๋์๋๋ ๋ฐฉ๋ฒ์ด ๋ถ๋ณ์์ ์ฐพ์์ ๋ชฉํ ์ํ์ ๊ทธ ๋ถ๋ณ์์ด ์กด์ฌํ์ง ์์์ ์ฆ๋ช
ํ๋ ๋ฐฉ๋ฒ์ด๋ค.
์ด๊ธฐ ์ํ์ ๊ฐํ ์ ์๋ ์ฌ๋ฌ ๋ณํ๋ค์ด ์์ ๋ (์์
์์ ๋์จ ์์๋ ํผ์ฆ์ ํ ์ด๋๊ณผ ์ด ์ด๋)
์ด ๋ณํ๋ค์ ์กฐํฉ์ผ๋ก๋ ์ ๋ ๋ฐ๋์ง ์๋ ์ฑ์ง์ด ๋ถ๋ณ์์ด๋ค.
์์
A B C
D E F
H G -
3x3 ์นธ์ ๋ค์๊ณผ ๊ฐ์ด ์ํ๋ฒณ์ด ๋์ด๋์ด์๋๋ฐ H์ G์ ์๋ฆฌ๋ฅผ ๋ฐ๊ฟ์ ์ฌ๋ฐ๋ฅด๊ฒ ์์๋๋ก ์ ๋ ฌํ ์ ์์๊น?
๊ท์น์ ํผ์ฆ์ ๋น์นธ์ผ๋ก ์์ง์ด๋๊ฒ ๋ฐ์ ์๊ณ ์ด๋ ๋ ๋ฐฉ๋ฒ์ผ๋ก ๊ตฌ์ฒดํ๋๋ค.
- ๋น ์นธ์ ์๋ ํน์ ์์ ์๋ ํผ์ฆ์ ๋น ์นธ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ (์ด ์ด๋)
- ๋น ์นธ์ ์ผ์ชฝ ํน์ ์ค๋ฅธ์ชฝ์ ์๋ ํผ์ฆ์ ๋น ์นธ์ผ๋ก ์ฎ๊ธฐ๋ ๊ฒ (ํ ์ด๋)
์ด ๋ ๋ฐฉ๋ฒ์ ์ด๋ป๊ฒ ์กฐํฉํด๋ ๋ฐ๊ฟ์ ์๋ ์ด๋ค ์ฑ์ง์ ์ฐพ๋๋ค๋ฉด ๋ญ๊ฐ ๋ ์ ์์๊น?
- ์ผ๋จ ํ ์ด๋์ ์ํ๋ฒณ ๋์ด ์์๋ฅผ ๋ฐ๊พธ์ง ๋ชปํ๋ค.
A B C
D E F
H - G
์ ์ฒ๋ผ ์ด๊ธฐ ์ํ์์ G๋ฅผ ์ฎ๊ฒจ๋ ๋์ด ์์๋ ๋ฐ๋์ง ์๋๋ค. ์ค์ง ์ด ์ด๋๋ง์ด ๋์ด ์์๋ฅผ ๋ฐ๊ฟ ์ ์๋ค.
- ์ด ์ด๋์ ์๊ธฐ ์์ด๋ ๋ค์ ์๋ ๋ ๊ฐ์ ํผ์ฆ๋ค์ ์๋์ ์์๋ฅผ ๋ฐ๊พผ๋ค.
A B C
D - F
H E G
์ ์ฒ๋ผ E๋ฅผ ํ ์นธ ๋ด๋ฆฌ๋ฉด์ ์ด ์ด๋์ ๊ฐํ๋ฉด, E ๋ค์ ์๋ F์ H์ ์์น๊ฐ(์์)๊ฐ 1์ฉ ๋์ด๋๊ณ ์ฎ๊ฒจ์ง ํผ์ฆ ์์ ์ -2๊ฐ ๋๋ค.
- ์์ง์ด๋ ๋์ ์ญ์ ๋ ์์ ๊ฐ์๋ 2๊ฐ์ฉ ๋ณํํ๊ฑฐ๋(์ด ์ด๋) ํน์ ๊ทธ๋๋ก๋ค(ํ ์ด๋)
์ญ์ ์์ด๋ ์ด๊ธฐ ์ํ์ G์ H์ ์์๊ฐ ์๋ก ๋ฐ๋์ด์๋๊ฒ ์ฒ๋ผ, ์๋ ์์์ ๋ฌ๋ฆฌ ๋ฐฐ์น๋์ด์๋ ๋ ์ํ๋ฒณ์ ํ ์์ผ๋ก ๋ฌถ์๊ฒ์ ์นญํ๊ธฐ๋ก ํ๋ค.
์ด๊ธฐ ์ํ์๋ G์ H๋ง ๋นผ๊ณ ๋๋จธ์ง๋ ์์๊ฐ ์ผ์นํ๊ธฐ์ ์ฐ์ ์์ (G,H) ํ๋๋ฟ์ด๋ค.
๊ทธ๋ฐ๋ฐ ์์ 2๋ฒ ์ด ์ด๋์ ์์๋ฅผ ๋ณด๋ฉด ์ญ์ ์์ ๊ฐ์๊ฐ 2๊ฐ ๋์ด๋๋๊ฒ์ ๋ณผ ์๊ฐ ์๋ค.
A>B>C>D>E>F>G>H ๊ฐ ๋ง๋ ์์์ธ๋ฐ ์ง๊ธ์
A>B>C>D>F>H>E>G ์ด๋ ๊ฒ ๋์ด๋์ด ์๋ค.
F๋ณด๋ค ์์ ์์ด์ผ ํ E๊ฐ F๋ค์ ์์ผ๋ ์ญ์ ์์ด ์๊ธด๋ค. (E,F)
H๋ณด๋ค ์์ ์์ด์ผ ํ E์ G๊ฐ H๋ค์ ์์ผ๋ ์ญ์ ์์ด ์๊ธด๋ค. (E,H) (G,H)
์ญ์ ์์ ๊ฐ์๋ 3๊ฐ๋ก ์ด๊ธฐ 1๊ฐ์์ +2๊ฐ ๋๋ค.
(๋ค์ ๊ทธ๋๋ก E๋ฅผ ์๋ก ์ฌ๋ฆฌ๋ฉด -2๋ก ์ญ์ ์์ ๊ฐ์๋ 1๊ฐ๊ฐ ๋๋ค.)
์ฌ๊ธฐ์ ๋ถ๋ณ์์ ๋ฐ๋ก ์ด๊ธฐ์ ์ญ์ ์์ ๊ฐ์๊ฐ ํ์๋ผ๋ ๊ฒ์ด๊ณ ,
์ด๋ป๊ฒ ๋ณํ๋ฅผ ์กฐํฉํด๋ ์ญ์ ์์ ๊ฐ์์ parity(ํ์ง์ฌ๋ถ) ๋ ๋ณํ์ง ์๊ธฐ ๋๋ฌธ์ ๋ชฉํ์ํ์ ๋๋ฌํ ์ ์๋ค.
'๊ฐํ' ๊ท๋ฉ๋ฒ?
์ผ๋ฐ ๊ท๋ฉ๋ฒ์์๋ ๊ท๋ฉ ๋จ๊ณ์์ P(n) -> P(n+1) ์ ์ฆ๋ช
ํ๋ค๋ฉด
๊ฐํ ๊ท๋ฉ์ ๋ค์๊ณผ ๊ฐ์ด ์ฆ๋ช
ํ๋ค.
- P(0)์ด ์ฐธ์ด๊ณ (๊ธฐ๋ณธ๋จ๊ณ)
- P(0),P(1),....,P(n) ๋ชจ๋๊ฐ ์ฐธ์์ด P(n+1)์ ํจ์ํ๋ค๋ฉด
- P(m)๋ ๋ง์ฐฌ๊ฐ์ง๋ก ์ฐธ์ด๋ค.
์) ํผ๋ณด๋์น ์์ด
ํผ๋ณด๋์น ์์ด์ ์ํ์ ํผ๋ณด๋์น๊ฐ 13์ธ๊ธฐ ์ด ์ธ๊ตฌ ์ฆ๊ฐ ๋ชจ๋ธ(?)์ ๋ง๋ค๋ฉด์ ์๊ฒผ๋ค๊ณ ํ๋ค.
ํ์ธ์ ํ ์น๊ณผ ์๋ฐฉ์ธ์ ๋ชจ์๊ณผ ๊ฐ์ ์์ฐ์ ๋ง์ ๊ฒ๋ค์ ์ค๋ช
ํ๋๋ฐ ์ฌ์ฉ๋๋ค๊ณ ํ๋ค.
๋ช ์ : is even IFF is even
base case
ํผ๋ณด๋์น ์์ด์ base case๊ฐ ๋ ๊ฐ ํ์ํ๋ค : 0 ์ผ๋์ 1์ผ๋.
- n=0 : F(0) = 0 ์ด๊ณ F(3) = 2 ๋ก ๋ ๋ค ์ง์๋ค.
- n=1 : F(1) = 1 ์ด๊ณ F(4) = 3 ์ผ๋ก ๋ ๋ค ์ง์๊ฐ ์๋๋ค.
๊ท๋ฉ๋จ๊ณ
์ด๋ค ์ m๊ณผ k๊ฐ ์๋ค๊ณ ํ์.
is even IFF [m is even IFF k is even].
((k๊ฐ ์ง์)์ผ ๊ฒฝ์ฐ์๋ง m๋ ์ง์)์ผ ๊ฒฝ์ฐ์๋ง ๋ ์ง์๋ค.
์ฆ m๊ณผ k๊ฐ ๊ฐ์ ํ์ง์ฑ์ ๊ฐ์ง ๊ฒฝ์ฐ์๋ง ๋ ์ง์๋ค.
๊ฐํ ๊ท๋ฉ์ 0,1,...,n ๊น์ง ๋ชจ๋ ๊ฒฝ์ฐ๊ฐ P(n+1)์ ํจ์ํ๋ค๋ ๊ฒ์ ์ฆ๋ช ํ๋ ๋ฐฉ๋ฒ์ด๋ผ๊ณ ํ๋ค.
- is even
- IFF is even
(def of ) - IFF [ is even IFF is even]
- IFF [ is even IFF is even]
(by strong ind. hyp. ) - IFF is even
- IFF is even.
(by def of )
์ฆ๋ช ํ๋ ค๊ณ ํ๋ ๋ช ์ ๋ F(n+1)์ ๊ฒฝ์ฐ, ์ฆ F(n+4)๊ฐ ์ง์์ธ ๊ฒฝ์ฐ์๋ง F(n+1)๋ ์ฐธ์ด๋ผ๋๊ฒ.
- F(n+1)์ด ์ง์๋ผ๋ ๊ฒ์ F(n) + F(n-1)์ด ์ง์๋ผ๋ ์๋ฏธ๊ณ ,
- F(n) + F(n-1) ์ด ์ง์๋ผ๋ ์๋ฏธ๋ F(n-1)๊ณผ F(n)๊ฐ ๊ฐ์ ํ์ง์ฑ์ ๊ฐ์ง๋ค๋ ์๋ฏธ์ด๊ณ , (์์ m,k ๋ช ์ )
- F(n-1)๊ณผ F(n)์ด ๊ฐ์ ํ์ง์ฑ์ ๊ฐ์ง๋ค๋ ๊ฒ์ ๊ฑฐ๊ธฐ์ ๊ฐ์ ์ซ์๋ฅผ ๋ํ๋ค๊ณ ํด๋ (๊ฐ๋ น 3์ฉ ๋ํด F(n+2)์ F(n+3) ๋ชจ๋) ๊ฐ์ ํ์ง์ฑ์ ๊ฐ์ง๋ค๋ ์๋ฏธ์ด๊ณ ,
- F(n+2)์ F(n+3)์ด ๊ฐ์ ํ์ง์ฑ์ ๊ฐ์ง๋ค๋ ๊ฒ์ ๊ทธ ๋ค์ ์์ด์ธ F(n+4)๋ผ๋ ์๋ฏธ๋ค.