1차 논리

testwiki
둘러보기로 이동 검색으로 이동

틀:위키데이터 속성 추적 1차 논리(一次論理, 틀:Llang)는 원소에만 한정 기호를 가할 수 있고, 술어에는 한정 기호를 가할 수 없는 술어 논리이다.[1] 명제 논리와 달리 변수에 대하여 한정 기호를 사용할 수 있으나, 2차 논리와 달리 변수들의 집합에 대하여 한정 기호를 사용할 수 없다. 1차 논리의 경우, (2차 논리와 달리) 괴델의 완전성 정리 · 콤팩트성 정리 · 뢰벤하임-스콜렘 정리와 같은 중요한 성질들이 성립한다.

이외에 1차 술어 논리, 1계 논리 등으로도 불린다. 간단히 술어 논리(predicate logic)라 하면 1차 논리를 가리키는 경우가 많다.

정의

1차 논리는 다음의 요소들로 이루어진다.

  • 특정 문자열들의 집합을 논리식의 집합이라고 한다. 논리식이 만족시켜야 하는 문법은 재귀적으로 정의된다.
  • 특정 논리식 집합으로부터 다른 논리식을 추론할 수 있다. 이에 대한 규칙은 힐베르트 체계 및 다른 여러 방식으로 명시될 수 있다.
  • 1차 논리 언어의 의미론이란 그 언어의 문장들에 대하여 참인지 여부를 일관적으로 부여하는 구조이다. 이는 보통 모형으로 주어진다.

문법

다음과 같은 데이터가 주어졌다고 하자. (여기서 자연수, 즉 음이 아닌 정수의 집합이다.)

  • 집합 I 및 함수 m:I, imi. I는 유한 집합이거나 무한 집합일 수 있다. 이를 연산(演算, 틀:Llang)의 집합이라고 한다.
  • 집합 J 및 함수 n:J, jnj. J는 유한 집합이거나 무한 집합일 수 있다. 이를 관계(關係, 틀:Llang)의 집합이라고 한다.

그렇다면, (I,m,J,n)으로 정의되는 1차 논리 언어 I,JΣ*는 특정한 문자열들의 집합이다. 이 문자열을 구성하는 문자 집합

Σ={𝗑n}n{,=,,¬}{𝖿i}iI{𝖱j}jJ

은 구체적으로 다음과 같다.

  • 가산 무한 개의 변수들 𝗑0,𝗑1,𝗑2,
    • 가산 무한 개의 변수들만으로 충분한 이유는 모든 논리식의 길이가 유한하기 때문이다. 무한 논리의 경우 더 많은 변수들을 추가할 수 있다.
  • 명제 논리의 연산 (함의) 및 ¬ (부정).
    • 그 대신 다른 기호들을 사용할 수도 있다. 예를 들어, 논리합 또는 논리곱 등이 있다.
  • 등호 =
  • 전칭 기호(全稱記號, 틀:Llang) .
    • 그 대신 존재 기호(存在記號, 틀:Llang) 를 사용할 수도 있다. 사실, 임의의 변수 x에 대하여 xϕ¬x¬ϕ이며 xϕ¬x¬ϕ이므로, 이들은 서로 동치이다.
  • iI에 대하여, 기호 𝖿i. 이를 mi연산이라고 하며, mi𝖿i항수(項數, 틀:Llang)라고 한다. 0항 연산을 상수(틀:Llang)라고 한다.
  • jJ에 대하여, 기호 𝖱j. 이를 nj관계라고 하며, nj𝖱j항수(項數, 틀:Llang)라고 한다. 1항 관계를 술어(틀:Llang)라고 한다. (항수가 0인 관계는 고전 명제 논리에서는 참 또는 거짓이 되므로 자명하다.)
  • 이 밖에도, 괄호 () 및 반점 , 등은 엄밀히 말해 불필요하지만, 가독성을 돕기 위해 첨가한다. 예를 들어, 𝖿i𝗑0𝗑2 대신 𝖿i(𝗑0,𝗑2)로 쓴다.

이 기호들 가운데, {𝖿i}iI{𝖱j}jJ를 제외한 기호들을 논리 기호(틀:Llang)라고 한다.

1차 논리의 (項, 틀:Llang)은 다음 문법을 따른다.

  • 모든 변수는 항이다.
  • 임의의 iImi개의 항 t1,t2,,tmi에 대하여, 𝖿i(t1,t2,,tmi)은 항이다. (상수의 경우, 즉 mi=0일 때, 보통 괄호 𝖿i()를 생략하여 𝖿i로 쓴다.)

