증명 기법 (Proof Techniques)
정의
증명 (proof) 은 명제가 참임을 논리적으로 확립하는 절차입니다. 컴퓨터 과학에서는 알고리즘 정확성, 자료구조 불변식, 암호 안전성, 형식 검증 등에 필수.
이 문서는 주요 증명 기법을 정리합니다.
1. 직접 증명 (Direct Proof)
“if then ” 를 증명하려면:
- 를 가정
- 논리 규칙과 이미 알려진 사실로부터
- 를 도출
예: 두 홀수의 합은 짝수
증명: 를 홀수라고 하자. , ().
이므로 는 짝수. QED.
2. 대우 증명 (Proof by Contrapositive)
를 증명하려면 대우 를 증명.
예: 가 짝수이면 도 짝수
증명: 대우로 ” 이 홀수이면 도 홀수” 를 증명.
이 홀수 -> -> . 홀수. QED.
3. 귀류법 (Proof by Contradiction, Reductio ad Absurdum)
명제 를 증명하려면 를 가정하고 모순을 유도.
예: 는 무리수
증명: 가 유리수라 가정. (기약분수, ).
가 짝수 -> 짝수 -> .
짝수 -> 짝수.
와 모두 짝수 -> . 기약분수 가정과 모순. QED.
예: 소수는 무한하다
증명 (유클리드): 소수가 유한하다고 가정. 이 모든 소수.
을 고려.
을 어떤 로 나누면 나머지 1. 따라서 은 모든 로 나누어떨어지지 않음.
두 경우:
- 이 소수 -> 목록에 없는 새 소수 -> 모순
- 이 합성수 -> 목록에 없는 소인수 존재 -> 모순
QED.
4. 존재 증명 (Existence Proof)
를 증명.
구성적 (Constructive)
실제로 를 찾음.
예: “짝수인 소수가 존재한다”
- 증명: 를 제시. 짝수이고 소수. QED.
비구성적 (Non-constructive)
존재를 논리적으로 보이지만 실제 는 제시 안 함.
예: ” 가 유리수인 무리수 가 존재한다”
- 후보: .
- 가 유리수라면: 로 완료.
- 아니면 무리수. . 유리수. QED.
두 경우 중 어느 것이 성립하는지 몰라도 존재 확인 가능.
5. 반례 증명 (Proof by Counterexample)
가 거짓 임을 보이려면 하나의 반례를 제시.
예: “모든 소수는 홀수” 는 거짓
반례: 2 는 소수이지만 짝수.
6. 수학적 귀납법 (Mathematical Induction)
이 모든 에 대해 참임을 증명.
단계:
- 기저 (base): 참 증명.
- 귀납 단계 (inductive step): 참 -> 참 증명.
결론: 이 모든 에 대해 참.
시각화
flowchart LR Base["기저: P(n₀) 참"] --> Step1["P(n₀) → P(n₀+1)"] Step1 --> Step2["P(n₀+1) → P(n₀+2)"] Step2 --> Step3["P(n₀+2) → P(n₀+3)"] Step3 --> Dots["..."] Dots --> Concl["모든 n ≥ n₀"]
도미노 비유: 첫 도미노를 넘어뜨리면 (기저), 그리고 각 도미노가 다음을 넘어뜨리면 (귀납 단계), 모든 도미노가 넘어짐.
예:
기저: . 좌변 = 1, 우변 = . 성립.
귀납 단계: 참이라 가정, 증명.
(귀납 가정)
성립. QED.
예: 2^n 개의 조합 (부분집합 수)
원소 집합의 부분집합 수 = .
기저: . 공집합 의 부분집합은 하나. . 성립.
귀납 단계: 인 집합의 부분집합이 라 가정.
인 집합 (). 의 부분집합은:
- 를 포함 X: 의 부분집합 = 개
- 를 포함 O: 의 부분집합에 추가 = 개
총 . QED.
7. 강귀납법 (Strong Induction)
증명 시 모두 를 가정.
기저 + 강한 귀납 가정.
예: 모든 는 소인수 분해 가능
기저: 는 소수. 성립.
귀납 단계: 가 모두 소인수 분해 가능이라 가정. 도 가능 증명.
두 경우:
- 이 소수. 완료.
- (). 강귀납 가정으로 각각 소인수 분해 가능. 그 곱이 의 분해.
QED.
8. 구조 귀납법 (Structural Induction)
트리, 리스트, 문자열 등 재귀적 구조에 대한 귀납.
예: 이진 트리의 잎 수
주장: 정점이 개인 이진 트리의 잎 수 … (사실은 더 정확한 결과 있음)
구조 귀납:
- 기저: 정점 1 개 -> 잎 1 개.
- 귀납: 뿌리 + 왼쪽 부트리 + 오른쪽 부트리. 각 부트리에 귀납 가정 적용.
9. 반대칭 원리 (Well-Ordering Principle)
자연수의 공집합이 아닌 부분집합은 최소 원소를 가짐.
귀납법과 논리적으로 동치.
예: 나눗셈 정리
주장: 정수 와 양의 정수 에 대해 유일한 이 존재해 , .
증명: 집합 .
는 공집합 아님. 최소값 존재. . 를 보이면 완료.
귀류: 라 가정. . 이면서 에 속함. 최소성 모순.
컴퓨터 과학 응용
알고리즘 정확성
루프 불변식 (loop invariant): 루프의 각 반복마다 유지되는 성질.
귀납법으로 증명:
- 초기화: 첫 반복 전에 성립
- 유지: 한 반복 후에도 성립
- 종료: 종료 시 원하는 성질 함의
자료구조 불변식
- AVL 트리: 각 정점의 두 부트리 높이 차 .
- B-tree: 모든 잎이 같은 깊이.
각 연산이 불변식을 유지함을 귀납법으로 증명.
형식 검증
- 모델 검사: 상태 공간 모든 경로 확인
- 정리 증명기 (Coq, Lean): 대화형 증명
재귀 알고리즘
- 분할 정복: 강귀납법으로 정확성
- 트리 순회: 구조 귀납
함정
1. 기저 오류
또는 이 실제 기저인지 확인. 특수 케이스 잊기 쉬움.
2. 귀납 가정의 잘못된 적용
를 가정하고 증명해야. 순환 논증 (증명하려는 것을 가정) 주의.
3. 무한 케이스 오류
“모든 유한 케이스에 대해 성립하므로 무한 케이스에도” 는 오류. 귀납법으로 명시적 증명.
4. 존재 vs 유일
와 (유일 존재) 는 다름. 유일성은 별도 증명.
관련 위키
이 글의 용어 (6개)
- 그래프 이론 기초 (Graph Theory)discrete-math
- 정의 그래프 (Graph) $G = (V, E)$ 는 정점 (vertex) 의 집합 $V$ 와 간선 (edge) 의 집합 $E$ 로 이루어진 이산 구조입니다. 간선은 정점의 쌍 …
- 명제 논리 (Propositional Logic)discrete-math
- 정의 명제 (Proposition) 는 참 (T) 또는 거짓 (F) 값을 가지는 서술문입니다. 참/거짓을 판단할 수 없는 문장 (질문, 명령, 감탄) 은 명제가 아닙니다. 예 (…
- 이산수학 (Discrete Mathematics)discrete-math
- 정의 이산수학 (Discrete Mathematics) 은 이산 (discrete, 셀 수 있는) 대상을 다루는 수학의 분야입니다. 연속 (continuous) 대상 을 다루는 …
- 점화식 (Recurrence Relations)discrete-math
- 정의 점화식 (Recurrence Relation) 은 수열 $(an)$ 의 $n$ 번째 항을 앞선 항 (또는 몇 개) 로 표현하는 관계식입니다. 초기 조건 과 점화식이 함께 있…
- 조합론 기초 (Combinatorics)discrete-math
- 정의 조합론 (Combinatorics) 은 유한 집합의 원소를 세거나 배열하는 방법을 다루는 수학 분야입니다. "경우의 수 계산" 과 "구조의 존재/구성" 이 핵심 주제. 컴퓨…
- 집합, 관계, 함수 (Sets, Relations, Functions)discrete-math
- 정의 - 집합 (set): 서로 다른 원소들의 모음 - 관계 (relation): 두 집합 사이의 원소들의 대응 규칙 - 함수 (function): 정의역의 각 원소를 치역의 유…
💬 댓글