프레게의 논리주의적 기획(8)ㅡ자연수 정의
프레게의 자연수 정의를 이끌어 내기 위한 직접적인 개념들이 이번 시간부터 소개될 것 같습니다.
프레게의 기수 정의(cardinal number definition)
프레게는 자연수를 정의하기 전에 다시 한번 다른 수를 정의합니다. 바로 기수입니다. 기수는 크기수라고 보면 되구요, 수의 size를 의미합니다. 한글로는 하나 둘 셋 넷 등등의 명칭을 나타내죠. 프레게의 개념과 관련해서는, 가령 'F를 만족하는 대상이 셋이다'고 말할 때 쓰일 수 있습니다.
좀있다가 보겠지만, 모든 자연수는 기수입니다. 그렇기 때문에 프레게는 이를 위해서 기수를 먼저 정의하게 됩니다.
프레게의 기수 정의는 위와 같습니다. 해석하자면,
'n이 기수인 것은 n=#F를 만족하는 개념 F가 존재하는 것과 필요충분조건이다' 입니다.
전 시간에 프레게는 수를 외연으로 도입했었습니다. 그리고 모든 개념은 반드시 그 개념의 외연을 지닌다고 했었죠.
따라서 개념 F가 존재한다면, F와 관련된 외연이 존재하고 이는 #F={X:F≈X}를 보장합니다.
즉, 프레게 체계에서는 개념 F가 존재하기만 하면 #F의 존재는 보증됩니다.
위의 기수 정의는 그렇게 만들어진 #F가 특정 수로 표기될 수 있을 때(가령 1, 2, 3, 4), 그 특정 수를 기수라고 부르자는 겁니다.
기수에도 여러 가지 종류가 있는데요, 가령 '홀수의 수'는 어떤 자연수와도 대응되지 않는 기수입니다. 하지만 자연수는 각각 모두 특정 수에 대응되는 수이구요.
프레게는 이런 기수들 간의 차이를 명확하게 하기 위해서 자연수개념을 분명히 하려 합니다.
Successor Relationship
여기부터는 이제 자연수 정의와 직접적으로 관련되는 것들입니다.
자연수를 정의하기 위해 프레게는 Successor Relationship이라는 개념을 가지고 나타납니다. 한글로 해석하자면, '다음 수 관계'입니다.
자연수는 1부터 시작해서 다음수 관계를 지속해가는 집합이죠?
가령, 1 다음은 2, 그 다음은 3, 다음은 4, …. 프레게는 이렇게 나타나는 자연수 사이의 관계를 정의하려고 합니다.
먼저, succeed(계승하다)에 대해서 이렇게 정의를 하는군요.
'succeeds' to mean "is one bigger than,"
그 다음에 Successor Relationship에 대해서 정의합니다.
"The number of Fs succeeds the number of Gs if and only if there exists an x that falls under F such that the number of Gs = the number of the concept falls under F but is not identical to x"
"F의 수가 G의 수의 다음에 오는 필요충분조건은 F를 만족하는 대상 x에 대해서, G의 수가 'x를 만족하지 않으면서 그 나머지가 F에 맞아 떨어지는 개념의 수'일 때다."
무슨 소린가 하면, F를 만족하는 대상이 a b c d 가 있고, G를 만족하는 대상이 e f g가 있다고 칩시다.
그렇다면 G의 수는 F에서 특정한 대상 아무거나를 제외한 수와 같다는 겁니다. 가령, F에서 c를 제외한다면
c를 제외한 F의 대상은 F-c = a b d이고 이는 G를 만족하는 대상 e f g와 수가 같습니다. 위의 정의는 이를 의미합니다.
Succeed의 정의에 따라 F의 수는 G의 수보다 한 개가 많습니다. F와 G 사이에는 다음수 관계가 존재하는 것이죠.
자연수 조건으로 따지면, …G F(G의 다음수)…가 되겠습니다.
프레게는 이제 이런 추상적인 언어를 직접 수에 적용시킵니다.
먼저 프레게는 0부터 정의를 내립니다.
0=#[x : x≠x]
설명하자면 []기호는 개념을 나타냅니다. {}는 집합이고, 프레게 용어로 외연(extension)을 나타내구요.
[x : x≠x]는 어떤 개념이 x≠x라는 의미를 지니고 있음을 의미합니다. F = [x : x≠x] 셈인 것이죠.
#[x: x≠x]는 따라서 #F이고, []를 만족하는 대상의 수를 의미합니다.
0 = #[x: x≠x]란 말은 0을 '자기 자신과 같지 않은 개념'의 수를 의미합니다.
이를 이해하기 위해서는 형식논리학의 3대 전제를 알아봐야 합니다.
형식논리학에서는 '동일률' '모순율' '배중률'을 삼대 전제로 삼습니다.
'동일률'이란 '모든 것은 자기 자신과 같다'로 논리식으로 a=a로 표기됩니다.
'모순율'이란 '어느 것도 자기 자신과 같지 않은 것은 없다'로 a≠a를 형식논리에서 제외한다는 것을 의미합니다. 즉, 언제나 ¬(a≠a)라는 것이죠.
'배중률'이란 특정 명제 p에 대해서, p가 옳거나 p가 틀리거나이고 그 외에 것은 허용하지 않는다는 겁니다. 논리식으로는, (p ∨ ¬p)입니다.
프레게는 이런 형식논리적 전제를 가지고 0을 정의한 겁니다. 형식논리의 모순율에 따르면, x≠x는 허용되지 않습니다. x≠x가 성립할 경우, x=x라는 동일률에 대해서 x=x와 x≠x가 동시에 성립해야 합니다. 논리식으로 ¬(x=x) ∧ (x=x)로 표기되고 이는 완벽한 모순입니다. 따라서 형식논리적으로 x≠x를 만족하는 대상은 존재할 수가 없습니다. 그렇기 때문에 프레게는 0을 x≠x를 만족하는 개념의 수로 정의한 겁니다.
0 = #[x: x≠x]
프레게는 이제 다음수(successor relation)을 이용해서 1을 정의합니다.
1=#[x: x=0]. 프레게는 위의 0 = #[x: x≠x]을 다시 하나의 수로 간주합니다. 즉, 'x=0'을 하나의 수로 간주한 것이죠. 그렇게 해서 1 = #[x: x=0]을 정의합니다.
2 = #[x: x=0 ∨ x=1]. 2 또한 0과 1을 이용해서 정의합니다. 다른 수들도 이렇게 모두 표현합니다.
3= #[x : x=0 ∨ x=1 ∨ x=2]
4=#[x : x=0 ∨ x=1 ∨ x=2 ∨ x=3]
…
n = #[x : x=0 ∨ x=1 ∨ x=2 ∨ … ∨ x=n-1]
n+1= #[x : x=0 ∨ x=1 ∨ x=2 ∨ … ∨ x=n-1 ∨ x=n ]
이제 프레게가 해야 할 일은 0과 1사이, 1과 2사이 ~ n과 n+1등을 모두 다음수 관계로 엮는 겁니다.
프레게는 Successor를 다시 이런 논리기호로 정의합니다.
S#G#F ↔∃x(Fx&#G=#[y:y≠x&Fy])
이는 앞의 Successor relationship을 그대로 논리기호로 옮긴 것입니다.
"The number of Fs succeeds the number of Gs if and only if there exists an x that falls under F such that the number of Gs = the number of the concept falls under F but is not identical to x" 를 논리기호로 옮긴 것이죠.
S#G#F ↔∃x(Fx&#G=#[y:y≠x&Fy])
의미는 앞과 동일합니다. "x가 F를 만족하고, G의 수는 '특정 변수 x를 제외하고(x와 같지 않고) F를 만족하는 y의 수'"
즉, #G보다 #F가 수가 기수가 하나더 크다는 말입니다.
이 관계를 방금 정의한 0 1 2 수들에 적용해 봅시다.
S01 ↔ S#[x : x≠x]#[x : x=0] ↔ ∃z(z=0 ∧ #[x : x≠x]=#[y : y≠z ∧ y=0])
뭔가... 어려워 보이죠? 쉽게 설명해드리겠습니다.
∃z(z=0 ∧ #[x : x≠x]=#[y : y≠z ∧ y=0]) 에서 'z=0'은 위의 S 논리기호 정의에서 Fx에 대응합니다.
즉, z=0은 하나의 개념입니다. z가 0이라는 개념이죠. #[x : x≠x]는 0입니다. 이를 Successor 정의와 관련해서 보자면, #[x : x≠x]=0을 정의하기 위해서는 1 = #[x : x=0]을 이용해야합니다. [x : x=0]을 만족하는 특정 대상 하나를 제외하고 나머지 수와 같은 걸 0이라고 만들어야 S01이 Successor를 만족하게 됩니다.
#[y : y≠z ∧ y=0]는 그런 맥락입니다. y≠z는 y가 'z=0'과 같지 않다는 걸로, 0이라는 개념을 만족하는 특정 대상 하나를 제외하겠다는 걸 의미합니다. y≠z ∧ y=0은 따라서 'z와 같지 않으면서 y=0(#[x : x=0]=1에 해당하는 개념)'를 만족함을 의미합니다.
즉, 논리식으로 정의한 0과 1의 관계를 보았을 때, 1은 'x = 0'이라는 개념을 만족하는 수였죠? 0을 정의하기 위해서, 1에 해당하는 개념(z=0)에서 대상 하나를 제외(y≠z)하고 그 나머지에서 1이라는 개념(y=0)이 만족하는 대상의 수를 #[y : y≠z ∧ y=0]라고 한 겁니다.
개념적으로 보았을 때, #[y : y≠z ∧ y=0]는 0을 나타냅니다. #[x : x≠x]과 같은 수이죠. 왜냐구요?
y≠z는 곧 y≠0(z=0이라 했으므로 y≠z=0)을 의미합니다. 동시에 y=0을 만족해야 하죠. 그렇다면, 위 식은
y=0과 y≠0을 동시에 만족해야 하기 때문에 모순이 됩니다. 앞에서 이런 식들을 모두 0으로 정의하기로 했었죠?
따라서 #[y : y≠z ∧ y=0] = 0이 됩니다.
이해를 돕기 위해 S12까지 해봅시다.
S12 ↔ S#[x : x=0]#[x : x=0 ∨ x =1]이고
S#[x : x=0]#[x : x=0 ∨ x =1] ↔ ∃z( (z=0 ∨ z= 1) ∧ #[x : x=0]=#[y : y≠z ∧ (y= 0 ∨ y=1)]) 입니다.
z=0 v z=1은 2=#[x : x=0 ∨ x =1]의 개념이죠. 1(#[x : x=0])을 정의하기 위해서, y가 'z=0 v z=1' 라는 개념에서 한가지를 제외(y≠z 1)하고 그를 제외하고 y가 만족하는 그 개념의 수를 따집니다.
즉, z=0 v z=1의 수는 2이죠. 2에서 2를 만족하는 특정 대상들(0과 1)중에서 한가지 가령 z=1을 제외하고 2를 만족하는 대상은 z=0밖에 없습니다. 따라서 z=1을 제외하고 z=0 v z=1을 만족하는 대상은 z=0밖에 없지요.
따라서 #[y : y≠z ∧ (y= 0 ∨ y=1)]는 1을 나타내게 되고 #[x : x=0]와 같은 수이게 됩니다.
이제 자연수 정의를 해보도록 합시다.
프레게의 자연수 정의
앞서 말했듯이, 자연수는 각각의 인접한 수들끼리 다음수 관계에 놓여있습니다. 0과 1, 1과 2, 2와 3 등등.
이런 관계는 S01, S12, S23 ~ Snn-1 Snn+1로 나타낼 수 있습니다.
이를 자연수 전체에다가 적용시키면 0 1 2 3 4 5 6 7 8 이런 관계가 논리식에 나타나야 합니다.
우선, 0→1→2→3→4→…→n→… 으로 나타내는 →의 관계를 논리식으로 만들어봅시다.
∀x∀y((Fx ∧ Sxy) → Fy)가 됩니다. 프레게식으로는 F is hereditary with S(F-S heredity)라고 말합니다.
F와 S의 관계가 유전적이라는 것이죠.
위 식은 '모든 x y에 대해서, x가 F를 만족하고 y가 x의 다음수라면(Sxy) y 또한 F를 만족한다'를 의미합니다.
일단 Sxy에서 x와 y는 각각의 개념의 수(가령 x=#G y=#F)를 나타냅니다.
즉, x와 y는 모두 수입니다. x라는 수가 F라는 개념에 있고 y가 x+1(x의 다음수)라면 y도 F에 속한다.
쉽게 설명하자면, 특정수 x=3이 있습니다. 위 정의에 따라서 3은 뭔지는 모르겠지만 F라는 개념을 만족합니다(혹은 F에 속합니다).
그렇다면, Sxy는 S3y일 것이고, 다음수 정의에 따라 y=4가 되어 S34가 됩니다.
F안에 3이 속하고, 3과 4가 다음수 관계에 있기 때문에 정의에 의해서 4또한 F안에 속하게 됩니다.
즉, F에는 3과 4라는 대상이 존재하지요.
이를 연쇄적으로 보면 3→4에서, 4가 다시 F를 만족하기 때문에 S4y를 만들고 이에 따라 S45가 만들어지고, 5는 F를 만족하게 됩니다.
즉, F안에는 3→4→5가 만들어지는 것이지요. 연쇄적으로보면, 3→4→5→6→…→n→… 이렇게 무한적으로 진행됩니다. 자연수는 이런 성질을 가지고 있죠.
∀x∀y((Fx ∧ Sxy) → Fy)는 단지 진행상황만 나타내기 때문에 시작점을 알 수가 없습니다.
하지만 자연수는 분명히 시작점이 있지요. 0이든 1이든간에요. 여기서는 프레게를 따라 자연수를 0부터 시작하는 것을 채택하기로 합시다. 2
자연수를 0으로부터 시작한다고 정의하면, 위의 F-S heredity 식에다가 단순히 F0이라고 시발점을 정해주면 됩니다.
즉, F0 ∧ ∀x∀y((Fx ∧ Sxy) → Fy)에는 이런 의미가 있습니다.
0이 F를 만족하고 F0 ∧S0y에 의해서 S01이 되고 F1이 성립합니다.
즉, 0→1이 만족되고 0과 1이 모두 F에 속하게 됩니다. 1을 다시 위의 식에다가 대입하면 1→2가 산출되고, 2→3, 3→4 등이 모두 F를 만족하는 대상이 됩니다.
'0→1→2→3→4→5→6→…→n→…' 등 우리가 아는 모든 자연수가 이제 위의 식에 포함됩니다.
따라서, 특정 수 k가 자연수를 나타낸다는 건 이렇게 정의할 수 있겠죠.
k is a natural number if and only if ∀F[F0 ∧ ∀x∀y((Fx ∧ Sxy) → Fy) → Fk]
이 식이 바로 프레게의 자연수 정의입니다.
굳이 해석을 달아주자면,
"k가 자연수일 필요충분조건은 '모든 개념 F에 대해서 0이 F를 만족하고, 모든 x와 y에 대해서, x가 F를 만족하고 y가 x의 다음수 관계이면 y는 F에 속하게 될 때, k는 F에 속한다."
좀더 설명하자면, k는 0이 지니는 모든 유전적 속성을 지니게 된다는 의미입니다.
0→1→2→3→4→5→6→…의 관계도가 k에게도 그대로 적용된다는 의미이지요.
전제와 결론부를 나눠서 본다면,
∀F[F0 ∧ ∀x∀y((Fx ∧ Sxy) → Fy)까지가 전제부이고, Fk가 결론부입니다. 둘은 '→' 기호로 연결되어 있죠.
→기호는 집합관계로 따지면 p→q는 P⊂Q를 나타냅니다. 이를 위의 식에 적용시킨다면,
전제는 0→1→2→3→4→5→6→…를 함축하고 있고, 결론부는 그런 전제를 ⊂ 즉, 포함하고 있습니다.
전제부의 F0속성과 다음수 관계의 속성이 k에 포함되어 있다는 것이죠.
즉, k또한 F0과 다음수 관계(더 정확히는 S-F heredity)를 지니게 됩니다.
따라서 위의 식에서 k를 자연수관계에 두는 것에 아무 문제가 없게 되죠.
프레게의 자연수 정의와 관련하여 볼 것은 저 정의가 자연수를 '귀납적으로' 정의하고 있다는 겁니다.
쉽게 말해서, 고등학교 때 배우는 수학적 귀납법의 의미를 저 정의가 그대로 담고 있습니다.
'최초수 0이 F를 만족하고, n이 F를 만족하고 n+1또한 F를 만족한다면 모든 자연수는 F를 만족하게 된다'
는 귀납적인 의미를 담고 있지요. 이런 정의와 프레게의 수에 대한 생각은 현대 집합론에서 자연수를 정의하는데 아주 큰 기여를 하게 됩니다.
프레게의 첫째 과제였던 이제 위 자연수 정의에 따라서, '자연수는 논리기호와 논리법칙으로 환원가능하다'는 프레게에겐 이제 해결된 듯합니다.
프레게의 논리와 관련해서 더 깊게 다룰 수 있긴 하지만, 제가 다루려는 부분에서 상당히 동떨어진 것들이 많기 때문에 프레게의 여러 가지 개념과 정의에 대해서는 여기까지 서술하겠습니다.
다음시간에는 프레게 체계의 문제점들과 이를 지적한 러셀(의 역설)에 대해서 다루는 걸로 프레게와 관련한 논의를 마무리 짓겠습니다.
- y≠z는 y과 z의 모든 것들과 다르다는 게 아닙니다. z=0 v z=1에서 쓰인 z는 단지 변수를 표현하기 위한 수단일 뿐입니다. 따라서, y≠z의 z는 z=0 v z=1에서 특정 한가지 변수 'z'를 나타냅니다. [본문으로]
- 대한민국 공교육 제도에서는 자연수를 '1'부터 시작하는 수로 가르칩니다. 대학교 수준에서는 좀 다를 수 있다는 걸 알려드립니다. 실제로 수학자들마다 자연수를 1부터 보는 학자가 있고, 0부터 보는 학자가 있거든요. 프레게는 자연수를 논리법칙과 기호로 환원하기 위해서 0부터 시작했습니다. 모순율에 따라서 '0=자기 자신과 같지 않는 것들의 수'를 자연수의 시발점으로 채택합니다. [본문으로]