1차 논리의 논리식(틀:Llang)은 다음 문법을 따르는, 위 기호들의 문자열이다.

  • 임의의 jJnj개의 항 t1,,tnj에 대하여, 𝖱j(t1,,tnj)은 논리식이다.
  • 두 항 t1, t2에 대하여, t1=t2는 논리식이다.
  • 논리식 ϕχ에 대하여, ¬ϕϕχ는 논리식이다.
  • 논리식 ϕ에 등장하는 변수 xi가 자유 변수라면, xϕ는 논리식이다.

여기서 논리식 ϕ 및 그 속에 등장하는 변수 x에 대하여, 만약 ϕx를 포함하지 않는다면, xϕ자유 변수(틀:Llang)라고 하며, 그렇지 않다면 xϕ종속 변수(틀:Llang)라고 한다.

자유 변수를 갖지 않는 (즉, 그 속에 등장하는 모든 변수가 종속 변수인) 논리식을 문장(文章, 틀:Llang)이라고 한다.

공리와 추론 규칙

1차 논리의 증명 이론은 다양한 방식으로 공리화할 수 있다. 예를 들어 다비트 힐베르트힐베르트 체계(틀:Llang)나, 게르하르트 겐첸시퀀트 계산(틀:Llang)이나 자연 연역(틀:Llang) 등을 사용할 수 있다.

1차 논리를 힐베르트 체계를 사용하여 공리화하면, 다음과 같다. 우선, 편의상 다음과 같은 기호만을 사용한다고 하자.

이 경우, 다음과 같은 공리 기본꼴(틀:Llang)들을 정의한다. 이 공리 기본꼴들에서 사용된 기호들은 다음과 같다.

  • ϕ, χ, ψ는 임의의 논리식을 뜻한다.
  • t, u는 임의의 항을 뜻한다.
  • x는 임의의 변수를 뜻한다.

즉, 공리 기본꼴에서 위의 기호들을 실제의 논리식·항·변수로 치환하면 공리들을 얻는다.

우선, 추론 규칙으로 전건 긍정의 형식

ϕχϕχ

일반화

ϕxϕ
추론 규칙 ㈁에서, xϕ의 자유 변수이어야 한다.

가 있다. 이 밖에, 다음과 같은 명제 논리의 공리 기본꼴들이 사용된다.

ϕ(χϕ)
(ϕ(χψ))((ϕχ)(ϕψ))
(¬ϕ¬χ)(χϕ)

1차 술어 논리의 경우, 다음과 같은 추가 공리 기본꼴들이 사용된다.

xϕϕ[t/x]
x(ϕχ)(xϕxχ)
x=x
(t=u)(ϕ[t/x]ϕ[u/x])
공리 기본꼴 ㈈에서, x논리식 ϕ의 자유 변수이어야 한다.

위 공리 기본꼴들에서, ϕ[t/x]논리식 ϕ에 등장하는 자유 변수 x를 항 t로 대체하여 얻는 논리식을 뜻한다. 예를 들어, 의 언어에서

¬(x=2)(xx=y))x=3[(1+1)/x]=¬((1+1)=2)(xx=y))1+1=3

이다. 이때, 논리식 내부의 ‘xx=y’에서 x가 치환되지 않는 이유는 이 부분에서는 x가 종속 변수이기 때문이다.

성질

의미론

틀:본문 1차 논리의 의미론은 보통 모형으로 주어진다. 주어진 연산 집합 I와 관계 집합 J을 갖는 1차 논리 언어 I,J가 주어졌다고 하자. 그렇다면, 이 언어의 모형은 집합 X 및 각 n항 연산 iI에 대하여 𝖿i해석 𝖿iX:XnX 및 각 nj항 관계 𝖱j에 대하여 그 해석 𝖱jX𝒫(Xnj)으로 구성된다. 이를 통해, I,J의 문장 ϕI,J의 모형 M에 대하여, ϕM에서 참인지 또는 거짓인지 여부를 정의할 수 있다. ϕM에서 참이라는 것은

Mϕ

로 표기한다.

보다 일반적으로, I,J의 논리식 ϕ가 자유 변수 x1,,xk를 갖는다고 하자. 그렇다면, I,J의 모형 M 및 그 속의 k개의 원소

(m1,,mk)Mk

가 주어졌을 때,ϕM에서 (mi)i=1k에 대하여 참인지 또는 거짓인지 여부를 정의할 수 있다. 이는

Mϕ[m1/x1,,mk/xk]

로 표기한다.

1차 논리의 경우 콤팩트성 정리뢰벤하임-스콜렘 정리가 성립한다.

증명 이론

비논리 기호를 포함하지 않는 1차 논리 문장들의 집합을 =0라고 하자. 그 가운데, 모든 모형에서 참인 문장들의 부분 집합

𝒯={ϕ=0:MModel(=):Mϕ}

을 생각하자. 또한, =0 속에서, 위의 힐베르트 체계를 통해 증명할 수 있는 문장들의 집합을

