조건명제의 전제와 결론, 필요조건과 충분조건은 어떻게 구분하나요?
명제는 참인지 거짓인지 판단할 수 있는 문장입니다. 조건명제에서는 전제와 결론을 분리하고, 참·거짓 조합을 적어 필요조건과 충분조건을 뒤바꾸지 않도록 확인합니다.
적용 조건·범위: p=‘로그인했다’, q=‘사용자 ID가 존재한다’라는 조건을 모델링했다고 합시다. 역은 ‘ID가 있으면 로그인했다’, 이는 ‘로그인하지 않으면 ID가 없다’, 대우는 ‘ID가 없으면 로그인하지 않았다’입니다. 실제 서비스가 이 조건을 만족하는지는 별도 사양 확인이 필요합니다.
공식 문서 참고: MIT 명제 논리·조건명제·대우(3.1·3.3절)
핵심 정의와 기호
명제는 참 또는 거짓으로 판단할 수 있는 평서문입니다. ‘2는 홀수이다’처럼 거짓인 문장도 명제입니다. 질문·명령은 명제가 아닙니다. ‘n은 짝수이다’는 n의 범위와 값이 정해지지 않았다면 술어이며, n=2로 정하거나 ‘모든 정수 n에 대해’처럼 수량을 정해야 명제가 됩니다.
| 기호 | 읽는 법 | 참인 조건 |
|---|---|---|
| ¬p | p가 아니다 | p가 거짓 |
| p∧q | p이고 q이다 | 둘 다 참 |
| p∨q | p 또는 q이다 | 하나 이상 참 |
| p→q | p이면 q이다 | p가 참이고 q가 거짓인 경우를 제외 |
∨는 둘 다 참인 경우도 포함합니다. p→q에서 p는 q의 충분조건, q는 p의 필요조건입니다. p가 성립하면 q를 보장하지만 q만으로 p를 보장하지는 않습니다.
가장 작은 예제
정수 n에 대해 P(n)을 ‘4의 배수’, Q(n)을 ‘짝수’라고 둡니다. 모든 정수 n에 대해 P(n)→Q(n)은 참입니다. n=4k이면 n=2(2k)이기 때문입니다. 역 Q(n)→P(n)은 n=2에서 거짓입니다.
헷갈리는 반례
역은 q→p, 이는 ¬p→¬q, 대우는 ¬q→¬p입니다. 원명제와 같은 진리값을 보장하는 것은 대우입니다. ‘4의 배수가 아니면 짝수가 아니다’라는 이는 n=2에서 거짓입니다. JavaScript truthy/falsy는 언어의 변환 규칙이므로 Boolean 논리와 구분합니다.
손으로 풀어보기
p=‘로그인했다’, q=‘사용자 ID가 존재한다’라는 조건을 모델링했다고 합시다. 역은 ‘ID가 있으면 로그인했다’, 이는 ‘로그인하지 않으면 ID가 없다’, 대우는 ‘ID가 없으면 로그인하지 않았다’입니다. 실제 서비스가 이 조건을 만족하는지는 별도 사양 확인이 필요합니다.
| p | q | ¬p | p∧q | p∨q | p→q | ¬q→¬p |
|---|---|---|---|---|---|---|
| 참 | 참 | 거짓 | 참 | 참 | 참 | 참 |
| 참 | 거짓 | 거짓 | 거짓 | 참 | 거짓 | 거짓 |
| 거짓 | 참 | 참 | 거짓 | 참 | 참 | 참 |
| 거짓 | 거짓 | 참 | 거짓 | 거짓 | 참 | 참 |
마지막 두 열이 모든 조합에서 같으므로 원명제와 대우는 논리적으로 동치입니다. 전제가 거짓인 두 행에서 조건명제가 참인 이유는 ‘p이면서 q가 아닌 반례’가 없기 때문입니다.
선택: JavaScript로 검산하기
코드 직접 실행
본문 예제를 선택하고 실제 계산 결과를 확인합니다.
예제 크게 보기 (새 탭)손풀이 뒤 선택해서 실행하는 짧은 전체 코드입니다. 브라우저 Console 또는 Node.js가 준비된 환경의 check.mjs에서 실행할 수 있으며 수학 학습에 설치는 필수가 아닙니다.
const values = [true, false];
for (const p of values) {
for (const q of values) {
const implication = !p || q;
console.log({ p, q, implication });
}
}
기대 결과: p,q가 (true,true), (true,false), (false,true), (false,false)일 때 implication은 차례로 true, false, true, true입니다.
Boolean 변수 두 개의 네 조합은 가능한 경우 전체입니다. 정확한 진리표로 모든 경우를 확인하면 해당 논리식의 동치를 증명할 수 있습니다. 무한한 정수 중 몇 값만 검사하는 것과 다릅니다.
자주 발생하는 오해와 교정
‘전제가 거짓이면 조건명제도 거짓’이라는 해석은 틀립니다. p→q가 거짓인 것은 p가 참이고 q가 거짓인 한 경우입니다. 역 q→p와 대우 ¬q→¬p도 구분하며 원명제와 항상 동치인 것은 대우입니다.
직접 풀어볼 문제와 해설
쉬운 개념
조건명제 p→q는 p가 참인데 q가 거짓인 경우에만 깨집니다. 역 q→p는 다른 주장이고, 대우 ¬q→¬p는 원래 주장과 같은 진리값입니다.
단계별 예제
- p=참, q=거짓을 대입합니다.
- p→q는 참인 전제가 거짓인 결론을 보장하지 못하므로 거짓입니다.
- 대우에서는 ¬q=참, ¬p=거짓이므로 역시 거짓입니다.
직접 풀 문제
p=거짓, q=참일 때 p→q, 역 q→p, 대우 ¬q→¬p의 진리값을 차례대로 구하세요.
정답·해설 보기
- p→q는 전제가 거짓이라 참입니다.
- 역 q→p는 참→거짓이므로 거짓입니다.
- 대우 ¬q→¬p는 거짓→참이므로 참입니다. 원명제와 대우만 일치합니다.
다음 학습
2회차에서는 조건의 대상 집합을 정하고 OR·AND를 합집합·교집합에 연결합니다. 다음 글 읽기
학습 완료 체크리스트
- 정의의 적용 범위와 기호를 말로 설명할 수 있습니다.
- 위 손풀이를 답을 가린 상태에서 다시 계산합니다.
- 반례가 어떤 조건을 어기는지 설명합니다.
알고리즘 수학 노트
첫 회차이므로 새 노트에서 시작합니다. 아래는 이번 회차의 완성 예시입니다. 자신의 다른 예제 하나를 덧붙여도 좋습니다.
‘권한이 있으면 메뉴를 표시한다’를 p→q로 모델링하고 p=true,q=false를 요구사항 위반 사례로 적습니다. 충분조건과 필요조건의 방향, 역의 반례 n=2, 원명제·대우의 동일한 열을 저장합니다. 다음 집합에서는 ‘조건을 만족하는 대상의 범위’를 다룹니다.
완료 체크포인트
discrete-step-01-proposition
다음 학습
이산수학 집합 쉽게 이해하기: 원소 부분집합 집합연산에서 다음 개념을 이어갑니다.
글 소개·학습 준비·전체 목차

