조건문

덤프버전 :

파일:다른 뜻 아이콘.svg
은(는) 여기로 연결됩니다.
프로그래밍 언어의 조건문에 대한 내용은 조건문(프로그래밍) 문서
조건문(프로그래밍)번 문단을
조건문(프로그래밍)# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
참고하십시오.






1. 개요
2. 실질 조건문: 고전 논리를 통한 분석
2.1. 논리학적 특성
2.2. 쓰임새
2.3. 역, 이, 대우
3. "실질 조건문의 역설"
3.1. 자연어 조건문을 실질조건문으로 분석하는 것에 대한 변호
4. 발전된 접근 방식


1. 개요[편집]




문장 혹은 명제의 일종. "가언문", "가언명제", "함의문"이라는 명칭도 종종 쓰인다. 영어로는 conditionals.[1] 한국어를 비롯한 다양한 자연 언어에서 널리 쓰이며, 한국어에서 쓰이는 대표적인 문형은 다음과 같다.

만약에 (-)면, (……)다.

영어에서는 대표적으로 다음과 같은 문형이 쓰인다.

If (-), then (……).

기호논리학으로 표현할 경우, 가장 '중립적으로' 쓰이는 기호는 '→'이다.

[math(P \to Q )]


이때 앞에 오는 'P'를 "전건(antecedent)", 뒤에 오는 'Q'를 "후건(consequent)"라고 부른다.

논리학적, 언어학적, 철학적으로 많은 분석이 이루어졌으며, 여전히 여러 쟁점이 남아있는 주제.

2. 실질 조건문: 고전 논리를 통한 분석[편집]


Material conditionals

현대의 실질 조건문과 비슷한 형태의 분석은 메가라학파까지 거슬러 올라가나, "실질 함의문(material implication)"이라는 명칭을 제안하고 명시적인 정의를 제시한 것은 버트런드 러셀화이트헤드의 『수학 원리(Principia Mathematica)』다. 『수학 원리』에서 실질 조건문은 다음과 같이 표현된다.

[math( P \supset Q)] [2]

이때 "P ⊃ Q"는 "P가 아니거나, Q다."로 정의된다. 즉 P ⊃ Q는 오직 P가 참이며 Q가 거짓일 때에만 거짓이며, 나머지 경우에는 참이다.

즉 다음과 같은 논리적 동치가 성립한다.
[math( \left( p \supset q \right) \equiv \left( \neg p \vee q \right) )]

진리표를 사용할시 'P ⊃ Q'은 다음과 같이 정의된다.
P
Q
P ⊃ Q
T
T
T
T
F
F
F
T
T
F
F
T

조건문을 실질 조건문으로 분석한다는 것은 곧 'P → Q'를 'P ⊃ Q'로 정의한다는 것이다. 요컨대 "만약 사과가 과일이면, 과일은 고체다"는 "사과가 과일이 아니거나, 과일은 고체다"와 같은 의미로 정의된다는 것.

2.1. 논리학적 특성[편집]


실질 조건문 연산자 '[math(\supset)]'는 진리함수적(truth-functional)이다. 요컨대 연산항 '[math(P)]'와 '[math(Q)]'의 진리치가 결정될 경우 조건문 '[math(P\supset Q)]'의 진리치 또한 자동으로 결정된다.

메타논리학적으로 연역 정리(deduction theorem)가 성립한다. (전제 집합이 공집합이라고 가정할 경우) 연역 정리는 다음과 같이 표현가능하다.

만약 [math(P\vdash Q)]이면, [math(\vdash P\supset Q)]다.

요컨대 [math(P)]로부터 [math(Q)]를 증명할 수 있으면, [math(P\supset Q)]가 논리적 참임을 증명할 수 있다.

2.2. 쓰임새[편집]


수학에서 등장하는 조건문은 실질 조건문으로 분석하는 것이 표준적이다. 『수학 원리』에서 '실질 조건문'이 등장하게 된 배경부터 그러하고, 수학에서의 참거짓은 모두 필연적 참 혹은 필연적 거짓으로 보는 것이 일반적이기 때문이다. 수리논리가 아닌 함수/수열에서의 조건문은 특별히 조각적 정의로 칭한다.

