Skip to Content
독학사독학사 2단계이산수학03. 술어논리와 정량자, 논리적 추론 기초

이번 문서의 목표: 이 문서를 다 읽으면 술어와 정량자를 이용해 문장을 기호로 옮기고, 정량자가 붙은 명제의 부정을 정확히 만들며, 전건긍정·전건부정 등 기본 추론 규칙으로 논증이 타당한지 판정할 수 있다.

왜 명제논리만으로는 부족한가

03편의 명제논리는 pp, qq처럼 이미 완성된 문장 단위로만 다룬다. 그런데 “모든 사람은 죽는다”, “어떤 정수는 소수다”처럼 범위가 있는 대상에 대한 주장은 pp, qq 하나로 표현할 수 없다. “모든”과 “어떤”이라는 표현이 명제 안에 숨어 있기 때문이다. 이 표현을 정확히 기호로 다루는 것이 이 편에서 배우는 술어논리(predicate logic)다.

쉽게 말하면: 명제논리가 완성된 문장 하나하나를 다룬다면, 술어논리는 “빈칸이 있는 문장”에 “모든” 또는 “어떤”을 붙여 완성된 명제로 만드는 방법을 다룬다.

술어와 개체 영역

술어(predicate)는 변수를 포함해서 그 변수 값이 정해지기 전까지는 참·거짓을 판정할 수 없는 문장이다. “xx는 짝수다”를 P(x)P(x)로 표기하면, xx에 어떤 값을 넣느냐에 따라 참·거짓이 달라진다. P(4)P(4)는 참이고, P(5)P(5)는 거짓이다.

술어가 다루는 변수 xx가 가질 수 있는 값의 범위를 개체 영역(domain of discourse, 논의 영역)이라 부른다. 예를 들어 xx가 정수 전체를 범위로 한다고 정하면, P(x)P(x): “xx는 짝수다”라는 술어는 정수 전체 중 짝수인지 아닌지를 판정하는 규칙이 된다. 개체 영역을 명시하지 않으면 정량자를 붙인 명제의 참·거짓이 애매해지므로, 문제에서 항상 개체 영역이 무엇인지 먼저 확인해야 한다.

변수가 두 개 이상인 술어도 가능하다. Q(x,y)Q(x, y): “xxyy보다 크다”처럼 변수를 여러 개 받는 술어는 각 변수의 개체 영역을 각각 정해 주어야 한다.

전칭 정량자와 존재 정량자

술어 앞에 정량자(quantifier)를 붙이면 비로소 참·거짓이 정해지는 완전한 명제가 된다.

전칭 정량자(universal quantifier) xP(x)\forall x\, P(x)는 “개체 영역의 모든 xx에 대해 P(x)P(x)가 참이다”라는 뜻이다. 개체 영역이 유한집합 {1,2,3}\{1, 2, 3\}이라면, xP(x)\forall x\, P(x)P(1)P(2)P(3)P(1) \land P(2) \land P(3)과 같은 뜻이 되어, 개체 영역의 원소 개수만큼 논리곱으로 연결한 것과 같다.

존재 정량자(existential quantifier) xP(x)\exists x\, P(x)는 “개체 영역에 P(x)P(x)가 참이 되는 xx가 적어도 하나 존재한다”라는 뜻이다. 같은 개체 영역 {1,2,3}\{1, 2, 3\}에서 xP(x)\exists x\, P(x)P(1)P(2)P(3)P(1) \lor P(2) \lor P(3)과 같은 뜻이 되어, 개체 영역의 원소 개수만큼 논리합으로 연결한 것과 같다.

정량자 명제개체 영역이 유한집합 {a1,,an}\{a_1, \dots, a_n\}일 때참이 되는 조건
xP(x)\forall x\, P(x)P(a1)P(a2)P(an)P(a_1) \land P(a_2) \land \cdots \land P(a_n)모든 aia_i에서 P(ai)P(a_i)가 참
xP(x)\exists x\, P(x)P(a1)P(a2)P(an)P(a_1) \lor P(a_2) \lor \cdots \lor P(a_n)적어도 하나의 aia_i에서 P(ai)P(a_i)가 참

쉽게 말하면: \forall는 “예외 없이 전부 통과해야 참”, \exists는 “하나라도 통과하면 참”이라는 검사 방식이다.