이산수학 · 1 / 13
명제 논리 조건명제 기준: 참과 거짓이 헷갈릴 때 구분하기
이산수학의 출발점은 문장이 참인지 거짓인지 분명하게 판단하는 것입니다. 명제 논리를 이해하면 조건문을 읽을 때 전제와 결론을 분리하고, 필요조건·충분조건을 뒤바꾸는 실수를 줄일 수 있습니다.
이번 글에서 배우는 내용
- 거짓인 문장과 명제가 아닌 문장을 구분합니다.
- 역·이·대우와 필요·충분조건의 방향을 설명합니다.
- 조건명제의 네 행을 직접 완성합니다.
선수 지식
정수의 짝수·홀수 정도만 알면 됩니다. 개발환경이나 코딩 경험은 필수가 아닙니다.
목차
- 학습 준비와 전체 순서
- 핵심 정의와 기호
- 가장 작은 예제
- 헷갈리는 반례
- 손으로 풀어보기
- 선택: JavaScript로 검산하기
- 자주 발생하는 오해와 교정
- 학습 완료 체크리스트
- 알고리즘 수학 노트
- 완료 체크포인트
- 다음 학습
학습 준비와 전체 순서
종이나 텍스트 편집기에 ‘알고리즘 수학 노트’를 만들고 첫 항목을 ‘01 명제’로 적습니다. 별도 설치는 필요 없습니다. 먼저 ‘2는 짝수이다’와 ‘문을 닫아라’를 적고 참·거짓을 정할 수 있는 문장만 골라보세요. 앞 문장은 참인 명제이고 뒤 문장은 명령이므로 명제가 아닙니다.
13편은 명제 → 집합 → 증명 → 관계 → 함수 → 부울대수 → 경우의 수 → 행·열 → 행렬 → 그래프 → 그래프 문제 → 정수론 → 오토마타 순서입니다. 매 회차 정의·기호·예제·반례·손풀이·개발 연결을 노트에 추가합니다. 조건식과 알고리즘의 근거를 설명하는 것이 목표이므로 코드보다 손풀이를 먼저 합니다. 선택 JS는 브라우저 개발자 도구의 Console에 직접 입력하거나, Node.js가 이미 있다면 check.mjs에 저장해 node check.mjs로 실행할 수 있습니다.
이 글이 도움이 되었나요?
읽음 기록
읽음 — / 전체 13개 · 필수 13개
새 글 받아보기
RSS 리더에서 BlogFlow의 새 글을 확인할 수 있습니다.