이 글에서 정리하는 내용
이산수학 논리 단원을 처음 공부할 때는 기호를 많이 외우는 것보다, 문장을 참과 거짓으로 나누는 기준을 먼저 잡는 편이 덜 흔들립니다. 이 글은 명제 구분, 논리연산, 조건명제, 역·이·대우, 한정자, 추론 규칙을 초심자 기준으로 연결해 정리합니다.
이산수학 부울대수 논리게이트를 함께 읽으면 같은 폴더 개념 간 연결 흐름을 빠르게 정리할 수 있습니다.
- 논리 단원은 기호보다 판단 기준이 먼저다
- 논리연산은 진리표의 마지막 열로 확인한다
- 조건명제는 약속이 깨지는 경우만 찾는다
- 역·이·대우는 이름보다 모양을 비교해야 한다
- 한정자는 전부와 하나 이상의 차이다
- 추론 문제는 결론보다 구조를 본다
- 시험 전에 다시 볼 체크포인트
논리 단원은 기호보다 판단 기준이 먼저다

이산수학의 논리 단원을 처음 펼치면 ¬, ∧, ∨, →, ∀, ∃ 같은 기호가 먼저 눈에 들어옵니다. 그래서 논리 단원을 기호 암기 과목처럼 받아들이기 쉽습니다. 하지만 실제 문제에서 자주 막히는 부분은 기호 자체보다 “이 문장을 지금 참이나 거짓으로 말할 수 있는가”를 판단하는 순간입니다.
논리에서 가장 먼저 다루는 대상은 명제입니다. 명제는 참 또는 거짓이 분명하게 정해지는 문장입니다. 여기서 핵심은 문장이 수학적으로 보이는지, 길이가 짧은지, 말투가 평서문인지가 아닙니다. 지금 바로 참과 거짓 중 하나로 확정할 수 있어야 합니다.
명제인지 확인할 때 먼저 보는 것
명제인 문장
- 2 + 3 = 5
- 해는 동쪽에서 떠서 서쪽으로 진다.
- 10은 짝수이다.
명제가 아닌 문장
- 이번 시험 잘 보자.
- 지금 기분이 어때?
- 와, 정말 멋지다.
- x + 2 = 5
첫 번째 묶음은 참과 거짓을 바로 판단할 수 있습니다. 그래서 명제입니다. 두 번째 묶음은 다릅니다. “이번 시험 잘 보자”는 바람이고, “지금 기분이 어때?”는 질문이며, “정말 멋지다”는 사람마다 판단이 달라질 수 있는 감탄입니다. 이런 문장은 참 또는 거짓으로 확정할 수 없으므로 명제가 아닙니다.
초반에 특히 헷갈리는 것은 x + 2 = 5 같은 식입니다. 수학식이라 명제처럼 보이지만 x 값이 정해지지 않았습니다. x가 3이면 참이고, x가 1이면 거짓입니다. 값에 따라 결과가 달라지는 상태라서, 이 단계에서는 명제라기보다 명제함수 또는 술어로 다룹니다.
문제를 풀 때는 “이 말이 맞는 말인가?”보다 “진리값을 하나로 정할 수 있는가?”를 먼저 묻는 것이 좋습니다. 이 기준이 잡히면 뒤에서 나오는 조건명제와 한정자도 같은 흐름으로 읽을 수 있습니다.
논리연산은 진리표의 마지막 열로 확인한다
명제를 하나만 다룰 때는 참과 거짓만 확인하면 됩니다. 하지만 논리 문제에서는 여러 명제를 연결해서 새로운 문장을 만듭니다. 이때 사용하는 규칙이 논리연산입니다. 논리연산은 명제를 뒤집거나, 두 명제를 연결해서 전체 문장의 진리값을 정하는 방식입니다.
기호를 바로 외우려고 하면 부담이 큽니다. 먼저 p와 q에 짧은 문장을 넣고 읽어보면 훨씬 편합니다. 예를 들어 p를 “오늘은 비가 온다”, q를 “나는 우산을 가져간다”라고 두겠습니다.
기본 논리연산을 문장으로 읽기
p : 오늘은 비가 온다.
q : 나는 우산을 가져간다.
¬p : 오늘은 비가 오지 않는다.
p ∧ q : 오늘은 비가 오고, 나는 우산을 가져간다.
p ∨ q : 오늘은 비가 오거나, 나는 우산을 가져간다.
p ⊕ q : 둘 중 정확히 하나만 참이다.
p → q : 오늘 비가 오면 나는 우산을 가져간다.
p ↔ q : 오늘 비가 올 때 그리고 그럴 때에만 우산을 가져간다.
부정은 참과 거짓을 뒤집습니다. 논리곱은 두 명제가 모두 참일 때만 참이고, 논리합은 둘 중 하나라도 참이면 참입니다. 배타적 논리합은 이름 그대로 둘 중 정확히 하나만 참이어야 합니다. 둘 다 참인 경우는 일반 논리합에서는 참이지만, 배타적 논리합에서는 거짓입니다.
논리연산을 계산할 때는 진리표를 사용합니다. 진리표는 가능한 모든 참·거짓 조합을 줄로 나열한 표입니다. 식이 길어져도 마지막 열의 결과를 보면 전체 명제가 어떤 조건에서 참인지 확인할 수 있습니다.
진리표를 볼 때 헷갈리지 않는 기준
p q p ∧ q p ∨ q
참 참 참 참
참 거짓 거짓 참
거짓 참 거짓 참
거짓 거짓 거짓 거짓
p ∧ q는 둘 다 참인 첫 번째 줄에서만 참입니다. p ∨ q는 둘 중 하나라도 참이면 참이므로 마지막 줄만 거짓입니다. 진리표를 만들 때 중간 열을 꼼꼼히 계산하되, 최종 판단은 마지막 열로 합니다.
두 식이 논리적으로 같은지 확인할 때도 마지막 열이 기준입니다. 표현이 달라도 가능한 모든 경우에서 마지막 열이 완전히 같으면 두 식은 논리적으로 동치입니다. 한 줄이라도 다르면 같은 식이 아닙니다.
조건명제는 약속이 깨지는 경우만 찾는다
논리연산 중에서 처음 공부할 때 가장 어색한 것은 조건명제입니다. p → q는 “p이면 q이다”라고 읽습니다. 문제는 p가 거짓인 경우에도 조건명제 전체가 참으로 처리된다는 점입니다. 일상 언어의 감각으로 보면 이상하게 느껴질 수 있습니다.
조건명제를 원인과 결과의 실제 관계로만 받아들이면 계속 헷갈립니다. 이산수학에서 p → q는 p가 참인 상황에서 q도 따라와야 한다는 약속으로 보는 것이 좋습니다. 그러면 거짓이 되는 경우가 딱 하나로 좁혀집니다.
p → q가 거짓이 되는 한 가지 경우
p → q 는 p가 참이고 q가 거짓일 때만 거짓이다.
p q p → q
참 참 참
참 거짓 거짓
거짓 참 참
거짓 거짓 참
“비가 오면 우산을 가져간다”라는 문장을 생각해보겠습니다. 비가 실제로 왔는데 우산을 가져가지 않았다면 약속이 깨졌습니다. 그래서 p가 참이고 q가 거짓인 줄만 전체가 거짓입니다.
반대로 비가 오지 않았다면 그 약속을 검사할 상황이 발생하지 않은 것으로 봅니다. 비가 오지 않았는데 우산을 가져갔을 수도 있고, 가져가지 않았을 수도 있습니다. 둘 다 “비가 오면 우산을 가져간다”라는 약속을 어긴 상황은 아닙니다.
이 규칙이 낯설어도 조건명제 문제에서는 반드시 이 기준으로 판단해야 합니다. 조건명제는 “p와 q가 현실에서 관련 있어 보이는가”보다 “p가 참일 때 q가 거짓으로 떨어지는가”를 먼저 확인합니다.
조건명제와 함께 자주 쓰는 동치식
p → q ≡ ¬p ∨ q
p ↔ q ≡ (p → q) ∧ (q → p)
p → q는 ¬p ∨ q와 논리적으로 같습니다. 처음에는 식만 보면 잘 와닿지 않을 수 있습니다. 이럴 때는 네 가지 참·거짓 경우를 넣어 마지막 열을 비교하면 됩니다. 두 식은 모든 줄에서 같은 결과를 냅니다.
쌍조건명제 p ↔ q는 양방향 조건입니다. p이면 q이고, 동시에 q이면 p여야 합니다. 그래서 p와 q의 진리값이 서로 같을 때 참입니다. 하나는 참이고 하나는 거짓이면 양방향 약속이 맞지 않으므로 거짓입니다.
역·이·대우는 이름보다 모양을 비교해야 한다
조건명제를 배운 뒤에는 역, 이, 대우가 나옵니다. 세 단어를 따로 외우려고 하면 쉽게 섞입니다. 원래 명제 p → q에서 앞뒤를 바꾸는지, 부정을 붙이는지, 둘 다 하는지를 기준으로 보면 훨씬 안정적입니다.
원래 명제에서 어떻게 바뀌는지 보기
원래 명제: p → q
역 : q → p
이 : ¬p → ¬q
대우 : ¬q → ¬p
원래 명제를 “비가 오면 길이 젖는다”라고 해보겠습니다. 역은 “길이 젖으면 비가 온다”입니다. 이는 “비가 오지 않으면 길이 젖지 않는다”입니다. 대우는 “길이 젖지 않았다면 비가 오지 않았다”입니다.
이 네 문장은 비슷해 보이지만 같은 의미가 아닙니다. 길이 젖었다고 해서 반드시 비가 왔다고 말할 수는 없습니다. 누군가 물을 뿌렸을 수도 있습니다. 그래서 원래 명제와 역은 일반적으로 동치가 아닙니다.
반면 원래 명제와 대우는 항상 동치입니다. “비가 오면 길이 젖는다”가 참이라면, 길이 젖지 않았다는 사실은 비가 오지 않았다는 결론과 연결됩니다. 대우는 앞뒤를 바꾸고 둘 다 부정한 형태라는 점을 같이 기억해야 합니다.
동치는 느낌이 아니라 모든 경우의 결과가 같은 것이다
p → q ≡ ¬q → ¬p
q → p ≡ ¬p → ¬q
논리적 동치는 “비슷하게 들린다”는 뜻이 아닙니다. 가능한 모든 참·거짓 조합에서 결과가 항상 같다는 뜻입니다. 그래서 동치 여부가 헷갈릴 때는 진리표를 만들어 마지막 열을 비교하면 됩니다.
시험에서는 두 종류의 질문이 나올 수 있습니다. 하나는 “다음 명제의 대우를 고르시오”처럼 형태를 묻는 문제입니다. 다른 하나는 “원래 명제와 논리적으로 동치인 것은?”처럼 의미를 묻는 문제입니다. 형태 문제는 모양을 바꾸는 규칙으로 풀고, 동치 문제는 마지막 열이 같은지로 판단합니다.
한정자는 전부와 하나 이상의 차이다
명제논리에서는 문장 전체를 하나의 단위로 봅니다. 하지만 수학 문제에는 변수 x가 들어간 문장이 자주 나옵니다. x > 5는 x 값이 정해지기 전까지 참인지 거짓인지 알 수 없습니다. 이때 값을 직접 넣거나, 한정자를 붙이면 판단할 수 있는 문장으로 바뀝니다.
한정자는 문장이 어떤 범위의 대상을 말하는지 정해주는 기호입니다. 대표적으로 전체한정자 ∀와 존재한정자 ∃가 있습니다. 기호는 어렵게 보이지만, 의미는 “전부”와 “하나 이상”의 차이입니다.
전체한정자와 존재한정자
∀x P(x) : 모든 x에 대하여 P(x)가 참이다.
∃x P(x) : P(x)를 참으로 만드는 x가 적어도 하나 존재한다.
“모든 학생이 과제를 제출했다”는 전체한정자에 가까운 문장입니다. 학생이 30명이라면 30명 모두 제출해야 참입니다. 한 명이라도 제출하지 않았다면 전체 문장은 거짓입니다.
“어떤 학생은 과제를 제출했다”는 존재한정자에 가까운 문장입니다. 모든 학생이 제출할 필요는 없습니다. 한 명만 제출해도 참입니다. 한정자 문제를 풀 때는 문장을 보자마자 “전부를 말하는가, 하나 이상을 말하는가”를 먼저 구분해야 합니다.
한정자의 부정에서 가장 자주 틀리는 부분
¬(∀x P(x)) ≡ ∃x ¬P(x)
¬(∃x P(x)) ≡ ∀x ¬P(x)
한정자의 부정은 초심자가 자주 틀리는 부분입니다. 전체의 부정은 존재로 바뀌고, 존재의 부정은 전체로 바뀝니다. 그리고 안쪽 문장도 함께 부정됩니다. 기호로만 외우면 헷갈리기 쉬우므로 문장으로 바꿔 읽어야 합니다.
“모든 학생이 과제를 제출했다”의 부정은 “모든 학생이 과제를 제출하지 않았다”가 아닙니다. 정확한 부정은 “과제를 제출하지 않은 학생이 적어도 한 명 있다”입니다. 전체가 참이 아니려면 예외가 하나라도 있으면 됩니다.
반대로 “어떤 학생은 과제를 제출했다”의 부정은 “과제를 제출한 학생이 한 명도 없다”입니다. 존재한다고 말한 문장을 부정하려면, 해당하는 대상이 전혀 없다고 말해야 합니다. 그래서 존재의 부정은 전체 부정으로 바뀝니다.
한정자 부정 문제에서는 두 가지를 같이 확인합니다. 바깥 기호가 ∀에서 ∃로, 또는 ∃에서 ∀로 바뀌었는지 봅니다. 그다음 안쪽 문장에도 부정이 붙었는지 확인합니다.
추론 문제는 결론보다 구조를 본다

