소박한 집합론

**소박한 집합론**(Naive set theory)은 수학기초론의 여러 집합에 관련된 이론 중 하나이다. 형식적 논리로 정의된 공리적 집합론과 다르게, 소박한 집합론은 자연 언어로 정의되었다. 집합은 수학에서 매우 중요한 위치를 담당하고 있다. 왜냐하면 현대 수학 안에서, 수, 관계, 함수, 등과 같은 수학적인 것들이 집합을 사용하여 정의되기 때문이다.
# 집합의 원소와 동일성에 대한 정의
소박한 집합론에서는 **집합**이 적절히 정의된 대상들의 모임으로 정의되어있다. 이런 대상들은 그 집합의 **원소**라 한다. 이런 대상은 수나 사람들이나 혹은 다른 집합과 같은 것이 될 수 있다. 예를 들면 4는 짝수인 정수의 집합에 속한다. 분명히, 짝수의 집합의 크기는 무한히 크다. (집합의 크기가 유한해야 한다는 제한은 없다) *x*가 집합*A*의 원소라는 것은 *x*가 *A*에 **속한다**고도 하며, 기호로는 *x* ∈ *A*로도 표기할 수 있다. (∈라는 기호는 그리스 문자 엡실론 "ε"과는 다르며, 페아노가 1888년에 처음으로 쓰기 시작하였다.) 기호 ∉는 *x* ∉ *A*과 같은 형식으로 쓰이며, "x가 A의 원소가 아니다"라는 것을 의미한다. 두 집합 *A*와 *B*가 **같다**는 것은 그 두 집합의 원소가 모두 같다는 것을 의미한다. 좀더 자세히 말하면, *A*의 모든 원소가 *B*에 속하고 *B*의 모든 원소가 *A*에 속한다는 것을 의미한다. (외연공리 참조) 그러므로 모든 집합은 그 집합의 원소로 완전히 결정되며, 더 이상의 수식은 불필요하다. 예를 들어, 2, 3, 5를 원소로 가지는 집합은 6 이하의 소수를 원소로 가지는 집합과 같다. 집합 *A*와 *B*가 같으면, 보통 *A* = *B*라고 표기한다. 주로 Ø, 간혹 \\{\\}로 표기하는 **공집합**은 원소를 가지고 있지 않는 집합이다. 집합은 원소로서 완전히 결정되기 때문에 공집합은 하나만 존재한다. (공집합 공리 참조) 공집합에 원소가 없지만 다른 집합의 원소가 될 수 있다. 그러므로 Ø ≠ {Ø}인데 이것은 전자는 원소가 없으며 후자는 원소가 하나 있기 때문이다.
# 집합의 표현
집합을 가장 간단하게 표현할 수 있는 방법은 그 집합에 속하는 원소를 모두 나열하는 것이다. 즉 집합 {1,2}에 속하는 원소는 1과 2뿐이다. (나열 공리 참조) 이 때, 다음을 따른다. * 원소의 순서는 집합의 내용과 무관하다. 예를 들면, {1,2} = {2,1}. * 원소의 반복은 집합의 내용과 무관하다. 예를 들면, {1,2,2} = {1,1,1,2} = {1,2}. (바로 전 단락에서 이것에 대해서 이야기하였다.) 이 표기법을 원소나열법이라고 부른다. 이런 표기법은 {사람}이 모든 사람의 집합을 뜻하는 것으로 헷갈릴 수는 있지만 정확히는 이 집합은 '사람'이라는 단어만 포함하는 집합이다. 극단적인(그러나 정확한) 예로는 {}가 있으며, 공집합을 의미한다. 혹은 {*x* : *P*(*x*)} 아니면 {*x* | *P*(*x*)} 과 같이 쓸 수도 있는데, 이때에 이 집합은 *P*(*x*)가 참이 되게 하는 것을 모두 포함한다. 예를 들면, 집합 {*x* : *x* 는 실수}는 실수의 집합이고, {*x* : *x* 는 국가} 는 모든 국가의 집합이다. 이 표기법은 조건제시법으로 불린다. 조건제시법의 여러 변형들은 다음과 같다. * {*x* ∈ *A* : *P*(*x*)}는 모든 *x*에 대해 집합 *A*에 속하면서 조건 P를 만족한다는 것을 포함한다는 것을 의미한다. 예를 들면, 정수의 집합 *Z*에 대해서 {*x* ∈ **Z** : *x* 은 짝수}와 같이 쓰면 이 집합은 짝수인 정수의 집합이 된다. (내역의 공리 참조) * {*F*(*x*) : *x* ∈ *A*}는 집합 A에 속하는 원소의 *F*(*x*)에 대한 함숫값을 원소로 갖는 집합을 말한다. 예를 들면 {2*x* : *x* ∈ **Z**}는 다시 짝수인 정수의 집합이 된다. (치환 공리 참조)) * {*F*(*x*) : *P*(*x*)}는 가장 일반적인 표기법이다. 예를 들면, {*x*'의 주인 : *x*는 애완동물}은 애완동물의 주인을 나타내는 집합이다.
# 부분집합
두 집합 *A*와 *B*에 대해서 *A*가 *B*의 **부분집합**이라는 것은 *A*의 모든 원소가 *B*의 원소라는 것을 말한다. 모든 집합은 자기자신의 부분집합이다. *A*가 *B*의 **부분집합**이라면 *A*가 *B*에 포함된다고도 한다. *B*와 같지 않은 부분집합은 *B*의 진부분집합이다. 기호로는 *A* ⊆ *B*는 *A*가 'B*의 부분집합임을 뜻하고, *B* ⊇ *A*도 *A*가 'B*의 부분집합임을 뜻한다. 일부 저자들은 "⊂"과 "⊃"를 부분집합 기호로 사용하지만, 다른 저자들은 진부분집합 기호로 사용한다. 명료히 하기 위해서, "\subsetneq"와 "\supsetneq"을 진부분집합기호로 사용한다. 예를 들어, **R**을 실수의 집합으로, **Z**를 정수의 집합으로, *O*를 홀수인 정수의 집합으로, *P*를 대한민국의 역대 대통령의 집합으로 하자. 그러면 *O*는 **Z**의 부분집합이 되고, **Z**는 **R**의 부분집합이 되며, 그러므로 *O*는 **R**의 부분집합이 된다. 모든 집합이 이렇게 비교가 가능한 것은 아니다. 예를 들어, **R**은 *P*의 부분집합이 아니며 *P*도 **R**의 부분집합이 아니다. 여기서 두 집합이 같다는 것에 대한 정의가 바로 나오는데, 두 집합 *A*와 *B*에 대해서, *A* ⊆ *B*이고 *B* ⊆ *A*일때만 *A* = *B*이다. 정확히 말하자면 이것은 두 집합이 같다는 것에 대한 다른 정의이다. 두 집합이 같다는 것을 증명할 때, 이 두가지가 성립함을 보이면 된다. 공집합은 모든 집합의 부분집합이다. (공집합에는 아무런 원소가 없으므로 가정을 만족하는 것 자체가 없기 때문에 공집합은 모든 집합의 부분집합이 된다.) 집합 *A*에 대해서 *A*의 **멱집합**은 *A*의 모든 부분집합의 집합을 말하며 2^A 혹은 P(A)로 표기한다. 집합 *A*가 *n*개의 원소를 가지고 있다면, P(A)는 2^n개의 원소를 가지게 된다.
# 전체집합과 여집합
많은 곳에서 집합들을 전체집합의 부분집합으로 보는 경우가 많다. 간단히 말해서, 실수에 대해서 탐구하고 있다면, **R**을 전체집합으로 삼으면 된다. 전체집합은 표준 집합 이론에서 사용되지는 않지만(모순 단락 참조), 어떤 비표준 집합 이론에서는 사용된다. 전체집합 **U**와 그 부분집합 *A*에 대해서, *A*의 **여집합**을 *A*C := {*x* ∈ **U** : *x* ∉ *A*}로 정의할 수 있다. 다른 말로 *A*C는 *A*의 원소가 아닌 **U**의 원소를 가지는 집합으로 정의된다. 그러므로 집합 **R**, **Z**, *O*를 각각 실수, 정수, 홀수의 집합으로 정의하면, **Z**를 전체집합이라고 봤을 때, *OC*는 모든 짝수인 정수의 집합이 되고, **R**을 전체집합이라고 보면, *OC*는 정수가 아닌 실수와 짝수인 정수의 집합이 된다.
# 집합의 연산
두 집합 *A*와 *B*에 대해서 두 집합의 **합집합**은 *A*나 *B*의 원소를 원소로 갖는 집합이다.(합집합 공리 참조). 이 집합을 *A* ∪ *B*로 표기한다. 두 집합 *A*와 *B*에 대해서 두 집합의 **교집합**은 *A*의 원소이면서 *B*의 원소인 것을 원소로 갖는 집합이다. 이 집합을 *A* ∩ *B*로 표기한다. 마지막으로, *A* **차집합** *B*는 *A*의 원소이면서 *B*의 원소는 아닌 것으로 이루어진 집합을 말한다. A \setminus B혹은 *A* − *B*로 표기한다. 기호로 표현하면 :*A* ∪ B := {*x* : (*x* ∈ *A*) ∨ (*x* ∈ *B*)}; :*A* ∩ *B* := {*x* : (*x* ∈ *A*) ∧ (*x* ∈ *B*)} = {*x* ∈ *A* : *x* ∈ *B*} = {*x* ∈ *B* : *x* ∈ *A*}; :*A* - *B* := {*x* : (*x* ∈ *A*) ∧ (*x* ∉ *B*) } = {*x* ∈ *A* : *x* ∉ *B*}. 차집합의 정의에서 *A*가 *B*의 부분집합이 아니어도 성립한다. 이것이 전 단락의 여집합과는 다른 점이다. 예를 들어, 집합 *A*을 왼손잡이인 사람의 집합으로, 집합 *B*를 직업이 선생님인 사람의 집합으로 정의하면, *A* ∩ *B*는 왼손잡이인 선생님의 집합이 되며, *A* ∪ *B*는 선생님이거나 왼손잡이인 사람의 집합이 된다. 그리고 *A* - *B*는 선생님이 아닌 왼손잡이인 사람의 집합이 되고, *B* - *A*는 왼손잡이가 아닌 선생님이 된다. 집합 *E*를 모든 사람의 집합, *F*를 10000년 이상 산 생물의 집합으로 정의하면 *E* ∩ *F*는 10000년 이상 산 사람은 존재하지 않으므로 공집합이 된다.
# 순서쌍과 곱집합
**순서쌍**은 *첫째*의 요소와 *둘째*의 요소가 구별이 가는 두 개의 어떤 것을 모은 것이다. 두 순서쌍이 같기 위해서는 이 첫째 요소와 둘째 요소가 같아야 한다. 보통 순서쌍은 **첫째 요소**가 *a*이고 **둘째 요소**가 *b*일 때 (*a*, *b*)와 같이 쓰고, 집합으로는 *a*}, {*a*, *b*와 같이 정의할 수 있다. 그러면 두 순서쌍 (*a*,*b*)와 (*c*,*d*)가 *a* = *c* ∧ *b* = *d*일 때에만 같다. ((*a*, *b*)와 같은 표기법은 실수축에서 열린구간을 의미할 수도 있으므로 쓸 때 명확히 해야한다. 혹은 열린구간을 ]*a*, *b*[와 같이 써 순서쌍 (*a*, *b*)와 구분하기도 한다.) 집합 *A*와 *B*에 대해서 *A*, *B*의 **곱집합**은 :*A* × *B* = {(*a*,*b*) : *a* ∈ *A* ∧ *b* ∈ *B*}. 로 정의된다. 즉 *A* × *B*는 첫째 요소가 A의 원소이고 둘째 요소가 B의 원소인 순써쌍의 집합으로 생각할 수 있다. 이 정의를 *A* × *B* × *C*와 같이 세개의 집합에 대해서 확장할 수 있고, 그 이상의 자연수개의 집합에 대해서 확장할 수 있으며, 무한개의 집합에 대해서 확장이 가능하다. 곱집합은 데카르트가 해석기하학을 연구하면서 처음 사용하였다. **R**은 실수의 집합을 의미하는데, **R**2 = **R** × **R**은 평면을 나타내고 **R**3 = **R** × **R** × **R**는 3차원 유클리드 공간을 나타낸다.
# 중요한 집합
여기서 *a*, *b*, *c*는 자연수이고, r, s는 실수이다. # 자연수는 셀 때 사용한다. 흑자체 대문자 **N** (\mathbb{N})이 자연수의 집합을 의미한다. # 정수는 *x* + *a* = *b*와 같은 방정식의 근으로 나온다. 흑자체 대문자 **Z** (\mathbb{Z})가 정수의 집합을 의미한다. (독일어의 수를 뜻하는 *Zahlen*의 이니셜) # 유리수는 *a* + *bx* = *c*와 같은 방정식의 근으로 나온다. 흑자체 대문자 **Q** (\mathbb{Q})가 유리수의 집합을 의미한다. # 대수적 수는 계수가 정수인 다항방정식의 근으로 나온다. 흑자체 대문자 **A** (\mathbb{A}) 혹은 윗줄이 펴진 **Q** (\overline{\mathbb{Q)가 대수적 수의 집합을 의미한다. # 실수는 실수축에 있는 모든 수를 말한다. 흑자체 대문자 **R** (\mathbb{R})이 실수의 집합을 의미한다. # 복소수는 *r* + *s* i꼴(단, r과 s는 실수이고 i=\sqrt{-1})로 나타내지는 수를 말한다. 흑자체 대문자 **C** (\mathbb{C})가 복소수의 집합을 의미한다.
# 모순
다음과 같은 집합을 정의해 보자. :*Z* = {*x* : *x*는 *x*를 원소로 가지지 않는 집합} *Z*가 *Z*를 원소로 가진다면 *Z*의 정의에 의해 *Z*는 자신을 원소로 가지지 말아야 하기 때문에 *Z*가 *Z*의 원소가 아니여야 한다. 그런데 *Z*가 *Z*의 원소가 아니라면 정의에 따라 *Z*가 *Z*를 원소로 가져야 한다. 그러므로 이 집합 *Z*는 분명히 모순을 일으킨다. 이 모순을 러셀의 역설이라고 부른다. 사실, 표준 공리적 집합론에서는 모든 집합의 집합은 없다. 혹은 다른 공리적 집합론을 모든 집합의 집합을 허용하고 러셀의 역설을 회피하는 W. V. 콰인의 새 기초와 같은 방법도 있다.