문서:바나흐-타르스키 역설

문서의 이전 버전(r1)을 보고 있습니다.

역사 raw
대문 랜덤 문서 최근 토론


1. 개요2. 진술3. 간략한 증명
3.1. 첫 번째 구3.2. 두 번째 구3.3. 결론
4. 의의


1. 개요

바나흐-타르스키 역설에 대한 설명 영상. 증명은 11분 13초부터이다.
Banach-Tarski paradox

폴란드의 수학자 스테판 바나흐와 알프레드 타르스키가 1924년 발표한 정리. 이 정리의 증명에는 선택공리의 도움이 필요하다.

2. 진술

[정리] 스테판 바나흐·알프레드 타르스키(1924)

3차원 공간의 한 개를 유한 개의 조각으로 잘라서, 적절한 회전 이동·평행 이동만을 이용하여 동일한 크기의 구 2개로 만들 수 있다.
즉, 이 명제의 진술대로면 금으로 된 공 1개를 유한 조각으로 잘라 2개의 금으로 된 공을 만들 수 있다. 단순 회전·평행 이동만의 결과로 위 정리를 유도해 낼 수 있다는 것이 일반적인 직관에 상당히 반하기 때문에, 완전하게 증명이 된 지금도 역설이라는 이름으로 알려져 있다.

3. 간략한 증명

만약 구를 분할하는 조각들이 부피 [math(V_i(1 le i le n))]를 가진다면, 위 정리의 진술로부터 [math(displaystyle sum_{i=1}^n V_i = 2 sum_{i=1}^n V_i)]가 얻어지므로 모순이다. 따라서, 위 정리의 증명(집합의 구성)에는 부피를 가지지 않는 집합이 필연적으로 필요하다. 실제로 프랙탈 이론을 이용하면 해당 집합을 구성해 낼 수 있다.

증명에 앞서, 각 [math(xi = arccos dfrac{1}{3} fallingdotseq 70.53 degree)]를 미리 정의해 놓자. [math(xi)]가 어떤 특수한 의미를 갖는 각은 아니며, 육십분법 기준으로 무리수인 각도이면 충분하다. 또한 주어진 명제의 구가 단위구 [math(B^3 = { x in mathbb{R}^3 rvert lVert x rVert le 1 })]라고 가정해도 무방하다. 이제 3차원 단위구의 표면 [math(S^2 = { x in mathbb{R}^3 rvert lVert x rVert = 1 })] 위의 함수 [math(L, R, U, D: S^2 rightarrow S^2)]를

[math(displaystyle L(rho cos theta, rho sin theta, z) = (rho cos (theta - xi), rho sin (theta - xi), z) \ R(rho cos theta, rho sin theta, z) = (rho cos (theta + xi), rho sin (theta + xi), z) \ U(rho cos theta, y, rho sin theta) = (rho cos (theta + xi), y, rho sin (theta + xi)) \ D(rho cos theta, y, rho sin theta) = (rho cos (theta - xi), y, rho sin (theta - xi)))]

라고 정의하자. 여기서 [math(S^2)] 위의 각 점은 적절한 축을 가지는 원통형 좌표계로 표현되어 있다. [math((0 le rho le 1, 0 le theta < 2 pi, y^2 = z^2 = 1 - rho^2))] 위 함수들은 복잡해 보이지만, 함수 [math(L, R, U, D)]는 구면 위의 각 점을 각도 [math(xi)]만큼 왼쪽(Left), 오른쪽(Right), 위쪽(Up), 아래쪽(Down)으로 돌리는 것을 수식으로 적은 것에 불과하다. 또한 [math(L)]과 [math(R)], [math(U)]와 [math(D)]는 서로 역함수 관계임을 알 수 있다. 이제 [math(S^2)] 위의 두 점 [math(x, y in S^2)]에 relation [math(sim)]을

[math(x sim y Leftrightarrow )] 유한 개의 함수들 [math(f_i in {L, R, U, D, text{id}_{S^2} }(1 le i le n))]가 존재해 [math(x = (f_1 circ f_2 circ cdots circ f_n)(y))]이 성립

라고 정의하자. 위 관계 [math(sim)]은 동치관계인 것은 쉽게 확인할 수 있다. 그러므로 동치류 [math(S^2 / sim)]가 잘 정의되며, 각 equivalence class의 대표원(representative)들을 하나씩 뽑아 집합 [math(X)]를 만들 수 있다.[1] 그런데, [math(L, R, U, D)]를 [math(y)]축, [math(z)]축을 기준으로 한 회전으로 정의했기 때문에 [math(S^2)]의 네 점 [math((0, pm 1, 0))], [math((0, 0, pm 1))]은 따로 다룰 필요가 있다. 즉, [math(X)]의 부분집합