추론은 이미 참이라고 주어진 전제에서 새로운 결론을 이끌어내는 과정입니다. 여기서 봐야 할 것은 결론이 현실적으로 맞아 보이는지가 아닙니다. 전제가 모두 참일 때 그 결론이 반드시 따라오는지입니다.
예를 들어 “비가 오면 길이 젖는다”와 “비가 온다”가 모두 참이라면 “길이 젖는다”는 결론을 낼 수 있습니다. 조건의 앞부분이 실제로 성립했고, 그 조건이 가리키는 결과가 따라오기 때문입니다.
대표적인 타당한 추론 규칙
긍정논법
p
p → q
∴ q
부정논법
p → q
¬q
∴ ¬p
가언삼단논법
p → q
q → r
∴ p → r
긍정논법은 조건명제와 그 조건의 앞부분이 주어졌을 때 뒷부분을 결론으로 내리는 방식입니다. 부정논법은 결과가 거짓이라는 사실을 보고 앞의 조건도 성립할 수 없다고 판단하는 방식입니다. 가언삼단논법은 조건명제가 이어질 때 중간 단계를 연결하는 구조입니다.
규칙 이름이 길어 보여도 구조는 단순합니다. p → q가 있고 p가 참이면 q를 말할 수 있습니다. p → q가 있고 q가 거짓이면 p도 거짓이어야 합니다. 이 두 구조를 먼저 잡고 이름을 붙이는 식으로 공부하면 암기 부담이 줄어듭니다.
그럴듯하지만 틀린 추론
역을 긍정하는 오류
p → q
q
∴ p
이를 부정하는 오류
p → q
¬p
∴ ¬q
“비가 오면 길이 젖는다”가 참이고 “길이 젖었다”가 참이라고 해서, 반드시 비가 왔다고 결론 내릴 수는 없습니다. 길이 젖은 이유가 비가 아닐 수도 있습니다. 이것이 역을 긍정하는 오류입니다.
또 “비가 오면 길이 젖는다”가 참이고 “비가 오지 않았다”가 참이라고 해서, 길이 젖지 않았다고 결론 내릴 수도 없습니다. 다른 이유로 길이 젖을 수 있기 때문입니다. 이것이 이를 부정하는 오류입니다.
추론 문제에서는 그럴듯한 문장에 속기 쉽습니다. 그래서 문장 내용을 잠깐 내려놓고 p, q 구조로 바꿔보는 연습이 필요합니다. 결론이 전제에서 반드시 따라오면 타당하고, 다른 가능성이 남아 있으면 타당하지 않습니다.
시험 전에 다시 볼 체크포인트
논리 단원은 처음부터 모든 공식을 한 번에 외우려고 하면 부담이 커집니다. 문제를 볼 때 확인할 순서를 정해두면 훨씬 덜 흔들립니다. 먼저 문장이 명제인지 확인하고, 명제라면 어떤 논리연산으로 연결되어 있는지 봅니다. 조건명제가 나오면 약속이 깨지는 경우가 있는지 확인하고, 한정자가 나오면 전부를 말하는지 하나 이상을 말하는지 구분합니다.
문제를 풀 때 확인할 순서
1. 참 또는 거짓이 확정되는 문장인가?
2. 변수 값이 정해졌는가, 한정자가 붙었는가?
3. ∧, ∨, ¬, →, ↔ 중 어떤 연산이 쓰였는가?
4. 조건명제라면 p가 참이고 q가 거짓인 경우를 찾았는가?
5. 역, 이, 대우 중 원래 명제와 동치인 것을 구분했는가?
6. 한정자의 부정에서 ∀와 ∃를 바꾸었는가?
7. 추론에서는 결론이 반드시 따라오는 구조인가?
특히 조건명제와 한정자 부정은 시험에서 자주 실수하는 부분입니다. p → q는 p가 참이고 q가 거짓일 때만 거짓입니다. ¬(∀x P(x))는 ∃x ¬P(x)로 바뀝니다. 이 두 가지는 기호만 외우기보다 문장으로 바꿔 읽어보면 이유가 더 잘 남습니다.
논리적 동치도 같은 기준으로 보면 됩니다. 동치는 두 표현이 비슷한 느낌이라는 뜻이 아니라, 가능한 모든 경우에서 진리값이 같다는 뜻입니다. 식 변형이 헷갈리면 진리표를 만들고 마지막 열을 비교하면 됩니다. 시간이 조금 걸려도 가장 확실한 확인 방법입니다.
이산수학 논리는 기호를 많이 아는 것보다 문장을 판단하는 기준이 더 오래 갑니다. 명제인지 확인하고, 조건명제의 거짓 조건을 찾고, 대우와 한정자 부정을 정확히 바꾸는 순서를 잡아두면 처음 접하는 논리 문제도 훨씬 차분하게 풀 수 있습니다.
“명제 논리 조건명제 기준: 참과 거짓이 헷갈릴 때 구분하기”에 대한 1개의 생각