명제 논리 (Propositional Logic)
정의
명제 (Proposition) 는 참 (T) 또는 거짓 (F) 값을 가지는 서술문입니다. 참/거짓을 판단할 수 없는 문장 (질문, 명령, 감탄) 은 명제가 아닙니다.
예 (명제):
- “2 + 2 = 4” (참)
- “지구는 정사각형이다” (거짓)
- ” 은 소수이다” (변수 있음: 술어)
예 (명제 아님):
- “안녕하세요?”
- “문을 닫아라”
- ""
논리 연산자
명제 를 결합해 새 명제 생성.
| 연산 | 기호 | 의미 |
|---|---|---|
| 부정 | not p | |
| 논리곱 | p 그리고 q | |
| 논리합 | p 또는 q (포함적 or) | |
| 배타적 논리합 | p 또는 q 이지만 둘 다는 아님 | |
| 함의 | p 이면 q (implication) | |
| 동치 | p 이면 q 이고 q 이면 p |
진리표
각 연산의 정의:
AND ()
| T | T | T |
| T | F | F |
| F | T | F |
| F | F | F |
OR ()
| T | T | T |
| T | F | T |
| F | T | T |
| F | F | F |
함의 ()
가장 헷갈리는 연산. “p 이면 q” 는 p 가 참인데 q 가 거짓일 때만 거짓, 나머지는 참.
| T | T | T |
| T | F | F |
| F | T | T |
| F | F | T |
직관: “비가 오면 우산을 든다” 라는 약속.
- 비 O, 우산 O -> 약속 지킴 (T)
- 비 O, 우산 X -> 약속 어김 (F)
- 비 X, 우산 O -> 약속과 무관 (T, vacuously true)
- 비 X, 우산 X -> 약속과 무관 (T)
전제가 거짓이면 함의는 항상 참 = vacuous truth.
동치 ()
는 두 명제의 진리값이 같음.
| T | T | T |
| T | F | F |
| F | T | F |
| F | F | T |
진리표로 논리 등식 검증
예: 드모르간 법칙
| T | T | T | F | F | F | F |
| T | F | F | T | F | T | T |
| F | T | F | T | T | F | T |
| F | F | F | T | T | T | T |
4번째, 7번째 열이 일치 -> 등식 성립.
시각화: 진리표를 다이어그램으로
AND / OR 벤 다이어그램
flowchart LR
subgraph "AND: p ∧ q (교집합)"
A1["p 만"]:::p
B1["q 만"]:::q
AB1["p ∧ q"]:::and
end
classDef p fill:#fee2e2
classDef q fill:#dbeafe
classDef and fill:#a7f3d0
는 두 원의 교집합, 는 두 원의 합집합.
논리 동치 (주요 법칙)
| 법칙 | 등식 |
|---|---|
| 항등 | , |
| 지배 | , |
| 멱등 | , |
| 이중부정 | |
| 교환 | , |
| 결합 | |
| 분배 | |
| 드모르간 | |
| 흡수 | |
| 함의 재작성 | |
| 대우 | |
| 동치 재작성 |
함의의 관련 명제
에 대해:
- 역 (converse):
- 이 (inverse):
- 대우 (contrapositive):
중요: 원 명제와 대우 는 논리적으로 동치. 역/이는 원 명제와 동치가 아님.
예: 원 명제 “비가 오면 땅이 젖는다”
- 대우: “땅이 젖지 않으면 비가 오지 않는다” (동치 O)
- 역: “땅이 젖으면 비가 온다” (동치 X, 물뿌리개일 수도)
- 이: “비가 오지 않으면 땅이 젖지 않는다” (동치 X)
항진명제와 모순
- 항진명제 (tautology): 모든 진리 할당에서 참. 예:
- 모순 (contradiction): 모든 진리 할당에서 거짓. 예:
- 가능명제 (contingency): 참 또는 거짓 (진리 할당에 의존).
정규형
명제 논리식은 두 가지 표준형으로.
논리곱 정규형 (CNF, Conjunctive Normal Form)
절 (clause) 의 논리곱. 각 절은 리터럴의 논리합.
SAT solver 의 표준 입력. Boolean Algebra 참조.
논리합 정규형 (DNF)
항 (term) 의 논리합. 각 항은 리터럴의 논리곱.
추론 규칙
전제로부터 결론을 도출하는 규칙:
Modus Ponens (긍정 논법)
“p 이면 q, 그리고 p 이다. 따라서 q.”
Modus Tollens (부정 논법)
“p 이면 q, 그런데 q 가 아니다. 따라서 p 도 아니다.” (대우 활용)
삼단논법
분리 규칙
컴퓨터 과학 응용
프로그래밍 조건문
if (age >= 18) and (has_license):
can_drive = True
이는 명제 논리의 AND. and 는 , or 는 , not 은 .
회로 설계
- AND 게이트, OR 게이트, NOT 게이트
- 진리표 -> DNF/CNF -> 회로
- 최소화: 카르노 맵
형식 검증
- 프로그램의 사전조건 / 사후조건을 명제로 표현
- 정리 증명기가 논리식 검사
SAT 문제
- CNF 논리식이 만족 가능한 진리 할당이 있는가?
- NP-완전. 많은 조합 최적화 문제가 SAT 로 환원.
함정
1. 함의의 vacuous truth
전제 가 거짓이면 는 자동으로 참. 이를 잊으면 오류.
예: “5 > 10 이면 지구는 평평하다” 는 논리적으로 참 (전제 거짓).
2. 역과 원 명제 혼동
“모든 소수는 홀수이다” 의 역은 “모든 홀수는 소수이다” (거짓, 예: 9). 원 명제와 동치가 아님. (사실 원 명제도 거짓, 2 는 짝수 소수).
3. 배타적 or 와 포함적 or
일상 언어의 “or” 는 종종 배타적 (either-or). 논리 는 포함적 (둘 다 참이어도 참). SQL 의 OR 등도 포함적.
4. 드모르간 실수
를 로 착각. 부정하면 연산자도 뒤집힘.
다음 학습
명제 논리 이후:
관련 위키
이 글의 용어 (5개)
- 부울 대수 (Boolean Algebra)discrete-math
- 정의 부울 대수 (Boolean Algebra) 는 두 값 (참/거짓, 1/0) 과 세 연산 (AND, OR, NOT) 을 다루는 대수 시스템입니다. 1854년 George Bo…
- 이산수학 (Discrete Mathematics)discrete-math
- 정의 이산수학 (Discrete Mathematics) 은 이산 (discrete, 셀 수 있는) 대상을 다루는 수학의 분야입니다. 연속 (continuous) 대상 을 다루는 …
- 조합론 기초 (Combinatorics)discrete-math
- 정의 조합론 (Combinatorics) 은 유한 집합의 원소를 세거나 배열하는 방법을 다루는 수학 분야입니다. "경우의 수 계산" 과 "구조의 존재/구성" 이 핵심 주제. 컴퓨…
- 증명 기법 (Proof Techniques)discrete-math
- 정의 증명 (proof) 은 명제가 참임을 논리적으로 확립하는 절차입니다. 컴퓨터 과학에서는 알고리즘 정확성, 자료구조 불변식, 암호 안전성, 형식 검증 등에 필수. 이 문서는 …
- 집합, 관계, 함수 (Sets, Relations, Functions)discrete-math
- 정의 - 집합 (set): 서로 다른 원소들의 모음 - 관계 (relation): 두 집합 사이의 원소들의 대응 규칙 - 함수 (function): 정의역의 각 원소를 치역의 유…
💬 댓글