프로그래밍 언어에서 쓰이는 제어문 if는 실질 조건문을 따온 것이다.

실질 조건문 'P ⊃ Q'는 'P가 Q의 충분조건이다' 및 'Q가 P의 필요조건이다'로 이해할 수도 있다.

2.3. 역, 이, 대우[편집]


조건문을 '뒤집는' 방법은 수학(교과)에서 단골로 나오는 주제 중 하나이며, 이때 명제를 뒤집는 방법은 3가지가 있다. 원명제([math(p\to q)])의 순서를 뒤집는 방법([math(q\to p)])이 있고 명제 자체를 통째로 부정하는 방법([math({\sim}p\to{\sim}q)])이 있다. 전자를 (逆, Converse)이라고 하고 후자를 (裏, Inverse)라고 한다. 마지막으로 역과 이를 동시에 적용할 수도 있는데([math({\sim}q\to{\sim}p)]), 이를 대우(對偶, Contrapositive)라고 한다. 아래는 뒤집은 명제를 나타낸 그림이다.

파일:명제_역_이_대우.svg

원 명제와 그 명제의 대우는 항상 진리치가 같다. 즉 원 명제가 참이면, 대우도 반드시 참이다. 마찬가지로 원 명제의 역과 이는 항상 진리치가 같다, 반면 원 명제가 참이어도 그 역과 이는 참이 아닐 수도 있다. 때문에 전건 부정법과 후건 긍정법은 논리적 오류가 되지만 후건 부정법은 언제나 합당하다. 필요조건과 충분조건 참조.

항상 참인 명제를 항진명제(tautology)라고 한다. 개별 문서가 있는 항진명제로는 퍼스의 항진명제가 있다.

3. "실질 조건문의 역설"[편집]


조건문은 영어"If --- then ..." 구문이나 한국어"만약 ---면, ...다" 같은 표현에 대응한다. 하지만 실질 조건문은 이런 자연 언어의 쓰임새를 포착하는데 실패하고는 한다. 다음이 그 대표적인 예시다.

"만약 태양이 지구를 돈다면, 대한민국의 수도는 부산이다."


[math(P)] = (태양이 지구를 돈다), [math(Q)] = (대한민국의 수도는 부산이다)라고 하자. 위 조건문을 실질 조건문 [math(P\to Q)]로 분석할 경우, 위 정의에 따라 [math(P)]가 거짓이거나 [math(Q)]가 참이면 해당 조건문은 참이다. 그런데 태양은 지구를 돌지 않으므로 [math(P)]는 거짓이다. 따라서 [math(Q)]의 참거짓과는 상관없이 위 문장은 참이 된다. 이러한 참을 ‘공허한 참(Vacuous Truth)’이라고 한다. 전제 자체가 거짓이라 거기에서 도출되는 것이 아무것도 없으므로 해당 참은 무의미하다는 의미이다.

하지만 어떤 외국인이 "만약 태양이 지구를 돈다면, 대한민국의 수도는 부산이다" 라고 말하는걸 한국어 모국어 화자가 본다면 대부분 그 외국인이 태양계나 대한민국의 수도에 대해서 아는게 틀렸거나 한국어를 구사하지 못한다고 판단할 것이다.

또 다른 예시는 다음과 같다:

상황: 철희라는 소년이 있다.

* (실질조건문으로 분석할 때) 참인 문장: "만약 철희가 소년이면 철희는 남자다.", "만약 철희가 소년이 아니면 철희는 남자이다.", "만약 철희가 소년이 아니면 철희는 소년이다.", "만약 철희가 소년이 아니면 철희는 여자다."

* (실질조건문으로 분석할 때) 거짓인 문장: "만약 철희가 소년이면 철희는 여자다."


