술어 논리 입문
← 논리 계산기로 돌아가기소개
술어 논리는 1차 논리 또는 술어 미적분학으로도 알려져 있으며, 객체, 그 속성 및 객체 간의 관계에 대해 추론할 수 있게 하는 명제 논리의 강력한 확장입니다. 명제 논리가 진술을 원자 단위로 취급하는 반면, 술어 논리는 진술 내부를 보고 내부 구조를 표현하는 능력을 제공합니다.
이러한 표현력은 술어 논리를 수학, 컴퓨터 과학, 인공지능, 언어학 및 형식 검증에 필수적으로 만듭니다. 수학적 구조 설명, 데이터베이스 쿼리, 소프트웨어 사양 및 지식 표현 시스템을 위한 논리적 기초를 제공합니다.
명제 논리의 한계
명제 논리는 완전한 진술에 대한 추론에는 유용하지만, 일반화, 객체의 속성 또는 관계를 표현해야 할 때 중대한 제한이 있습니다. 명제 논리에서 "소크라테스는 인간이다"와 "플라톤은 인간이다"와 같은 진술은 공통 구조를 공유함에도 불구하고 별개의 관련 없는 명제(P와 Q)로 표현되어야 합니다.
명제 논리는 "모든", "일부", "모든" 또는 "존재한다"를 포함하는 진술을 표현할 수 없습니다. "모든 인간은 죽는다"와 "소크라테스는 인간이다" 사이의 논리적 관계를 포착할 수 없으며, 이는 논리적으로 "소크라테스는 죽는다"를 함축해야 합니다. 여기서 술어 논리가 필수적이 됩니다.
제한의 예
"모든 인간은 죽는다"라는 진술을 고려해보세요. 명제 논리에서는 이를 단일 명제 H로만 표현할 수 있습니다. 그러나 이것은 "모든 인간"과 "죽는다"는 속성과 관련된 내부 구조를 포착하지 못합니다. 술어 논리는 이를 ∀x (Human(x) → Mortal(x))로 더 정확하게 표현할 수 있게 합니다.
술어
술어는 하나 이상의 객체에 귀속될 수 있는 속성이나 관계입니다. 술어를 객체를 입력으로 받아 진리값(참 또는 거짓)을 출력으로 반환하는 함수로 생각하세요. 술어는 객체의 속성과 객체 간의 관계를 표현할 수 있게 합니다.
술어는 대문자 뒤에 괄호 안의 하나 이상의 인수를 표기합니다. 예를 들어, P(x)는 "x는 속성 P를 갖는다"를 나타내고, R(x, y)는 "x는 관계 R에 의해 y와 관련된다"를 나타냅니다.
술어의 예
- Human(x) - "x는 인간이다" (단항 술어, 하나의 인수)
- GreaterThan(x, y) - "x는 y보다 크다" (이항 술어, 두 개의 인수)
- Between(x, y, z) - "x는 y와 z 사이에 있다" (삼항 술어, 세 개의 인수)
- Prime(n) - "n은 소수이다" (단항 술어)
한정사
한정사는 논의 영역에서 술어가 성립하는 표본의 수량을 지정하는 특수 기호입니다. 두 가지 기본 한정사는:
전칭 한정사 (∀)
술어가 논의 영역의 모든 요소에 대해 성립함을 표현합니다. 고려 중인 우주의 모든 객체에 대해 주장합니다.
표기법: ∀x P(x) ("모든 x에 대해 P(x)가 성립한다"로 읽음)
예: ∀x (Human(x) → Mortal(x)) - "모든 x에 대해, x가 인간이면 x는 죽는다"
존재 한정사 (∃)
술어가 성립하는 요소가 정의역에 적어도 하나 존재함을 표현합니다. 특정 속성을 가진 무언가의 존재를 주장합니다.
표기법: ∃x P(x) ("P(x)인 x가 존재한다"로 읽음)
예: ∃x Prime(x) - "소수인 수가 존재한다"
술어 논리의 구조
술어 논리 표현에는 여러 주요 구성 요소가 있습니다:
항
상수('소크라테스'와 같은 특정 객체), 변수(x, y와 같은 자리 표시자), 함수(항을 생성하는 연산).
공식
잘 구성된 공식(WFF)은 술어, 한정사, 변수 및 논리 연결사를 결합한 구문적으로 올바른 표현입니다.
구속 변수와 자유 변수
한정사에 의해 구속된 변수(예: ∀x의 x) 대 양화되지 않은 자유 변수.
예
술어 논리의 표현력을 보여주는 몇 가지 예는 다음과 같습니다:
수학적 진술
∀x ∀y ((x > 0 ∧ y > 0) → (x + y > 0)) - "모든 양수 x와 y에 대해 그들의 합은 양수이다"
관계
∀x (Parent(x, y) → ∃z Loves(x, z)) - "모든 x에 대해, x가 y의 부모라면, x가 사랑하는 z가 존재한다"
복잡한 진술
∃x (Student(x) ∧ ∀y (Course(y) → Enrolled(x, y))) - "모든 과목에 등록한 학생이 존재한다"
한정사를 포함한 논리적 동치
명제 논리에 논리적 동치가 있듯이, 술어 논리에도 한정사를 포함하는 중요한 동치가 있습니다:
- 전칭의 부정: ¬(∀x P(x)) ≡ ∃x ¬P(x) - "모든 x가 속성 P를 갖는 것은 아니다"는 "속성 P를 갖지 않는 x가 존재한다"와 동치
- 존재의 부정: ¬(∃x P(x)) ≡ ∀x ¬P(x) - "속성 P를 가진 x가 존재하지 않는다"는 "모든 x에 대해 x는 속성 P를 갖지 않는다"와 동치
- 분배 법칙: ∀x (P(x) ∧ Q(x)) ≡ (∀x P(x)) ∧ (∀x Q(x)) - 전칭 한정사는 논리곱에 분배된다
응용
술어 논리는 컴퓨터 과학과 수학의 많은 영역에서 기본이 됩니다:
데이터베이스
SQL과 같은 관계형 데이터베이스 쿼리 언어는 술어 논리 원리를 기반으로 하며, 쿼리는 데이터베이스 관계에 대한 술어를 표현합니다.
형식 검증
소프트웨어 및 하드웨어 시스템의 형식 검증은 정확성 속성을 지정하고 증명하기 위해 술어 논리에 크게 의존합니다.
인공지능
술어 논리는 AI 시스템에서 지식 표현을 가능하게 하여, 기계가 자동 계획 및 전문가 시스템에서 객체, 그 속성 및 관계에 대해 추론할 수 있게 합니다.
수학
거의 모든 수학적 진술과 증명이 술어 논리를 사용하며, 숫자의 속성 정의부터 수학적 구조에 관한 정리 표현까지 이릅니다.
명제 논리와의 관계
술어 논리는 명제 논리 위에 구축되어 술어와 한정사를 추가합니다. 명제 논리의 모든 논리 연결사(¬, ∧, ∨, →, ↔)는 술어 논리에서도 유효하며 동일한 방식으로 작동합니다. 차이점은 원자 명제를 결합하는 대신 술어와 양화된 표현을 결합한다는 것입니다.
모든 명제 논리 진술은 술어나 한정사가 사용되지 않은 술어 논리의 특수한 경우로 볼 수 있습니다. 반대로, 일반적인 진술이 아닌 특정 인스턴스를 다룰 때 술어 논리는 명제 논리로 축소됩니다.
명제 계산기 사용
이 계산기는 명제 논리와 불 대수에 중점을 두고 있지만, 명제 논리와 술어 논리 사이의 관계를 이해하면 두 시스템 모두에 대한 이해를 깊게 할 수 있습니다. 여기서 작업하는 연산자와 진리표는 더 표현력 있는 술어 논리의 기초를 형성합니다.
명제 논리용 논리 계산기 시도하기 →