3강 / 20강
조건명제 — 만약 …라면
역 · 이 · 대우, 그리고 헷갈리는 '거짓이면 참'
"비가 오면 우산을 쓴다." 이 문장은 조건명제(implication)이고
p → q라고 씁니다. p는 가정, q는 결론이에요.
이 명제가 거짓이 되는 경우는 딱 하나뿐입니다 — 비가 왔는데(p 참) 우산을 안 쓴 경우(q 거짓). 약속을 어긴 순간이죠.
| p (비가 온다) | q (우산을 쓴다) | p → q | 왜? |
|---|---|---|---|
| 참 | 참 | 참 | 약속대로 했다 |
| 참 | 거짓 | 거짓 | 약속을 어겼다 ← 이때만! |
| 거짓 | 참 | 참 | 비도 안 오는데 우산을 썼을 뿐, 약속을 어긴 건 아니다 |
| 거짓 | 거짓 | 참 | 비가 안 왔으니 약속이 발동하지 않았다 |
마지막 두 줄이 이산수학을 처음 배울 때 가장 이상하게 느껴지는 부분입니다. 가정이 거짓이면 결론이 뭐든 조건명제는 참이에요. 이것을 공허한 참이라고 부릅니다.
p → q ≡ ¬p ∨ q — 조건명제는 새 연산이 아니라 ∨ 와 ¬ 로 만든 조합입니다.
Python
브라우저에서 실행
🎮 약속을 어겼는지 직접 판정해 보세요
스위치를 눌러 p와 q를 바꿔 가며,
어떤 경우에 조건명제가 깨지는지 눈으로 확인해 보세요.
역·이·대우도 함께 계산해 줍니다.
역 · 이 · 대우
조건명제 p → q 에서 앞뒤를 바꾸거나 부정하면 세 친척이 생깁니다.
- 역(converse)
q → p— "우산을 쓰면 비가 온다" - 이(inverse)
¬p → ¬q— "비가 안 오면 우산을 안 쓴다" - 대우(contrapositive)
¬q → ¬p— "우산을 안 썼다면 비가 안 온 것이다"
여기서 이 강의 전체에서 가장 쓸모 있는 사실 하나가 나옵니다.
원래 명제와 대우는 항상 같다. p → q ≡ ¬q → ¬p
반면 역과 이는 원래 명제와 다릅니다. 우산을 썼다고 꼭 비가 오는 건 아니니까요 (햇빛을 가릴 수도 있죠).
원래=대우, 역=이. 하지만 원래와 역은 다릅니다.
Python
브라우저에서 실행
필요조건과 충분조건
p → q 를 말로 풀면 이렇습니다.
p는q이기 위한 충분조건 — p면 q는 확실하다q는p이기 위한 필요조건 — q가 아니면 p일 수 없다
"고3이면 학생이다"에서 고3은 충분하고(고3이면 무조건 학생),
학생은 필요합니다(학생이 아니면 고3일 수 없음).
둘이 동시에 성립하면 p ↔ q, 필요충분조건이라 하고 "p일 때, 그리고 그때만 q"라고 읽어요.
쌍조건은 == 입니다. 그래서 프로그램에서 == 로 쓰는 거예요.
Python
브라우저에서 실행
🤔 확인 문제
p가 거짓, q가 거짓일 때 p → q 는?해설 가정이 거짓이면 약속이 발동하지 않았으므로 어긴 것도 아닙니다. 그래서 참이에요 (공허한 참). 조건명제가 거짓이 되는 것은 오직 참 → 거짓 한 경우뿐입니다.
🤔 확인 문제
"모든 소수는 홀수이다"의 대우는?
해설
p → q의 대우는 ¬q → ¬p — 결론을 부정하면 가정이 부정된다입니다. ①은 역, ③은 이예요. 참고로 원래 명제는 2 때문에 거짓이고, 대우도 (2가 홀수가 아닌데 소수이므로) 함께 거짓입니다 — 둘은 언제나 운명을 같이합니다.🤔 확인 문제
"비밀번호가 8자 이상이어야 가입할 수 있다" — 8자 이상은 가입의 무엇인가요?
해설 8자 이상이어도 아이디 중복 등 다른 이유로 막힐 수 있으니 충분하지는 않습니다. 하지만 8자 미만이면 확실히 막히므로 필요조건이에요. "가입됨 → 8자 이상" 이 참이라는 뜻입니다.