예를 들어 개체 영역을 {2,4,6}\{2, 4, 6\}으로 두고 P(x)P(x): “xx는 짝수다”라 하면, 22, 44, 66 모두 짝수이므로 xP(x)\forall x\, P(x)는 참이다. 반면 개체 영역을 {2,3,4}\{2, 3, 4\}로 바꾸면 33이 짝수가 아니므로 xP(x)\forall x\, P(x)는 거짓이 된다. 이렇게 개체 영역이 무엇인지에 따라 같은 술어라도 전칭 명제의 참·거짓이 완전히 달라진다.

정량자의 부정 — 드모르간 법칙의 확장판

03편에서 배운 드모르간 법칙 ¬(pq)¬p¬q\neg(p \land q) \equiv \neg p \lor \neg q을 개체 영역 전체로 확장하면, 정량자의 부정 규칙을 자연스럽게 이해할 수 있다.

¬xP(x)x¬P(x)\neg \forall x\, P(x) \equiv \exists x\, \neg P(x) ¬xP(x)x¬P(x)\neg \exists x\, P(x) \equiv \forall x\, \neg P(x)

이 두 규칙을 말로 풀면 다음과 같다. “모든 xx에 대해 P(x)P(x)가 성립한다”의 부정은 “P(x)P(x)가 성립하지 않는 xx가 적어도 하나 존재한다”이다. 반대로 “P(x)P(x)가 성립하는 xx가 존재한다”의 부정은 “모든 xx에 대해 P(x)P(x)가 성립하지 않는다”이다. 부정을 씌우면 전칭과 존재 정량자가 서로 바뀐다는 점이 드모르간 법칙과 정확히 같은 구조다.

이를 유한집합 {a1,a2}\{a_1, a_2\}로 구체적으로 검산해 보자. xP(x)\forall x\, P(x)P(a1)P(a2)P(a_1) \land P(a_2)와 같으므로, 이 전체를 부정하면 드모르간 법칙에 의해 다음과 같다.

¬(P(a1)P(a2))¬P(a1)¬P(a2)\neg(P(a_1) \land P(a_2)) \equiv \neg P(a_1) \lor \neg P(a_2)

그런데 ¬P(a1)¬P(a2)\neg P(a_1) \lor \neg P(a_2)는 “PP가 거짓인 원소가 적어도 하나 존재한다”는 뜻이므로, 정확히 x¬P(x)\exists x\, \neg P(x)와 같은 의미다. 이렇게 정량자의 부정 규칙은 유한한 경우 드모르간 법칙을 그대로 적용한 결과임을 확인할 수 있다.

정량자 부정 예제 — 문장으로 직접 확인

개체 영역을 “이 반의 모든 학생”으로 두고, P(x)P(x): “xx는 숙제를 했다”라 하자.

  • xP(x)\forall x\, P(x): “이 반의 모든 학생이 숙제를 했다.”
  • ¬xP(x)\neg \forall x\, P(x): “이 반의 모든 학생이 숙제를 한 것은 아니다” = “숙제를 하지 않은 학생이 적어도 한 명 존재한다” = x¬P(x)\exists x\, \neg P(x)

여기서 흔히 저지르는 실수는 ¬xP(x)\neg \forall x\, P(x)를 “모든 학생이 숙제를 하지 않았다”(x¬P(x)\forall x\, \neg P(x))로 잘못 바꾸는 것이다. “전부 다 한 것은 아니다”와 “전부 다 안 했다”는 전혀 다른 뜻이며, 앞의 것만 옳은 부정이다.

정량자 순서를 바꾸면 뜻이 달라진다

정량자가 두 개 이상 겹칠 때, 같은 종류의 정량자끼리는 순서를 바꿔도 뜻이 같지만, 서로 다른 종류의 정량자는 순서를 바꾸면 뜻이 달라진다. 이는 독학사에서 변별력이 큰 함정 유형이다.

개체 영역을 정수 전체로 두고 Q(x,y)Q(x, y): "x+y=0x + y = 0"이라 하자.

xyQ(x,y)\forall x\, \exists y\, Q(x, y)

이는 “모든 정수 xx에 대해, x+y=0x + y = 0을 만족하는 yy가 존재한다”는 뜻이다. 이는 참이다. 어떤 정수 xx를 고르든 y=xy = -x로 두면 항상 x+y=0x + y = 0이 성립하기 때문이다.

yxQ(x,y)\exists y\, \forall x\, Q(x, y)

이는 ”yy 하나를 고정하면, 모든 정수 xx에 대해 x+y=0x + y = 0이 성립한다”는 뜻이다. 이는 거짓이다. yy를 어떤 값으로 고정하더라도, xx가 그 값과 다른 정수라면 x+y=0x + y = 0이 성립하지 않기 때문이다(예를 들어 y=3y = 3으로 고정하면 x=3x = 3일 때만 성립하고 x=5x = 5일 때는 성립하지 않는다).