철희가 소년일 경우, 전건이 "철희가 소년이 아니다"인 조건문 모두가 자동으로 참이 되는 것은 한국어의 용례와 상치된다.

구문론적으로 이러한 현상은 다음과 같은 추론을 허용하기 때문에 발생한다.

[math(\neg P\vdash P\to Q)]


버트런드 러셀화이트헤드의 『수학 원리』에서 명시적으로 도입된 이래, 수학에서는 조건문을 실질 조건문으로 분석하는데 대부분 이견이 없다.[3] 여러 요인이 있지만, 특히 수학에서의 참거짓은 모두 필연적 참 혹은 필연적 거짓이기 때문이다.

하지만 위 예시들에서 볼 수 있듯이 수학을 제외한 다른 영역에서 실질조건문은 자연언어의 조건문의 의미를 포착하지 못한다고 여겨지고는 한다. 그 때문에 조건문에 대한 다른 분석을 제시하는 비고전 논리학에서는 실질조건문을 [math( P \to Q)] 대신 [math(P \supset Q)]로 표현하며 명시적으로 구별한다.


3.1. 자연어 조건문을 실질조건문으로 분석하는 것에 대한 변호[편집]


P가 거짓일 때 참이되는 것이 아직 받아들이기 어렵다면 이렇게 생각해보자. 선생님이 학생에게 “체육대회에서 100 m를 15초 안에 뛸 수 있으면 아이스크림을 주겠다.”라고 약속했다고 해보자. 그러면 다음과 같은 네 가지 경우의 수가 존재한다.
  1. 학생이 체육대회에서 100 m를 15초 안에 뛰어서 선생님이 아이스크림을 주었다.
  2. 학생이 체육대회에서 100 m를 15초 안에 뛰었는데도 선생님이 아이스크림을 주지 않았다.
  3. 학생이 체육대회에서 100 m를 15초 안에 뛰지 못했고, 선생님이 아이스크림을 주었다.
  4. 학생이 체육대회에서 100 m를 15초 안에 뛰지 못해서 선생님이 아이스크림을 주지 않았다.
이 약속이 거짓말이 되는 경우는 "단 한가지" 뿐이다. 즉, (2) 학생이 100m를 15초 안에 들어왔는데 선생님이 아이스크림 안주는 경우만 거짓이다. (3) 학생이 15초안에 못뛰었을 때 선생님이 학생이 안쓰러워 아이스크림을 사준 경우 이는 선생님이 약속을 어겼다고 볼 수 없고 단순한 변심으로 보는게 타당할 것이다. 즉 위의 선생님의 약속(가언 명제) 자체는 여전히 이다. 그리고 마찬가지로 (4) 15초안에 못뛰었을 때 선생님이 아이스크림을 사주지 않는 경우 학생은 그런가보다 하고 넘어갈 수 있고 이 또한 선생님이 약속(가언 명제)을 어겼다고 할 수 없다. 즉, 으로 인정한다. 다시 정리하자면 학생이 100m를 15초 안에 뛰지 못한 경우에 대해서 선생님은 어떠한 약속도 하지않았으므로 선생님이 어떤 행동을 하든 약속이 거짓말이 될 수없다.[4]

영어로는 이해하기 쉽다.
  • Don't go there or you may be in trouble. = If you go there, then you may be in trouble.
두 문장이 같은 뜻임을 알 수 있다. 명령문의 논리적 문법이 영어와 같지 않은 한국어로는 대신 다음과 같이 이해할 수는 있다.
  • 과자를 먹든지, 안 그러면 아이스크림을 먹든지.
위 문장에서 '안 그러면', '아니면' 등의 구가 선언(or) 역할을 한다는 점을 먼저 이해하면 아래의 예로 이해할 수 있다.
  • 거기 가지 마. 안 그러면 안 좋은 일이 생길 거야. = 네가 거기 가면 안 좋은 일이 생길 거야.

4. 발전된 접근 방식[편집]


