1차 논리

'''1차 논리'''(一次論理, )는 원소에만 한정 기호를 가할 수 있고, 술어에는 한정 기호를 가할 수 없는 술어 논리이다. 명제 논리와 달리 변수에 대하여 한정 기호를 사용할 수 있으나, 2차 논리와 달리 변수들의 집합에 대하여 한정 기호를 사용할 수 없다. 1차 논리의 경우, (2차 논리와 달리) 괴델의 완전성 정리 · 콤팩트성 정리 · 뢰벤하임-스콜렘 정리와 같은 중요한 성질들이 성립한다.
이외에 '''1차 술어 논리''', '''1계 논리''' 등으로도 불린다. 간단히 '''술어 논리'''(predicate logic)라 하면 1차 논리를 가리키는 경우가 많다.
1차 논리는 다음의 요소들로 이루어진다.
* 특정 문자열들의 집합을 '''논리식'''의 집합이라고 한다. 논리식이 만족시켜야 하는 문법은 재귀적으로 정의된다.
* 특정 논리식 집합으로부터 다른 논리식을 '''추론'''할 수 있다. 이에 대한 규칙은 힐베르트 체계 및 다른 여러 방식으로 명시될 수 있다.
* 1차 논리 언어의 '''의미론'''이란 그 언어의 문장들에 대하여 참인지 여부를 일관적으로 부여하는 구조이다. 이는 보통 모형으로 주어진다.
=== 문법 ===
다음과 같은 데이터가 주어졌다고 하자. (여기서 은 자연수, 즉 음이 아닌 정수의 집합이다.)
* 집합  및 함수 , . 는 유한 집합이거나 무한 집합일 수 있다. 이를 '''연산'''(演算, )의 집합이라고 한다.
* 집합  및 함수 , . 는 유한 집합이거나 무한 집합일 수 있다. 이를 '''관계'''(關係, )의 집합이라고 한다.
그렇다면, 으로 정의되는 '''1차 논리 언어''' 는 특정한 문자열들의 집합이다. 이 문자열을 구성하는 문자 집합
:
은 구체적으로 다음과 같다.
* 가산 무한 개의 변수들 
** 가산 무한 개의 변수들만으로 충분한 이유는 모든 논리식의 길이가 유한하기 때문이다. 무한 논리의 경우 더 많은 변수들을 추가할 수 있다.
* 명제 논리의 연산  (함의) 및  (부정).
** 그 대신 다른 기호들을 사용할 수도 있다. 예를 들어, 논리합  또는 논리곱  등이 있다.
* 등호 
* '''전칭 기호'''(全稱記號, ) .
** 그 대신 '''존재 기호'''(存在記號, ) 를 사용할 수도 있다. 사실, 임의의 변수 에 대하여 이며 이므로, 이들은 서로 동치이다.
* 각 에 대하여, 기호 . 이를 항 '''연산'''이라고 하며, 를 의 '''항수'''(項數, )라고 한다. 0항 연산을 '''상수'''()라고 한다.
* 각 에 대하여, 기호 . 이를 항 '''관계'''라고 하며, 를 의 '''항수'''(項數, )라고 한다. 1항 관계를 '''술어'''()라고 한다.  (항수가 0인 관계는 고전 명제 논리에서는 참 또는 거짓이 되므로 자명하다.)
* 이 밖에도, 괄호  및 반점  등은 엄밀히 말해 불필요하지만, 가독성을 돕기 위해 첨가한다. 예를 들어,  대신 로 쓴다.
이 기호들 가운데,  및 를 제외한 기호들을 '''논리 기호'''()라고 한다.
1차 논리의 '''항'''(項, )은 다음 문법을 따른다.
* 모든 변수는 항이다.
* 임의의 와 개의 항 에 대하여, 은 항이다.  (상수의 경우, 즉 일 때, 보통 괄호 를 생략하여 로 쓴다.)
1차 논리의 '''논리식'''()은 다음 문법을 따르는, 위 기호들의 문자열이다.
* 임의의 와 개의 항 에 대하여, 은 논리식이다.
* 두 항 , 에 대하여, 는 논리식이다.
* 논리식 와 에 대하여, 와 는 논리식이다.
* 논리식 에 등장하는 변수 가 자유 변수라면, 는 논리식이다.
여기서 논리식  및 그 속에 등장하는 변수 에 대하여, 만약 가 를 포함하지 않는다면, 를 의 '''자유 변수'''()라고 하며, 그렇지 않다면 를 의 '''종속 변수'''()라고 한다.
자유 변수를 갖지 않는 (즉, 그 속에 등장하는 모든 변수가 종속 변수인) 논리식을 '''문장'''(文章, )이라고 한다.
=== 공리와 추론 규칙 ===
1차 논리의 증명 이론은 다양한 방식으로 공리화할 수 있다. 예를 들어 다비트 힐베르트의 힐베르트 체계()나, 게르하르트 겐첸의 시퀀트 계산()이나 자연 연역() 등을 사용할 수 있다.
1차 논리를 힐베르트 체계를 사용하여 공리화하면, 다음과 같다. 우선, 편의상 다음과 같은 기호만을 사용한다고 하자.
* 명제 논리에서, 오직 함의 와 부정 만을 사용한다고 하자. (논리합이나 논리곱과 같은 다른 명제 논리 기호는 이 둘로 나타낼 수 있다.)
* 술어 논리에서, 오직 전칭 기호 만을 사용한다고 하자. (존재 기호 는 만으로 나타낼 수 있다.)
이 경우, 다음과 같은 공리 기본꼴()들을 정의한다. 이 공리 기본꼴들에서 사용된 기호들은 다음과 같다.
* , , 는 임의의 논리식을 뜻한다.
* , 는 임의의 항을 뜻한다.
* 는 임의의 변수를 뜻한다.
즉, 공리 기본꼴에서 위의 기호들을 실제의 논리식·항·변수로 치환하면 공리들을 얻는다.
우선, 추론 규칙으로 전건 긍정의 형식
:㈀ 
과 일반화
:㈁ 
::추론 규칙 ㈁에서, 는 의 자유 변수이어야 한다.
가 있다. 이 밖에, 다음과 같은 명제 논리의 공리 기본꼴들이 사용된다.
:㈂ 
:㈃ 
:㈄ 
1차 술어 논리의 경우, 다음과 같은 추가 공리 기본꼴들이 사용된다.
:㈅ 
:㈆ 
:㈇ 
:㈈ 
::공리 기본꼴 ㈈에서, 는 논리식 의 자유 변수이어야 한다.
위 공리 기본꼴들에서, 는 논리식 에 등장하는 자유 변수 를 항 로 대체하여 얻는 논리식을 뜻한다. 예를 들어, 체의 언어에서
:
이다. 이때, 논리식 내부의 ‘’에서 가 치환되지 않는 이유는 이 부분에서는 가 종속 변수이기 때문이다.
=== 의미론 ===
1차 논리의 의미론은 보통 모형으로 주어진다. 주어진 연산 집합 와 관계 집합 을 갖는 1차 논리 언어 가 주어졌다고 하자. 그렇다면, 이 언어의 '''모형'''은 집합  및 각 항 연산 에 대하여 의 '''해석'''  및 각 항 관계 에 대하여 그 '''해석''' 으로 구성된다. 이를 통해, 의 문장 와 의 모형 에 대하여, 가 에서 참인지 또는 거짓인지 여부를 정의할 수 있다. 가 에서 참이라는 것은
:
로 표기한다.
보다 일반적으로, 의 논리식 가 자유 변수 를 갖는다고 하자. 그렇다면, 의 모형  및 그 속의 개의 원소
:
가 주어졌을 때,가 에서 에 대하여 참인지 또는 거짓인지 여부를 정의할 수 있다. 이는
:
로 표기한다.
1차 논리의 경우 '''콤팩트성 정리'''와 '''뢰벤하임-스콜렘 정리'''가 성립한다.
=== 증명 이론 ===
비논리 기호를 포함하지 않는 1차 논리 문장들의 집합을 라고 하자. 그 가운데, 모든 모형에서 참인 문장들의 부분 집합
:
을 생각하자. 또한,  속에서, 위의 힐베르트 체계를 통해 증명할 수 있는 문장들의 집합을
:
그렇다면, 다음이 성립한다.
* 1차 논리의 건전성 정리에 따르면, 이다. 즉, 명제가 증명 가능한지 여부는 명제가 참인지 여부와 동치이다.
* 는 재귀 집합이다. (이는 레오폴트 뢰벤하임이 1915년에 증명하였다.)
보다 일반적으로, 임의의 가산 연산 집합 와 관계 집합 를 갖는 1차 논리 언어  속에서, 문장들의 집합을 라고 하자. 그 가운데, 모든 모형에서 참인 문장들의 부분 집합
:
을 생각하자.
* 괴델의 완전성 정리에 따르면, 는 재귀 열거 집합이다.
* 만약 에 (등호를 제외한) 2항 이상의 항수를 갖는 관계가 존재한다면, 는 재귀 집합이 아니다.
* 만약 이며, 의 모든 관계가 술어(1항 관계) 또는 등호라면, 는 재귀 집합이다. 이러한 언어를 '''1항 1차 언어'''()라고 한다.
=== 린드스트룀 정리 ===
'''린드스트룀 정리'''()에 따르면, 1차 술어 논리는 (가산) 콤팩트성 정리와 하향 뢰벤하임-스콜렘 정리를 만족시키는 가장 강력한 논리 체계이다.
=== 집합론 ===
체르멜로-프렝켈 집합론의 언어는 하나의 2항 관계  만을 포함하며, 아무런 연산을 갖지 않는다. 집합론에서 사용되는 대부분의 명제들은 이 언어로 나타낼 수 있다.
=== 체와 순서체 ===
체의 1차 논리 언어
:
:
:
:
:
는 두 개의 이항 연산과 하나의 1항 연산 및 두 개의 상수(0항 연산)을 포함하며, 등호 밖의 관계를 갖지 않는다. 보통
는 와 같이 표기한다.
순서체의 1차 논리 언어
:
:
:
:
:
:
는 두 개의 이항 연산과 하나의 1항 연산 및 두 개의 상수(0항 연산)을 포함하며, 하나의 2항 관계를 갖는다. 보통
는 와 같이 표기한다.
=== 범주 ===
범주의 1차 논리 언어는 다음과 같이, 하나의 3항 관계
*  (는 임을 뜻함)
와 두 개의 1항 연산
*  (사상의 정의역)
*  (사상의 공역)
으로 나타낼 수 있다. 변수들은 사상을 나타내며, 대상들은 항등 사상으로 나타내어진다. 편의상 다음과 같은 술어를 정의하자.
:
이는 가 항등 사상(즉, 대상)임을 뜻한다. 그렇다면, 범주의 1차 논리 이론은 다음과 같은 공리들로 구성된다.
*  (항등 사상의 두 정의의 동치성)
*  (사상의 정의역은 대상)
*  (사상의 공역은 대상)
*  (사상 합성의 존재의 필요 조건)
*  (합성 사상의 정의역)
*  (합성 사상의 공역)
*  (사상 합성의 결합 법칙)
*  (항등 사상과의 합성)
*  (항등 사상과의 합성)
이 이론의 모형의 개념은 '''작은 범주'''의 개념과 동치이다.
고틀로프 프레게가 1879년에 출판된 《개념 표기법》에서 사용한 논리는 (현대적 용어로는) 2차 논리였다. 이후 1885년에 찰스 샌더스 퍼스는 1차 논리와 2차 논리를 구분하였다. 퍼스는 1차 논리를 "1차 내포 논리"()로, 2차 논리를 "2차 내포 논리"()로 일컬었다.
이후 에른스트 체르멜로는 2차 논리를 사용하여 집합론을 개발하였다. 토랄프 스콜렘은 1922년에 체르멜로의 집합론을 1차 논리로 재정의하였다. 이는 오늘날 사용되는 체르멜로-프렝켈 집합론의 기반이 되었다.
제2차 세계 대전 이후 1차 논리는 (2차 논리나 유형 이론 등을 대신하여) 통상적으로 사용되는 수학의 기반이 되었다.
* 
* 
* 
* 
* 
* 
* 
* 
* 
* 
분류:술어 논리