이렇게 정량자 순서만 바꿨을 뿐인데 참·거짓이 뒤바뀌었다. xy\forall x\, \exists y는 “xx마다 그에 맞는 yy를 새로 골라도 된다”는 뜻이고, yx\exists y\, \forall x는 ”yy 하나로 모든 xx를 동시에 만족시켜야 한다”는 훨씬 강한 조건이다.

쉽게 말하면: “모든 학생에게 각자 맞는 선생님이 있다”(xy\forall x\, \exists y)와 “모든 학생을 동시에 맡는 선생님 한 명이 있다”(yx\exists y\, \forall x)는 전혀 다른 주장이다.

논리적 추론과 타당성

논증(argument)은 몇 개의 전제(premise)로부터 하나의 결론(conclusion)을 이끌어내는 구조다. 논증이 타당하다(valid)는 것은 “모든 전제가 참이라고 가정했을 때, 결론도 반드시 참이 되는” 논리 구조를 가졌다는 뜻이다. 여기서 중요한 것은 타당성이 전제의 실제 내용이 사실인지와는 무관하다는 점이다. 전제가 실제로는 거짓이더라도, 그 전제들이 참이라고 가정했을 때 결론이 논리적으로 반드시 따라 나오면 그 논증은 타당하다.

자주 쓰이는 기본 추론 규칙은 다음과 같다.

추론 규칙 이름형태
전건긍정(modus ponens)pqp \rightarrow q, pp, 따라서 qqpp이면 qq인데 pp가 참이므로 qq도 참이다
후건부정(modus tollens)pqp \rightarrow q, ¬q\neg q, 따라서 ¬p\neg ppp이면 qq인데 qq가 거짓이므로 pp도 거짓이어야 한다
가언삼단논법(hypothetical syllogism)pqp \rightarrow q, qrq \rightarrow r, 따라서 prp \rightarrow r조건명제 두 개를 연쇄로 이어 붙인다
선언삼단논법(disjunctive syllogism)pqp \lor q, ¬p\neg p, 따라서 qq둘 중 하나인데 하나가 아니므로 나머지가 참이다

전건긍정은 이름 그대로 “전건(가정) pp를 긍정(참으로 확인)해서 결론 qq를 얻는다”는 뜻이다. 예를 들어 “비가 오면 땅이 젖는다”(pqp \rightarrow q)와 “비가 온다”(pp)가 모두 참이면, “땅이 젖는다”(qq)라는 결론이 타당하게 따라 나온다.

후건부정은 “후건(결론) qq를 부정해서 전건 pp의 부정을 얻는다”는 뜻이며, 이는 03편에서 배운 대우가 원래 명제와 등가라는 성질에 정확히 근거한다. “비가 오면 땅이 젖는다”인데 “땅이 젖지 않았다”(¬q\neg q)면, 대우(¬q¬p\neg q \rightarrow \neg p)에 의해 “비가 오지 않았다”(¬p\neg p)가 타당하게 따라 나온다.

타당한 논증과 부당한 논증 구분하기

추론 규칙과 겉모습이 비슷하지만 타당하지 않은 추론도 있다. 대표적으로 다음 두 가지 오류를 구분해야 한다.

오류 이름형태왜 부당한가
후건긍정의 오류(fallacy of affirming the consequent)pqp \rightarrow q, qq, 따라서 ppqq가 참이라고 해서 반드시 pp 때문에 qq가 참이 된 것은 아니다
전건부정의 오류(fallacy of denying the antecedent)pqp \rightarrow q, ¬p\neg p, 따라서 ¬q\neg qpp가 거짓이라고 해서 qq도 반드시 거짓이 되는 것은 아니다

“비가 오면 땅이 젖는다”(pqp \rightarrow q)를 예로 들면, “땅이 젖었다”(qq)고 해서 반드시 “비가 왔다”(pp)고 결론지을 수 없다. 스프링클러 때문에 땅이 젖었을 수도 있기 때문이다. 이것이 후건긍정의 오류다. 이 두 오류는 진리표로도 확인할 수 있다. pqp \rightarrow q, qq가 모두 참이지만 pp가 거짓인 조합(표에서 pp가 F, qq가 T인 행)이 실제로 존재하므로, 전제가 모두 참이어도 결론이 반드시 참이 되지는 않는다. 즉 타당하지 않다.

논증의 타당성을 진리표로 판정하기