[math(hat{B} = X - { x in X rvert x sim (0, pm 1, 0), (0, 0, pm 1) })]

와 [math(S^2)]의 부분집합

[math(hat{P} = { x in S^2 rvert x sim (0, pm 1, 0), (0, 0, pm 1) })]

을 따로 정의하자. 여기서 [math(hat{B})]와 [math(hat{P})]는 Base point, Pole의 머릿글자를 따 온 것이다. 이제 [math(S^2)]의 점 중 [math(hat{B})]와 [math(hat{P})] 어디로도 분류되지 않은 점들은, [math(hat{B})]의 적절한 한 원소의 equivalence class에 속한다. 즉, 각 [math(z in S^2 - hat{B} - hat{P})]는 적당한 [math(o in hat{B})]에 대하여 [math(z = (f_1 circ f_2 circ cdots circ f_n)(o))]라 쓸 수 있다. (여기서, [math(f_i in {L, R, U, D, text{id}_{S^2} }(1 le i le n))].) 그런데 이렇게 쓴 표현은 유일하지 않은데, 실제로

[math(Lo = LRLo = DURLL text{id} UDo)]

등이 성립하기 때문이다.(편의상 함수의 합성을 붙여 썼다.) 하지만 관계식 [math(LR = RL = DU = UD = text{id})]를 이용하면 위 수식의 표현들은 모두 [math(Lo)]로 축약하여 쓸 수 있음이 분명하다. 조금 생각해 보면 하나의 표현을 축약하는 방법은 유일함을 알 수 있다. 한편, 축약형이 다른 [math(S^2 - hat{B} - hat{P})]의 원소는 전부 서로 다른 원소인데, 예를 들어 [math(LUo neq ULo)], [math(RDLUo neq o)]이다. 이는 [math(xi)]가 무리수 회전이라는 사실로부터 유도 가능하며, 본 증명에서는 자세히 언급하지 않도록 한다. 아무튼 필요한 도구는 이것이 전부로, 각 [math(o in hat{B})]의 축약된 equivalence class를 다음과 같이 생각할 수 있다.

[math({ o })] 자기 자신
[math(Lo, LLo, LLLo, cdots LUo, LULo, cdots LDo, cdots)] 등 마지막 회전이 [math(L)]인 점들
[math(Ro, RRo, RRRo, cdots RUo, RURo, cdots RDo, cdots)] 등 마지막 회전이 [math(R)]인 점들
[math(Uo, UUo, UUUo, cdots ULo, ULUo, cdots URo, cdots)] 등 마지막 회전이 [math(U)]인 점들
[math(Do, DDo, DDDo, cdots DLo, DLDo, cdots DRo, cdots)] 등 마지막 회전이 [math(D)]인 점들

이 집합은 정확히 [math(o in hat{B})]의 equivalence class의 분할이 된다. 2번째, 3번째, 4번째, 5번째 집합을 각각 [math(hat{B}_L (o))], [math(hat{B}_R (o))], [math(hat{B}_U (o))], [math(hat{B}_D (o))]라고 하고, 모든 [math(o in hat{B})]에 대한 합집합

[math(hat{B}_L = displaystyle bigcup _{o in hat{B}} hat{B}_L (o))], [math(hat{B}_R = displaystyle bigcup _{o in hat{B}} hat{B}_R (o))],

[math(hat{B}_U = displaystyle bigcup _{o in hat{B}} hat{B}_U (o))], [math(hat{B}_D = displaystyle bigcup _{o in hat{B}} hat{B}_D (o))]

까지 정의하자. 그러면 [math(hat{B})], [math(hat{P})], [math(hat{B}_L)], [math(hat{B}_R)], [math(hat{B}_U)], [math(hat{B}_D)] 6개의 집합은 [math(S^2)]의 분할이 된다. 마지막으로, 단위구 [math(B^3)]를 다음과 같이 분할하자.

[math(O = { (0, 0, 0) })]
[math(B = left{ lVert xrVert neq 0 biggl| biggr. dfrac{x}{lVert x rVert} in hat{B} right })], [math(P = left{ lVert xrVert neq 0 biggl| biggr. dfrac{x}{lVert x rVert} in hat{P} right})],
[math(B_L = left{ lVert xrVert neq 0 biggl| biggr. dfrac{x}{lVert x rVert} in hat{B}_L right})], [math(B_R = left{ lVert xrVert neq 0 biggl| biggr. dfrac{x}{lVert x rVert} in hat{B}_R right})],
[math(B_U = left{ lVert xrVert neq 0 biggl| biggr. dfrac{x}{lVert x rVert} in hat{B}_U right})], [math(B_D = left{ lVert xrVert neq 0 biggl| biggr. dfrac{x}{lVert x rVert} in hat{B}_D right})]