C.I.루이스는 버트런드 러셀화이트헤드의 『수학 원리』에서 "P implies Q"를 실질조건문 "[math(P\supset Q)]"로 분석한 것에 반발하여 보다 엄격한 조건을 제시하였다. 이 과정에서 루이스는 1918년 현대 양상논리의 기초가 되는 공리계를 제시하였으며, [math(P\supset Q)]보다 엄격한 [math(P\;⥽\;Q)]를 도입함으로써 '실질조건문의 역설'을 해결했다. 이렇게 정의된 조건문은 "엄밀 조건문(strict conditional)"이라 불리며, 현대에는 "P ⥽ Q" 대신 [math(\square(P\supset Q))]라고 표현하는 경우가 더 잦다.

그러나 이처럼 자연 언어의 조건문을 엄밀 조건문으로 분석하면 상기한 문제들은 해결하지만, 조건문의 전건이 필연적으로 거짓일 경우에 한하여 그와 비슷한 문제가 재발한다. 따라서 엄밀 조건문 역시 자연어 분석에 적확하지는 않다는 견해가 많다.

20세기 후반 이후에는 영어 등 자연 언어에서 조건문이 크게 '직설법적(indicative) 조건문'과 '가정법적(subjunctive) 조건문'이라는 두 유형으로 나뉜다는 점에 주목하여 그 분석을 달리한다. 그 고전적인 구별 예시는 다음과 같다:

* 직설법적 조건문: "만약 오스왈드가 케네디를 죽인게 아니라면, 다른 사람이 케네디를 죽인 것이다(If Oswald didn't kill Kennedy, someone else did)"

* 가정법적 조건문: "만약 오스왈드가 케네디를 죽이지 않았더라면, 다른 사람이 케네디를 죽였으리라(If Oswald hadn't killed Kennedy, someone else would have)"


해당 직설법적 조건문은 명백히 참이지만 ("오스왈드가 범인이 아니었다고? 그럼 누가 범인이지?"), 그 아래 가정법적 조건문은 참이라고 단정하기 힘든 매우 대담한 역사적 주장이다 ("설령 오스왈드의 암살 시도를 막았더라도 제2의, 제3의 오스왈드가 등장해 케네디를 쐈을 것이다.")

이런 조건문들의 분석에 대해서는 매우 다양한 연구가 진행되었으며, 더욱 자세한 사항에 대해서는 스탠퍼드 철학 백과사전 등 보다 심화된 자료를 참고하라.

파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는
문서의 r123 판{{{#!wiki style="display: inline; display: 3.4;"
, 3.4번 문단}}}에서 가져왔습니다. 이전 역사 보러 가기
파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는 다른 문서에서 가져왔습니다.
[ 펼치기 · 접기 ]
문서의 r123 판{{{#!wiki style="display: inline; display: 3.4;"
, 3.4번 문단}}} (이전 역사)
문서의 r129 판{{{#!wiki style="display: inline; display: 2.2;"
, 2.2번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)

문서의 r 판{{{#!wiki style="display: inline; display: none;"
, 번 문단}}} (이전 역사)




파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-17 00:10:19에 나무위키 조건문 문서에서 가져왔습니다.

[1] 맥락에 따라서 "hypotheticals", "implication" 같은 용어도 쓰인다.[2] 이때 실질 조건문을 나타내는 말발굽(horseshoe) 기호 '⊃'는 집합론에서의 부분집합 관계를 나타내는 기호와 생김새는 같지만, 전혀 다른 의미라는 점에 유의해야한다.[3] 직관주의 논리에서는 이에 동의하지 않는다. 다만 수학철학 문서에서 확인할 수 있듯이 직관주의자들은 기본적으로 고전수학을 상당부분 거부하고는 한다.[4] 만약 반대로 약속을 다르게해서 15초 안에 뛰면 아이스크림을 주고 못뛰면 안 주겠다라고 정한 경우 못뛰었을 때 아이스크림을 준 (3)이 약속을 어긴 케이스가 될 것이다. 이런 약속을 밑에서 보게될 쌍조건문이라고 한다.