논증 ”pqp \rightarrow q, ¬p\neg p, 따라서 ¬q\neg q“(전건부정의 오류)가 실제로 부당한지 진리표로 확인해 보자.

ppqqpqp \rightarrow q¬p\neg p¬q\neg q
TTTFF
TFFFT
FTTTF
FFTTT

논증이 타당하려면, 전제인 pqp \rightarrow q¬p\neg p모두 참인 모든 행에서 결론 ¬q\neg q도 반드시 참이어야 한다. 표에서 pqp \rightarrow q가 참이고 ¬p\neg p도 참인 행은 세 번째 행(pp=F, qq=T)과 네 번째 행(pp=F, qq=F) 두 개다. 그런데 세 번째 행에서는 ¬q\neg q가 거짓이다. 즉 전제가 모두 참인데 결론이 거짓인 경우가 존재하므로, 이 논증은 타당하지 않다.

이 절차를 일반화하면 다음과 같다.

  1. 논증에 등장하는 모든 명제변수의 진리표를 만든다.
  2. 전제로 쓰인 식들의 값을 모두 계산한다.
  3. 전제가 모두 참이 되는 행만 골라낸다.
  4. 그 행들에서 결론의 값이 모두 참이면 타당, 하나라도 거짓인 행이 있으면 부당하다.

자주 틀리는 점

  • ¬xP(x)\neg \forall x\, P(x)x¬P(x)\forall x\, \neg P(x)로 잘못 바꾸는 실수: 옳은 부정은 x¬P(x)\exists x\, \neg P(x)다. “전부 다 그런 것은 아니다”와 “전부 다 그렇지 않다”는 다른 뜻이다.
  • xy\forall x\, \exists yyx\exists y\, \forall x를 같은 뜻으로 취급하는 실수: 정량자의 종류가 다를 때 순서를 바꾸면 참·거짓이 달라질 수 있다. 순서를 바꿀 수 있는 것은 같은 종류의 정량자끼리뿐이다.
  • 후건긍정·전건부정의 오류를 타당한 추론으로 착각하는 실수: 이 두 형태는 전건긍정·후건부정과 겉모양이 비슷하지만 진리표로 확인하면 명백히 부당하다.
  • 논증의 타당성을 전제의 실제 사실 여부로 판단하는 실수: 타당성은 “전제가 참이라고 가정했을 때 결론이 반드시 참인가”를 따지는 논리 구조의 문제이지, 전제가 실제 세계에서 사실인지와는 별개다.

핵심 정리

  • 술어 P(x)P(x)는 변수가 정해지기 전까지 참·거짓이 정해지지 않으며, 개체 영역을 함께 정해야 정량자를 붙인 명제의 참·거짓이 정해진다.
  • 전칭 정량자 xP(x)\forall x\, P(x)는 개체 영역 전체를 논리곱으로, 존재 정량자 xP(x)\exists x\, P(x)는 논리합으로 묶은 것과 같다.
  • 정량자의 부정은 ¬xP(x)x¬P(x)\neg \forall x\, P(x) \equiv \exists x\, \neg P(x), ¬xP(x)x¬P(x)\neg \exists x\, P(x) \equiv \forall x\, \neg P(x)로, 부정을 씌우면 정량자 종류가 서로 바뀐다.
  • 서로 다른 종류의 정량자가 겹칠 때는 순서를 바꾸면 뜻이 달라질 수 있다(xy\forall x\, \exists yyx\exists y\, \forall x는 다르다).
  • 전건긍정·후건부정·가언삼단논법·선언삼단논법은 타당한 추론 규칙이고, 후건긍정의 오류·전건부정의 오류는 겉모습만 비슷한 부당한 추론이다. 타당성은 진리표로 전제가 모두 참인 행에서 결론도 참인지 확인해 판정한다.

마무리 복습

문제 14지선다
개체 영역이 정수 전체이고 P(x): 'x는 짝수다'일 때, forall x P(x)에 대한 설명으로 옳은 것은?
문제 24지선다
neg forall x P(x)와 논리적으로 등가인 것은?
문제 34지선다
개체 영역이 정수 전체이고 Q(x, y): 'x + y = 0'일 때, forall x exists y Q(x, y)와 exists y forall x Q(x, y)에 대한 설명으로 옳은 것은?
문제 44지선다
전건긍정(modus ponens) 추론 규칙의 형태로 옳은 것은?
문제 54지선다
다음 논증 중 부당한 추론(오류)에 해당하는 것은?
문제 64지선다
논증의 타당성(validity)에 대한 설명으로 옳은 것은?

참고 자료

Last updated on