이제 모든 준비가 되었다. 이 7개의 구 조각들을 적절히 자르고, 평행, 회전이동을 적용하여 구 2개를 만들 수 있다(!)

3.1. 첫 번째 구

우리가 나눈 조각들은 [math(B_L)] 등 원점으로부터 뻗어나가는 선분들의 다발이지만, 구성의 편의를 위해 [math(hat{B}_L)]처럼 표면의 점들만 생각하기로 한다. 물론 이 구성 방법은 [math(B_L)]에도 잘 적용된다. [math(o in hat{B})]를 하나 고정하고 [math(hat{B}_L (o))]를 [math(z)]축 기준, 오른쪽 방향으로 [math(xi)]만큼 회전하자. 즉 [math(hat{B}_L (o))]의 원소에 모두 함수 [math(R)]을 적용하는 것과 같다. [math(RL = text{id})] 이므로,

[math(R(hat{B}_L (o)) = R({ Lo, LLo, LLLo, cdots LUo, LULo, cdots LDo, LDLo, cdots }) \ = { o, Lo, LLo, cdots Uo, ULo, cdots Do, DLo, cdots } = { o } cup hat{B}_L (o) cup hat{B}_U (o) cup hat{B}_D (o))]

이며 이것을 [math(o in hat{B})]에 대해 전부 합치고, hat을 전부 떼어 버리면

[math(R(B_L) = B cup B_L cup B_U cup B_D)]

이다. 즉, [math(B_L)]을 오른쪽으로 돌렸을 뿐인데 자신보다 더 큰 집합이 생긴 것이다(!) 어찌 되었건 [math(B_L)]에서 [math(B cup B_L cup B_U cup B_D)]을 얻었으므로 여기에 조각 [math(O)], [math(P)], [math(B_R)]를 합쳐서 첫 번째 구를 만든다.

3.2. 두 번째 구

이제 두 번째 구를 만들기 위한 재료는 [math(B)], [math(B_U)], [math(B_D)]가 남았다. 첫 번째 구를 만들 때와 마찬가지로, [math(hat{B}_U (o))]를 [math(y)]축 기준, 아래 방향으로 [math(xi)]만큼 회전하자. 즉 [math(D(hat{B}_U (o)))]를 계산해 본다.

[math(D(hat{B}_U (o)) = D({ Uo, UUo, UUUo, cdots ULo, ULUo, cdots URo, URUo, cdots }) \ = { o, Uo, UUo, cdots Lo, LUo, cdots Ro, RUo, cdots } = { o } cup hat{B}_U (o) cup hat{B}_L (o) cup hat{B}_R (o))]

그런데 이번에는 첫 번째 구와 다르게 약간의 문제가 생기는데, 1) 이미 가지고 있기 때문에 더 필요하지 않은 [math(B)]가 중복으로 생기며, 2) 1)이 해결되었다 해도 두 번째 구를 만들기에는 [math(O)], [math(P)]만큼 모자라다. 하지만 이런 문제도 무한의 특성을 이용하여 회피할 수가 있다.

첫 번째, 현재 문제가 되는 것은 [math(D(Uo) = o)]이므로 [math(hat{B}_U (o))] 중 점 [math(Uo)]만 따로 분리하고 나머지 부분만 회전시킨다. 그러면 [math(D(UUo) = Uo)]이므로 역시 [math(Uo)] 점이 겹치는 것을 알 수 있다. 그렇기 때문에 [math(U_o = { Uo, UUo, UUUo, cdots })]를 모두 분리해야만 한다. 즉, [math(hat{B}_U (o))]를 [math(U_o cup (hat{B}_U (o) - U_o))]로 이해하고, 두 번째 조각만 아래로 돌린다.([math(D)]를 적용한다.) 그러면,

[math(D(hat{B}_U (o) - U_o) = D({ UULo, UURo, UUULo, cdots ULo, ULUo, cdots URo, URUo, cdots }) \ = { ULo, URo, UULo, cdots Lo, LUo, cdots Ro, RUo, cdots } = (hat{B}_U (o) - U_o) cup hat{B}_L (o) cup hat{B}_R (o))]

을 얻는다. 이제 이것을 [math(o in hat{B})]에 대해 전부 합치고, hat을 전부 떼어 버리고, 해당 조각에 [math(B)], [math(U_o)], [math(B_D)]를 합치면 [math(B^3 - O - P)]를 얻는다.

그 다음, 이제 두 번째 구의 부족분 [math(O)], [math(P)]를 채워야 한다. 그런데 [math(P)]는 4개의 극점으로부터 회전 변환으로 얻어지는 점들의 모임이므로, 최대 가산개(countable)이다. 한편 구의 표면 [math(S^2)]은 비가산집합(uncountable set)이므로, [math(P)]의 어떤 점도 지나지 않는 구의 중심축을 잡을 수 있다. 구를 적절히 회전하여, 해당 축이 [math(x)]축이 되도록 잡자. 그런데 빠진 점 [math(P)]가 가산개 이므로, 집합 [math(P times P)]도 가산집합이다. 따라서