𝒯={ϕ=0:ϕ}

그렇다면, 다음이 성립한다.

  • 1차 논리의 건전성 정리에 따르면, 𝒯=𝒯이다. 즉, 명제가 증명 가능한지 여부는 명제가 참인지 여부와 동치이다.
  • 𝒯재귀 집합이다. (이는 레오폴트 뢰벤하임이 1915년에 증명하였다.)

보다 일반적으로, 임의의 가산 연산 집합 I와 관계 집합 J를 갖는 1차 논리 언어 I,J 속에서, 문장들의 집합을 I,J0I,J라고 하자. 그 가운데, 모든 모형에서 참인 문장들의 부분 집합

𝒯={ϕI,J0:MModel(I,J):Mϕ}

을 생각하자.

린드스트룀 정리

린드스트룀 정리(틀:Llang)에 따르면, 1차 술어 논리는 (가산) 콤팩트성 정리와 하향 뢰벤하임-스콜렘 정리를 만족시키는 가장 강력한 논리 체계이다.[2]

집합론

체르멜로-프렝켈 집합론의 언어는 하나의 2항 관계 만을 포함하며, 아무런 연산을 갖지 않는다. 집합론에서 사용되는 대부분의 명제들은 이 언어로 나타낼 수 있다.

체와 순서체

의 1차 논리 언어

I={+,,,0,1}
m+=m=2
m=1
m0=m1=0
J=

는 두 개의 이항 연산과 하나의 1항 연산 및 두 개의 상수(0항 연산)을 포함하며, 등호 밖의 관계를 갖지 않는다. 보통 𝖿+(a,b)a+b와 같이 표기한다.

순서체의 1차 논리 언어

I={+,,,0,1}
m+=m=2
m=1
m0=m1=0
J={}
n=2

는 두 개의 이항 연산과 하나의 1항 연산 및 두 개의 상수(0항 연산)을 포함하며, 하나의 2항 관계를 갖는다. 보통 𝖱(a,b)ab와 같이 표기한다.

범주

범주의 1차 논리 언어는 다음과 같이, 하나의 3항 관계

  • 𝖢(,,) (𝖢(x,y,z)xy=z임을 뜻함)

와 두 개의 1항 연산

으로 나타낼 수 있다. 변수들은 사상을 나타내며, 대상들은 항등 사상으로 나타내어진다. 편의상 다음과 같은 술어를 정의하자.

𝖮𝖻𝗃(x)dom(x)=codom(x)=x

이는 x가 항등 사상(즉, 대상)임을 뜻한다. 그렇다면, 범주의 1차 논리 이론은 다음과 같은 공리들로 구성된다.

  • dom(x)=xcodom(x)=x (항등 사상의 두 정의의 동치성)
  • 𝖮𝖻𝗃(domx) (사상의 정의역은 대상)
  • 𝖮𝖻𝗃(codomx) (사상의 공역은 대상)
  • 𝖢(x,y,z)domx=codomy (사상 합성의 존재의 필요 조건)
  • 𝖢(x,y,z)domy=domz (합성 사상의 정의역)
  • 𝖢(x,y,z)codomx=codomz (합성 사상의 공역)
  • 𝖢(x,y,a)𝖢(a,z,c)𝖢(y,z,b)𝖢(x,b,d)c=d (사상 합성의 결합 법칙)
  • 𝖮𝖻𝗃(x)𝖢(x,y,z)y=z (항등 사상과의 합성)
  • 𝖮𝖻𝗃(y)𝖢(x,y,z)x=z (항등 사상과의 합성)

이 이론의 모형의 개념은 작은 범주의 개념과 동치이다.

역사

고틀로프 프레게가 1879년에 출판된 《개념 표기법》[3]에서 사용한 논리는 (현대적 용어로는) 2차 논리였다.[4]틀:Rp[5]틀:Rp 이후 1885년에 찰스 샌더스 퍼스는 1차 논리와 2차 논리를 구분하였다.[6][4]틀:Rp[5]틀:Rp 퍼스는 1차 논리를 "1차 내포 논리"(틀:Llang)로, 2차 논리를 "2차 내포 논리"(틀:Llang)로 일컬었다.[5]틀:Rp

이후 에른스트 체르멜로2차 논리를 사용하여 집합론을 개발하였다. 토랄프 스콜렘은 1922년에 체르멜로의 집합론을 1차 논리로 재정의하였다.[7][5]틀:Rp[8]틀:Rp[9]틀:Rp 이는 오늘날 사용되는 체르멜로-프렝켈 집합론의 기반이 되었다.

제2차 세계 대전 이후 1차 논리는 (2차 논리유형 이론 등을 대신하여) 통상적으로 사용되는 수학의 기반이 되었다.[9]틀:Rp

같이 보기

각주

틀:각주

외부 링크