🔥딱 8일간! 인프런x토스x허먼밀러 역대급 혜택

귀류법(RAA) 한눈에 이해하기 - 개념부터 파이썬 코드까지

귀류법(RAA) 한눈에 이해하기 - 개념부터 파이썬 코드까지

0. 법정 드라마 속 예시 상황

우리는 법정 드라마에서 다음과 같은 내용을 종종 볼 수 있습니다.

피고인: "사건이 벌어진 밤 9시에 저는 집에서 TV를 보고 있었습니다."
검사 : "피고인의 말을 그대로 믿어 보겠습니다. 하지만 사건 현장은 차로 1 시간 거리입니다. 그 밤 9시에 피고인을 그곳에서 보았다는 증인이 있습니다. 두 진술을 함께 받아들이면 모순이 됩니다. 따라서 피고인의 알리바이는 거짓입니다."

위의 내용에서 검사는 "당신 주장을 인정해도 모순이 생긴다"는 형식으로 논증을 전개합니다. 이 구조가 바로 귀류법 (reductio ad absurdum, RAA)입니다.


1. 귀류법의 정의

귀류법은 아래의 4단계를 거쳐서 수행 됩니다.

  1. 부정 가정: 증명하고 싶은 명제 R의 부정 ¬R을 임시 전제로 가정합니다.

  2. 논리 전개: 공리, 정리, 정의와 임시 전제로 가정한 ¬R을 가지고 추론을 진행합니다.

  3. 모순 도출: 예: S∧¬S, "0 < 0", 집합 포함 관계 충돌 등 불가능한 진술을 얻습니다. 이 상태를 ⊥라 합니다.

  4. 가정 부정 → 결론: 모순이 나왔으므로 ¬R의 거짓(⇒ ¬¬R). 고전 논리의 이중부정 제거(DNE) 로 R이 참임을 얻습니다.

요약하면

¬R⊢⊥ ⟹ ¬¬R ⟹​ R​.


2. 조건명제를 귀류법으로 다룰 때의 '전체 부정'의 중요성

조건명제 P ⇒ Q를 증명하려면 단순히 Q만 부정해서는 안 됩니다.

즉, P ⇒ Q를 부정 해야 합니다. 그 결과는 ¬(P⇒Q)≡P∧¬Q 입니다. 이 결과는 진리표로 간단하게 동치임을 확인 할 수 있습니다.

반면 대우(contrapositive) 증명은 ¬Q를 가정해 ¬P를 도출하는 별도 기법입니다. 이것은 귀류법과는 다른 논증으로 귀류법과 대우증명을 혼동하지 마세요.


3. 모순(⊥)을 만드는 다양한 예시

  1. 동일 명제, 반명제: 예를 들어 x>5와 x≤5, P와 ¬P

  2. 집합 관계 충돌: 예를 들어 A⊆B이고 a∈A 인데 a∈B

  3. 공리 위반: 예를 들어 ZF Set Theory 정칙성 위배(순환 포함)

  4. 자명한 거짓: 예를 들어 0<0

여기서 중요한 것은 모순이 발생(존재)했다는 사실만 중요합니다. 어떠한 형태의 모순인지는 중요하지 않습니다.


4. 귀류법이 작동하기 위한 논리 공리 , 고전 VS 구성주의

image


5. 파이썬 진리표 실험 , 두 개의 핵심 동치 검증

파이썬을 통해서 귀류법을 시뮬레이션해 보겠습니다. 아래의 코드로 귀류법과 관련된 모든 진리값을 표 형태로 확인할 수 있습니다. 출력 결과를 비교함으로써, 귀류법이 의존하는 아래의 두 핵심 동치가

  1. ¬(P→Q) P∧¬Q

  2. (¬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))

출력결과:
image

위의 출력된 표를 보면

  1. ¬(P→Q) 열과 P∧¬Q열의 진리값이 동일합니다.

  2. P→Q 열과 ¬R→⊥열의 진리값이 동일합니다. (¬R→⊥)≡R 임을 확인할 수 있습니다.


6. 결론, 귀류법의 실용적 가치와 활용 범위

많은 분들이 귀류법을 법정 드라마 속 검사,변호사의 날카로운 심문 기술로만 기억하지만, 실제로 이 기법을 가장 체계적이고 빈번하게 활용하는 집단은 수학자입니다. 정리,정의,공리 체계 안에서 모순을 끌어내고 결론을 확정하는 과정이 수학적 증명 곳곳에 스며 있기 때문입니다.

그러나 귀류법은 특정 전문가의 전유물이 아닙니다. 이번 글에서 살펴본 네 단계(글중 1. 귀류법의 정의 부분) 절차만 잘 이해한다면 예를 들어

  • 학술 논문에서 반례 가능성을 반박할 때,

  • 대학,대학원 과제에서 명제의 참을 엄밀히 증명할 때,

  • 연구 보고서,기술 문서에서 설계 가정의 일관성을 검증할 때,

  • 일상적 토론,블로그 글쓰기에서 상대 주장에 논리적 허점을 지적할 때

누구나 신뢰도 높은 반증(argument by contradiction)을 구성할 수 있습니다.

귀류법으로 사고 과정을 정리하다 보면, 자연스럽게 명제 논리, 술어 논리와 친숙해질 수도 있고 자신의 논증 구조를 한층 명료하게 다듬을 수 있습니다. 이제 스스로도 법정 드라마 속 변호사 못지않은 논리적 설득력을 발휘해 보시기 바랍니다.

 

댓글을 작성해보세요.

채널톡 아이콘