[math({ n theta_{(p_1 , p_2)} rvert n in mathbb{N})], 도형 [math(B^3 - O - P)]를 [math(x)]축 기준으로 각 [math(theta_{(p_1 , p_2)})]만큼 회전시킬 때 점 [math(p_1 in P)]와 [math(p_2 in P)]가 일치[math(})]

도 가산집합. 한편 [math(mathbb{R})]은 비가산집합이므로, 위 집합에 속하지 않는 각 [math(zeta)]를 고를 수 있다. 이제 도형 [math(B^3 - O - P)]를 다시 두 조각으로 나눈다.

[math(A_1 = { (x, rho cos (theta - n zeta) , rho sin (theta - n zeta)) rvert n in mathbb{N}, (x, rho cos theta , rho sin theta) in P })]
[math(A_2 = B^3 - O - P - A_1)]

풀어서 설명하면, [math(A_1)]은 [math(x)]축을 기준으로 [math(n zeta)]만큼 회전했을 때 [math(P)]의 원소가 되는 점들의 모임이라고 할 수 있다. 그런데 [math(zeta)]의 정의상 [math((x, rho cos theta , rho sin theta) in P)]를 하나 고정할 때, [math((x, rho cos (theta - n zeta) , rho sin (theta - n zeta)) not in P forall n in mathbb{N})]이다. 따라서 [math(A_1)]을 [math(x)]축을 기준으로 [math(zeta)]만큼 회전하면,

[math((x, rho cos (theta - n zeta) , rho sin (theta - n zeta)) mapsto (x, rho cos (theta - (n - 1) zeta) , rho sin (theta - (n - 1) zeta)) forall n in mathbb{N})]

이다. 함수 [math(n rightarrow n - 1)]은 [math(mathbb{N})]을 [math(mathbb{N} cup { 0 })]으로 보내므로, 위 회전에 의해 [math(A_1)]은 [math(A_1 cup P)]로 옮겨진다. 여기에 조각 [math(A_2)]를 합쳐서 [math(A_1 cup A_2 cup P = B^3 - O)]를 얻는다.

마지막으로, 이제 단 한 점 [math(O)]만이 남았는데 이는 2-1의 아이디어와 거의 똑같은 방법으로 countable개만의 점을 회전시켜 채울 수 있다. 일반적으로, 단위구에 countable개만의 점이 빠진 것은 적절한 회전으로 전부 메울 수 있다.

3.3. 결론

우리는 3차원 단위 구 [math(B^3)]을 7개의 조각 [math(O)], [math(P)], [math(B)], [math(B_L)], [math(B_R)], [math(B_U)], [math(B_D)]로 나누었고, [math(O)], [math(P)], [math(B_L)], [math(B_R)]을 적절히 조합하여 첫 번째 구를 만들었다. 또 나머지 조각 중 [math(B_U)]를 두 조각

[math(B_o = left{ lVert xrVert neq 0 biggl| biggr. dfrac{x}{lVert x rVert} in displaystyle bigcup _{o in hat{B}} U_o right})], [math(B_{oc} = B_U - B_o)]

으로 나눈 후 남은 조각 [math(B)], [math(B_o)], [math(B_{oc})], [math(B_D)]를 이용하여 [math(B^3 - O - P)]을 만들었다. 마지막으로 countable개의 구멍 [math(O cup P)]을 메우기 위해 2번 2조각을 냈다. 따라서, 우리는 단위 구 [math(B^3)]를 최대 20조각 내어 재조립 하면 구 2개가 얻어짐을 증명했다(!)

4. 의의

이 정리로부터 3차원 공간의 모든 부분집합에 적절한 측도(부피)를 줄 수 없다는 사실을 알 수 있는데, 실제로 정리의 증명에 사용되는 구의 조각들 가운데 셀 수 없는 집합(uncountable set)은 전부 부피를 가지지 않는 집합(non-measurable set)이다.

혹시나 이 증명을 읽고 나서 실제로 공을 잘라 보려고 시도하지는 말자(...). 선택공리가 작용하는 부분도 있거니와 원점 [math(O)]를 따로 분리하는 등, 물질의 최소 단위(원자)가 있는 현실 세계에서는 불가능한 방법을 사용하고 있다. 리처드 파인만도 수학자 친구들의 바나흐-타르스키 역설 드립에 원자 드립으로 맞받아쳤다.

[1] 이 부분에서 선택공리의 도움이 필요하다.