
귀류법(RAA) 한눈에 이해하기 - 개념부터 파이썬 코드까지
0. 법정 드라마 속 예시 상황
우리는 법정 드라마에서 다음과 같은 내용을 종종 볼 수 있습니다.
피고인: "사건이 벌어진 밤 9시에 저는 집에서 TV를 보고 있었습니다."
검사 : "피고인의 말을 그대로 믿어 보겠습니다. 하지만 사건 현장은 차로 1 시간 거리입니다. 그 밤 9시에 피고인을 그곳에서 보았다는 증인이 있습니다. 두 진술을 함께 받아들이면 모순이 됩니다. 따라서 피고인의 알리바이는 거짓입니다."
위의 내용에서 검사는 "당신 주장을 인정해도 모순이 생긴다"는 형식으로 논증을 전개합니다. 이 구조가 바로 귀류법 (reductio ad absurdum, RAA)입니다.
1. 귀류법의 정의
귀류법은 아래의 4단계를 거쳐서 수행 됩니다.
부정 가정: 증명하고 싶은 명제 R의 부정 ¬R을 임시 전제로 가정합니다.
논리 전개: 공리, 정리, 정의와 임시 전제로 가정한 ¬R을 가지고 추론을 진행합니다.
모순 도출: 예: S∧¬S, "0 < 0", 집합 포함 관계 충돌 등 불가능한 진술을 얻습니다. 이 상태를 ⊥라 합니다.
가정 부정 → 결론: 모순이 나왔으므로 ¬R의 거짓(⇒ ¬¬R). 고전 논리의 이중부정 제거(DNE) 로 R이 참임을 얻습니다.
요약하면
¬R⊢⊥ ⟹ ¬¬R ⟹ R.
2. 조건명제를 귀류법으로 다룰 때의 '전체 부정'의 중요성
조건명제 P ⇒ Q를 증명하려면 단순히 Q만 부정해서는 안 됩니다.
즉, P ⇒ Q를 부정 해야 합니다. 그 결과는 ¬(P⇒Q)≡P∧¬Q 입니다. 이 결과는 진리표로 간단하게 동치임을 확인 할 수 있습니다.
반면 대우(contrapositive) 증명은 ¬Q를 가정해 ¬P를 도출하는 별도 기법입니다. 이것은 귀류법과는 다른 논증으로 귀류법과 대우증명을 혼동하지 마세요.
3. 모순(⊥)을 만드는 다양한 예시
동일 명제, 반명제: 예를 들어 x>5와 x≤5, P와 ¬P
집합 관계 충돌: 예를 들어 A⊆B이고 a∈A 인데 a∈B
공리 위반: 예를 들어 ZF Set Theory 정칙성 위배(순환 포함)
자명한 거짓: 예를 들어 0<0
여기서 중요한 것은 모순이 발생(존재)했다는 사실만 중요합니다. 어떠한 형태의 모순인지는 중요하지 않습니다.
4. 귀류법이 작동하기 위한 논리 공리 , 고전 VS 구성주의
5. 파이썬 진리표 실험 , 두 개의 핵심 동치 검증
파이썬을 통해서 귀류법을 시뮬레이션해 보겠습니다. 아래의 코드로 귀류법과 관련된 모든 진리값을 표 형태로 확인할 수 있습니다. 출력 결과를 비교함으로써, 귀류법이 의존하는 아래의 두 핵심 동치가
¬(P→Q) ≡ P∧¬Q
(¬R→⊥) ≡ R
실제 파이썬으로 구현한 boolean 연산에서도 정확히 성립함을 검증할 수 있습니다.
import pandas as pd
rows = []
for P in (True, False):
for Q in (True, False):
# 1) 조건명제와 부정
cond = (not P) or Q # P → Q
not_cond = not cond # ¬(P → Q) (≡ ¬R)
not_cond_equiv = P and (not Q) # P ∧ ¬Q
# 2) 모순(⊥)을 False로 모델링
bottom = False
# 3) (¬R → ⊥) ≡ ¬¬R ≡ R 계산
notR_implies_bottom = (not not_cond) or bottom
rows.append({
"P": P,
"Q": Q,
"P → Q": cond,
"¬(P → Q)": not_cond,
"P ∧ ¬Q": not_cond_equiv,
"¬R → ⊥ (≡ R)": notR_implies_bottom
})
df = pd.DataFrame(rows)
print(df.to_string(index=False))
출력결과:
위의 출력된 표를 보면
¬(P→Q) 열과 P∧¬Q열의 진리값이 동일합니다.
P→Q 열과 ¬R→⊥열의 진리값이 동일합니다. (¬R→⊥)≡R 임을 확인할 수 있습니다.
6. 결론, 귀류법의 실용적 가치와 활용 범위
많은 분들이 귀류법을 법정 드라마 속 검사,변호사의 날카로운 심문 기술로만 기억하지만, 실제로 이 기법을 가장 체계적이고 빈번하게 활용하는 집단은 수학자입니다. 정리,정의,공리 체계 안에서 모순을 끌어내고 결론을 확정하는 과정이 수학적 증명 곳곳에 스며 있기 때문입니다.
그러나 귀류법은 특정 전문가의 전유물이 아닙니다. 이번 글에서 살펴본 네 단계(글중 1. 귀류법의 정의 부분) 절차만 잘 이해한다면 예를 들어
학술 논문에서 반례 가능성을 반박할 때,
대학,대학원 과제에서 명제의 참을 엄밀히 증명할 때,
연구 보고서,기술 문서에서 설계 가정의 일관성을 검증할 때,
일상적 토론,블로그 글쓰기에서 상대 주장에 논리적 허점을 지적할 때
누구나 신뢰도 높은 반증(argument by contradiction)을 구성할 수 있습니다.
귀류법으로 사고 과정을 정리하다 보면, 자연스럽게 명제 논리, 술어 논리와 친숙해질 수도 있고 자신의 논증 구조를 한층 명료하게 다듬을 수 있습니다. 이제 스스로도 법정 드라마 속 변호사 못지않은 논리적 설득력을 발휘해 보시기 바랍니다.
댓글을 작성해보세요.