#!if 넘어옴1 != null
''''''{{{#!if 넘어옴2 == null
{{{#!if 넘어옴1[넘어옴1.length - 1] >= 0xAC00 && 넘어옴1[넘어옴1.length - 1] <= 0xD7A3
{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴1[넘어옴1.length - 1] < 0xAC00 || 넘어옴1[넘어옴1.length - 1] > 0xD7A3
은(는)}}}}}}{{{#!if 넘어옴2 != null
, ''''''{{{#!if 넘어옴3 == null
{{{#!if 넘어옴2[넘어옴2.length - 1] >= 0xAC00 && 넘어옴2[넘어옴2.length - 1] <= 0xD7A3
{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴2[넘어옴2.length - 1] < 0xAC00 || 넘어옴2[넘어옴2.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴3 != null
, ''''''{{{#!if 넘어옴4 == null
{{{#!if 넘어옴3[넘어옴3.length - 1] >= 0xAC00 && 넘어옴3[넘어옴3.length - 1] <= 0xD7A3
{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴3[넘어옴3.length - 1] < 0xAC00 || 넘어옴3[넘어옴3.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴4 != null
, ''''''{{{#!if 넘어옴5 == null
{{{#!if 넘어옴4[넘어옴4.length - 1] >= 0xAC00 && 넘어옴4[넘어옴4.length - 1] <= 0xD7A3
{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴4[넘어옴4.length - 1] < 0xAC00 || 넘어옴4[넘어옴4.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴5 != null
, ''''''{{{#!if 넘어옴6 == null
{{{#!if 넘어옴5[넘어옴5.length - 1] >= 0xAC00 && 넘어옴5[넘어옴5.length - 1] <= 0xD7A3
{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴5[넘어옴5.length - 1] < 0xAC00 || 넘어옴5[넘어옴5.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴6 != null
, ''''''{{{#!if 넘어옴7 == null
{{{#!if 넘어옴6[넘어옴6.length - 1] >= 0xAC00 && 넘어옴6[넘어옴6.length - 1] <= 0xD7A3
{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴6[넘어옴6.length - 1] < 0xAC00 || 넘어옴6[넘어옴6.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴7 != null
, ''''''{{{#!if 넘어옴8 == null
{{{#!if 넘어옴7[넘어옴7.length - 1] >= 0xAC00 && 넘어옴7[넘어옴7.length - 1] <= 0xD7A3
{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴7[넘어옴7.length - 1] < 0xAC00 || 넘어옴7[넘어옴7.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴8 != null
, ''''''{{{#!if 넘어옴9 == null
{{{#!if 넘어옴8[넘어옴8.length - 1] >= 0xAC00 && 넘어옴8[넘어옴8.length - 1] <= 0xD7A3
{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴8[넘어옴8.length - 1] < 0xAC00 || 넘어옴8[넘어옴8.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴9 != null
, ''''''{{{#!if 넘어옴10 == null
{{{#!if 넘어옴9[넘어옴9.length - 1] >= 0xAC00 && 넘어옴9[넘어옴9.length - 1] <= 0xD7A3
{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴9[넘어옴9.length - 1] < 0xAC00 || 넘어옴9[넘어옴9.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴10 != null
, ''''''{{{#!if 넘어옴10[넘어옴10.length - 1] >= 0xAC00 && 넘어옴10[넘어옴10.length - 1] <= 0xD7A3
{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴10[넘어옴10.length - 1] < 0xAC00 || 넘어옴10[넘어옴10.length - 1] > 0xD7A3
은(는)}}}}}} 여기로 연결됩니다. #!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 수학 기호 자체를 설명하는 문서}}}에 대한 내용은 [[]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html 한국어의 형용사}}}에 대한 내용은 [[같다]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[같다#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[같다#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.#!if 리스트 != null
{{{#!if 문서명1 != null
* {{{#!if 설명1 != null
수학 기호 자체를 설명하는 문서: }}}[[]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명2 != null
* {{{#!if 설명2 != null
한국어의 형용사: }}}[[같다]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[같다#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[같다#|]] 부분}}}}}}{{{#!if 문서명3 != null
* {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
* {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
* {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
* {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
* {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
* {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
* {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
* {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}| 수학기초론 Foundations of Mathematics | |||
| {{{#!wiki style="margin: 0 -10px -5px; min-height: calc(1.5em + 5px)" {{{#!folding [ 펼치기 · 접기 ] {{{#!wiki style="margin: -5px -1px -11px" | 다루는 대상과 주요 토픽 | ||
| 수리논리학 | 논리(같음) · 논증{귀납논증 · 연역논증 · 귀추 · 유추} · 정리(보조정리) · 공리 및 공준 · 증명{반증 · PWW · 자명함 · 귀류법 · 수학적 귀납법 · 더블 카운팅 · 자동정리증명(증명보조기)} · 논리함수 · 논리 연산 · 잘 정의됨 · 조건문(조각적 정의) · 명제 논리(명제 · 아이버슨 괄호 · 역 · 이 · 대우) · 양상논리 · 술어 논리(존재성과 유일성) · 형식문법 · 타입 이론 · 모델 이론 · 동형(수학) | ||
| 계산 이론 | 계산 · 오토마타 · 튜링 머신 · 바쁜 비버 · 정지 문제 · 재귀함수 | ||
| 정리 | |||
| 드모르간 법칙 · 러셀의 역설 · 거짓말쟁이의 역설 · 뢰벤하임-스콜렘 정리 · 퍼스의 법칙 · 굿스타인 정리 · 완전성 정리 · 불완전성 정리(괴델 부호화) · 퍼지 논리 | |||
| 기타 | |||
| 예비사항(약어 및 기호) · 추상화 · 벤 다이어그램 · 수학철학 | |||
| 틀:논리학 · 틀:집합론 · 틀:범주론 · 틀:이산수학 · 틀:이론 컴퓨터 과학 · 철학 관련 정보 · 논리학 관련 정보 · 수학 관련 정보 | }}}}}}}}} | ||
1. 개요
equality, identity임의의 형식 논리에서 논의의 영역(domain) 내 두 수학적 대상이 같다는 개념에 대해 설명하는 문서.
즉, 순수 논리 수준에서 정의되는 equality를 말하며 집합론 위의 상등(extensional equality), 또는 집합 내의 동치 관계(equivalence relation)나 범주론적 동형(isomorphic)과는 상황에 따라 구분될 수 있다. 또한, domain 내 대상만을 비교할 수 있으므로 동치(equivalent) 등 식(formula) 자체를 비교하는 개념과는 구분이 필요하다.
직관적으로는 '완전히 일치한다', '교환/대체/치환(substitution) 가능하다', '구분할 수 없다(indiscernible)' 등으로 번역할 수 있으며, 논리학에서의 formal한 정의를 후술한다.
수학기초론에서 핵심적인 수준을 넘어 수학의 시작이자 본질적인 목표 중 하나라고 할 수 있다.
2. 고차 논리적 정의
FOL에선 불가능하지만 고차 논리를 이용하면 모든 술어(predicate)에 대해 양화(quantify)할 수 있으며, =를 원시 술어(primitive predicate)로 가지지 않는 고차 논리 안에서 다음과 같은 정의가 가능하다. 철학 및 논리학에서는 흔히 "라이프니츠의 법칙(Leibniz's Law)"이라고 불린다. 어떤 대상 [math(x)], [math(y)]에 대해 [math(x = y)]는, 임의의 술어 [math(\phi)]에 대해 [math(\phi (x))]와 [math(\phi (y))]가 항상 동치임을 말한다. |
즉, [math(x = y)]라는 것이 모든 술어에 대해 두 대상을 서로 바꿔 쓸 수 있다는 것을 뜻하도록 정의한 것이다.
또는 위 라이프니츠 법칙보다 단순하지만 의미적으로 동등한 러셀-화이트헤드 정의[1]를 사용할 수도 있다.
어떤 대상 [math(x)], [math(y)]에 대해 [math(x = y)]는, 임의의 술어 [math(\phi)]에 대해 [math(\phi (x))]가 참일 때 항상 [math(\phi (y))]가 참임을 말한다. |
standard semantics를 가정하고
헷갈리기 쉽지만, 고차 논리에서도 [math(=)]가 primitive인 경우 또한 고려할 수 있다. 이 경우 [math(=)]는 해당 고차 논리 내에서 다른 symbol들로 정의할 수 있는 predicate가 아니므로 [math(\leftrightarrow)]를 통한 rule (또는 theorem)로써 가져야 한다. 이 경우 해당 biconditional의 양 방향을 각각 나누어(!) 생각할 수 있고, 각각을 흔히 같이 나눠 부르고는 한다.
- 동일자의 구별불가능성 원리(indiscernibility of identicals; 또는 동일자의 식별불가능성 원리)
}}} ||
어떤 대상 [math(x)], [math(y)]에 대해 [math(x = y)]라면, 임의의 술어(predicate) [math(\phi)]에 대해 [math(\phi (x))]와 [math(\phi (y))]가 항상 동치이다.
* 구별불가능자의 동일성 원리(identity of indiscernibles; 또는 식별불가능자의 동일성 원리):
\forall x \forall y [\forall \phi (\phi(x) \leftrightarrow \phi(y)) \to x=y]* 구별불가능자의 동일성 원리(identity of indiscernibles; 또는 식별불가능자의 동일성 원리):
}}} ||
어떤 대상 [math(x)], [math(y)]가 항상 임의의 술어(predicate) [math(\phi)]에 대해 [math(\phi (x))]와 [math(\phi (y))]가 동치라면, [math(x = y)]이다.
둘을 구분하는 경우, 구별불가능자의 동일성 원리를 받아들이지 않는 일부 철학자들도 존재한다.
2.1. 가장 섬세한 반사 술어
고차 논리에서 위와 같이 정의된 equality는 자연히 반사성(reflexivity)을 가지며, 실제로 라이프니츠식 predicate [math(=)]는 finest reflexive predicate, 즉 external한 관점에서 보면 대각 관계(diagonal relation)과 동치이다. 중요한 사실은 고차 논리인 만큼 predicate를 quantify할 수 있어 [math(=)]가 가장 finest한 reflexive predicate와 동치임을 스스로 증명할(!) 수 있다.즉, 다음의 theorem을 내부적으로 증명할 수 있다.
|
우선 라이프니츠식 predicate [math(=)]를 생각하자. [math(x = y)]일때 predicate [math(\delta)]가 reflexive하다면 [math(\delta (x, x))]가 참일 것이다. formula [math(\psi (z) \coloneqq \delta (x, z))]를 생각할 수 있으니 axiom of comprehension에 의해 [math(\phi)]의 range는 [math(\psi)]를 포함하고, 라이프니츠 법칙에 의해 [math(\delta (x, x) \leftrightarrow \psi (x) \leftrightarrow \psi (y) \leftrightarrow \delta (x, y))]를 얻는다. 즉, [math(\forall x \forall y [ x = y \to \delta (x, y) ])]이므로 [math(=)]는 모든 reflexive predicate보다 finer함을 알 수 있다.
마찬가지로 [math(\xi)]를 모든 reflexive predicate [math(\delta)]에 포함되는 predicate, 즉 [math(\xi (x, y) \coloneqq \forall \delta [ \forall z [ \delta (z, z) ] \to \delta (x, y) ])]로 정의하자. [math(\xi (x, y))]일때 임의의 predicate [math(\phi)]를 잡고 [math(\phi (x))]가 참이라 하자. formula [math(\Delta (z, w) \coloneqq \phi (z) \leftrightarrow \phi (w))]를 생각할 수 있으니 axiom of comprehension에 의해 [math(\delta)]의 range는 [math(\Delta)]를 포함하고, [math(\Delta (z, z))]는 반드시 항진 [math(\phi (z) \leftrightarrow \phi (z))]이므로 [math(\Delta)]는 reflexive하다. [math(\xi)]의 정의에 의해 [math(\Delta (x, y))]가 참이며, 이는 [math(\phi (x) \leftrightarrow \phi (y))]가 참임을 의미하므로 finest reflexive면 라이프니츠 predicate가 됨을 알 수 있다.
즉, 윗 문단의 라이프니츠 법칙과 동치임을 보였으니 아예 처음부터 [math(=)]를 다음과 같이 정의해도 무방하다.
어떤 대상 [math(x)], [math(y)]에 대해 [math(x = y)]는, 임의의 반사 술어(reflexive predicate) [math(\phi)]에 대해 항상 [math(\phi (x, y))]가 참임을 말한다. |
이를 이용하면 [math(=)]가 가장 finest한 동치 관계(equivalence relation)임도 알 수 있다. [math(=)]가 동치 관계임은 biconditional의 대칭성, 추이성에 의해 자동으로 보여지며, 모든 동치 관계는 reflexive하므로 reflexive 중 가장 finest한 [math(=)]가 가장 finest한 동치 관계임은 자명하다.
3. 일차 논리에서
위와 같은 경우는 당연히 FOL에서 다루기 어렵기에 논리 자체적인 =를 직접 정의하는 것은 사실상 불가능하고, 보통 반사성(reflexivity)과 치환(substitution)으로 나누어 다룬다.흔히 다음 둘 중 하나의 방법을 사용한다.
3.1. 논리 기호로 보는 경우
즉 first order language 자체적인 signature가 아니라 [math(\neg)], [math(\to)], [math(\exists)]와 같이 논리 수준의 syntax에 포함하고, 이를 해석할 semantic rule을 만들어 해석을 고정시켜 버리는 방법이다. 엄밀히 따지면 순수 FOL과는 다른 논리 체계가 되므로 흔히 FOL with identity라고 불리는 편이나, ZFC 공리계의 가장 직관적인 표현 등이 FOL with identity를 사용하기 때문에 사실 다들 구분을 잘 하지 않는다.일단은 signature가 아닌 걸 강조하기 위해
formula의 생성 규칙 [math(F)]는 term의 생성 규칙 [math(T)]에 대해 [math(T = T)] 꼴의 nonterminal을 포함한다. |
여기서 [math(T)]는 임의의 formula가 아닌 term을 뜻함에 주의하자. 즉, [math(=)]는 predicate랑 똑같이 term밖에 비교할 수 없다.
그리고 다음과 같은 두 rule로 실제 같다는 semantic을 부여한다.
- 반사성(reflexivity): 임의의 term [math(x)]에 대해{{{#!latex
}}}
- 치환(substitution): 임의의 term [math(x)], [math(y)]와 식 [math(z)]를 free로 가지는 formula [math(\phi)]에 대해{{{#!latex
}}}
이 때 [math(\phi [ x / z ])]는 [math(\phi)]가 [math(z)]를 free variable로 가지는 상황에서 이를 전부 [math(x)]로 치환해서 얻어지는 formula를 말한다. 참고로 [math(z)]가 [math(\phi)] 내에서 free일 것만 아니라 [math(x)]가 실제로 가리킨 위치에 들어갔을 때 bound되지 않는다는 보장이 있어야 한다. 이게 없으면 [math(\forall x [ \neg [ z = x ] ])]라는 식이 있을 때 [math(z)]가 free더라도 이 자리에 [math(x)]를 대입하면 의도치 않은 결과가 나올 수 있기 때문.
아예 partial substitution이 필요한 게 아닌가 싶지만, 이것만으로도 partial substitution이 가능함을 유도할 수 있다(!). 위 rule을 잘 보면 사실 [math(\phi)] 자체는 딱히 derivable할 필요가 없다. 그러니까 [math(z)]가 free인 formula [math(\phi)]가 있어 위 substitution rule로 [math(x = y)] 치환이 가능할 때, 여기서 원하는 일부 [math(z)]만 [math(x)]로 바뀌어있는 WFF [math(\phi')]를 찾을 수 있고, 이 때 [math(\phi' [ x / z ])]는 [math(\phi [ x / z ])]와 완전히 동일하니 해당 rule에 의해 [math(\phi' [ y / z ])]도 derivable함을 알 수 있다. 여기서 [math(\phi' [ y / z ])]의 결과는 사실상 원래 formula [math(\phi [ x / z ])]에서 원하는 몇몇 위치만 [math(y)]로 바꾼 것과 같다.
3.2. 일차 언어 내 술어로 보는 경우
즉, [math(=)]라는 binary predicate를 signature에 함께 집어넣은 채 language를 생성한 다음, 이 기호가 뭔 뜻인지 해석은 model이 알아서 하게 두되 다음 공리들을 theory에 같이 집어넣는 방식이다.- 반사성 공리(axiom of reflexivity) [math(\mathrm{{=}I})]: [math(\forall x [ x = x ])]
- 치환 공리꼴(axiom schema of substitution) [math(\mathrm{{=}E})]: formula [math(\phi)]마다 [math(\forall x \forall y [ x = y \to \phi [ x / z ] \to \phi [ y / z ] ] )]
공리가 아니더라도 적어도 해당 theory 내에서 theorem으로 증명할 수 있어야 한다. 즉, ZFC 공리계의 ∈처럼 다른 원시 이항 술어(primitive binary predicate)랑 크게 다를 바 없으며, 위와 달리 기본적으로 논리 그 자체 수준에서 정의되는 게 아니라 theory 수준에서 정의된다는 차이가 있다. 이런 식으로 [math(=)]라는 predicate를 포함한 first order theory를 first order theory with equality라고 부른다.[3]
4. 집합론의 외연 공리
일차 이론 중 대표적인 예시인 집합론을 생각해 보자. ZFC 공리계를 포함해 여러 흔한 집합론에서 거진 필수적으로 들어가는 공리 중 하나로 아래 외연 공리가 있다. 본 문단에서는 가장 쉽게 ZFC 공리계만을 떠올리자.4.1. 일차 논리 또는 언어의 같음에 기반하는 외연 공리
어떤 집합 [math(x)], [math(y)]에 대해 [math(x = y)]인 것은 모든 집합 [math(z)]에 대해 [math(z \in x)]일 필요충분조건이 [math(z \in y)]인 것과 동치이다. |
고차 논리 문단에서처럼 정의([math(\coloneqq)])가 아님에 주의하자. 즉, 위 공리는 단지 ZFC의 모든 model에서 참이어야 하는 문장이며, 해당 [math(=)]를 어떻게 해석할지를 정해야 한다. 상술한 대로 아예 ZFC를 FOL with identity 안에서의 first order theory로 전개하거나, 또는 [math(=)]가 적절한 binary predicate가 되도록 잡는 방법 등이 있으며 보통 전자가 쓰인다.
4.2. 일차 논리 또는 언어의 같음과 독립적인 외연 공리
어떤 집합 [math(x)], [math(y)]에 대해 모든 집합 [math(z)]에 대해 [math(z \in x)]일 필요충분조건이 [math(z \in y)]인 것은 모든 집합 [math(w)]에 대해 [math(x \in w)]일 필요충분조건이 [math(y \in w)]인 것과 동치이다. |
즉, [math(=)]가 굳이 존재하지 않더라도 ZFC 기준 ∈ predicate 단 하나만으로도 외연 공리를 논하는 것이 가능하다.[4] 위 경우 [math(=)]는 더 이상 primitive predicate가 아니라
어떤 대상 [math(x)], [math(y)]에 대해 [math(x = y)]는, 임의의 집합 [math(z)]에 대해 [math(z \in x)]와 [math(z \in y)]가 항상 동치임을 말한다. |
와 같이 내부적으로 정의하는 것이 가능하며, 사실상 이는 일차 논리 문단에서 다룬 두 성질을 모두 가짐을 증명(!)할 수 있다.
- 반사성(reflexivity): [math(\vdash \forall x = x)]
대입하면 [math(\forall z [ z \in x \leftrightarrow z \in x ])] 꼴의 항진이므로 자명하다.
5. 등호
한국어에서 '='은 보조사 '은/는'으로 읽히기 때문에 초등학교 저학년 대상으로 해당 기호를 '등호'라고 읽는 것임을 밝히는 경우가 많다. 이런 한국어의 보조사 '은/는'의 용법상 한국어로 명제를 서술할 때에는 더 조심스러울 필요가 있다. 예를 들어 위에서 소개한 외연공리를 한국어로 서술할 때엔 '집합 [math(X)], [math(Y)]에 대해, [math(X=Y)]일 필요충분조건은, 그 어떤 [math(k)]에 대해서도 [math(k\in X\leftrightarrow k\in Y)]인 것이다'라고 진술하곤 하는데, 한국어의 보조사 은이 여기서 뜻하는 '문장 속에서 어떤 대상이 화제임을 나타내는 보조사'[5]로서의 용법으로 똑같이 쓰이는 다른 예를 분석해 보자. 집합론에서 다루는 선택공리, 하우스도르프의 극대원리, 조른의 보조정리, 정렬원리 등의 여러 명제들은 모두 서로 필요충분조건 관계에 있으며 이는 집합론, 위상수학, 대수학 등을 공부하면서 수많은 단계에 걸친 순환 증명으로 확인할 수 있는데, 여기서 한 쌍만 가져와서 '선택공리가 성립할 필요충분조건은 하우스도르프의 극대원리가 성립함이다'라고 서술해 보자. 여기서 보조사 은은 'if and only if(~할 때 그리고 ~할 때에만)'이라는 영어 서술이 의미하는 바와 같은 의미를 함의하지만, 이 보조사가 쓰이는 용법을 근거로 메타분석을 한다면, 이는 '선택공리의 필요충분조건은 하우스도르프의 극대원리뿐이다'라는, 본래 이 명제가 주장하는 바에 부합하지 않는 오해의 여지를 쓸데없이 남기는 문장이 된다. 이는 한국어의 특성(을 공유하는 언어의 특성)이므로 한국어로 이러한 동치관계에 대해 서술할 때에는 보다 다듬어진 진술이 요구된다. 이런 점에서 '='를 한국어로 읽을 때에 동치관계에서 요구하는 성질을 강조한다면 '1+2는 3이다'보다는 '1+2는 3과 같다'라는 진술이 더 적절할 것이다.6. 수학교육학에서
기호 =에 대한 학생들의 흔한 오개념은 다음과 같다.- = 왼쪽에 있는 식을 계산하면 얼마인지 답하라는 명령어쯤으로 =를 인식한다.
[math(\rightarrow)] 이에 따라 [math(\square+3=5)]와 같은 식이 나오면 [math(\square)]의 값을 구하지 못한다. '=는 = 오른쪽에 답을 쓰라는 명령어'로 아는 상태에서, = 왼쪽에 있는 수를 구하라는 지시가 떨어지면 어려움을 겪는다.
- 한국어의 보조사 '은/는', 영어의 be 동사 등과 같은 용법으로 쓴다.
[math(\rightarrow)] 이는 프로그래밍 같은 분야에서라면 몰라도 수학에서는 이는 분명한 오개념이다. 단순 문제풀이에 치중하는 중등학교 수학교육과정에서 오랫동안 불가피하게 방치되는 오개념인데[6], 비단 고등학교 이하의 수학교육 뿐만이 아니라 기호 논리를 체화하기 위해 수학도나 철학도처럼 동치 관계의 반사, 대칭, 추이 성질을 엄밀하게 정의하고 소박한 집합론 및 공리적 집합론의 언어를 익히는 일련의 과정을 거치지 않는다면 이공계 대학생들도 흔히 범하는 오류[7]이다.
이런 한국어의 보조사 '은/는'의 용법상 한국어로 명제를 서술할 때에는 더 조심스러울 필요가 있다. 예를 들어 위에서 소개한 외연공리를 한국어로 서술할 때엔 '집합 [math(X)], [math(Y)]에 대해, [math(X=Y)]일 필요충분조건은, 그 어떤 [math(k)]에 대해서도 [math(k\in X\leftrightarrow k\in Y)]인 것이다'라고 진술하곤 하는데, 한국어의 보조사 은이 여기서 뜻하는 '문장 속에서 어떤 대상이 화제임을 나타내는 보조사'[8]로서의 용법으로 똑같이 쓰이는 다른 예를 분석해 보자. 집합론에서 다루는 선택공리, 하우스도르프의 극대원리, 조른의 보조정리, 정렬원리 등의 여러 명제들은 모두 서로 필요충분조건 관계에 있으며 이는 집합론, 위상수학, 대수학 등을 공부하면서 수많은 단계에 걸친 순환 증명으로 확인할 수 있는데, 여기서 한 쌍만 가져와서 '선택공리가 성립할 필요충분조건은 하우스도르프의 극대원리가 성립함이다'라고 서술해 보자. 여기서 보조사 은은 'if and only if(~할 때 그리고 ~할 때에만)'이라는 영어 서술이 의미하는 바와 같은 의미를 함의하지만, 이 보조사가 쓰이는 용법을 근거로 메타분석을 한다면, 이는 '선택공리의 필요충분조건은 하우스도르프의 극대원리뿐이다'라는, 본래 이 명제가 주장하는 바에 부합하지 않는 오해의 여지를 쓸데없이 남기는 문장이 된다. 이는 한국어의 특성(을 공유하는 언어의 특성)이므로 한국어로 이러한 동치관계에 대해 서술할 때에는 보다 다듬어진 진술이 요구된다. 이를테면 1+2=3을 한국어로 읽을 때 이런 오해의 여지를 없애기 위해 "1+2는 3이다"보다는 "1+2는 3과 같다"고 읽는 방법이 있다.
7. 관련 문서
[1] Whitehead, A. N., & Russell, B. (1910-1913). Principia mathematica (Vols. 1-3). Cambridge University Press.[2] Boolos, G. S., Burgess, J. P., & Jeffrey, R. C. (2007). Computability and logic (5th ed.). Cambridge University Press.[3] Mendelson, E. (2015). Introduction to mathematical logic (6th ed.). CRC Press.[4] Nievergelt, Y. (2002). Foundations of logic and mathematics: Applications to computer science and cryptography. Birkhäuser.[5] 표준국어대사전 은4, 표준국어대사전 는1 참조.[6] 예를 들어 중학교 수학의 이차방정식 문제풀이에서 [math(x=±k)]라는 해를 구하면, '해는 플러스마이너스 k'라 읽는 것과 '해는 k 또는 -k'라고 읽는 것은 어린 학습자의 인지에 있어 잠재적으로 다른 영향을 끼친다. 아주 틀린 것까지는 아니지만 전자는 부주의하게 받아들이면 'k와 -k', 즉 'and'라는 조건으로 오해할 여지가 있는 반면 후자는 ('또는'이라는 말이 10대들의 일상언어에서는 고리타분하게 여겨질지언정) 오해의 여지도 없고 논리적으로도 올바른 표현("[math(x=k)] 또는 [math(x=-k)]"라고 표기하는 것이 교육과정에서 허용하는 선에서는 가장 정확하며, 학생들의 입말과는 별개로 여러 교과서에서도 실제로 그런 표기를 쓰고 있다. 결국은 엄밀한 표기와 일상언어 사이의 괴리를 교정하지 않아서 문제가 되는 것이다.)이며, 후자를 나타냄에 있어 조건제시법과 원소나열법을 통해 (아마 나중에 수학과에 진학하면 다른 이름으로도 만나게 될) '해집합'을 기술하고 해를 [math( x \in \{k,\,-k\} )]로 표기한다면 더욱 바람직할 것이다. 하지만 대학에서도 i = 1, 2, 3, … 같은 표기를 흔히 쓰는 것을 보면 교수들도 반쯤 포기한 것 같다. 그러나 보통의 사춘기 청소년의 인지능력과 심리는 집합론을 그렇게 엄밀하게 익히면서도 수학에 대한 흥미를 유지할 수준이 안 된다는 게 문제다.(교육과정에서 이를 엄밀하게 가르치지 않는 건 다 이유가 있다. 학문적으로는 필요할지라도 교육적으로는 '불가피'하다.) 그런 것을 가르칠 수 있었으면 0.999…=1이 고교수학의 뜨거운 감자로 거론될 필요도 없었을 것이고, =라는 기호의 오남용도 줄었을 것이다.[7] 특히 코딩 및 소프트웨어 프로그래밍이 이공계의 기본기로 간주되기 시작한 2010년대부터 이런 경향이 더욱 늘었다. 어릴 때부터 코딩을 익힌 학생들이 같지 않다는 기호를 ≠가 아니라 != 같은 프로그래밍 언어 기호처럼 쓰며 교사 및 교수들을 당황케 하는 일도 있다. 참고로 !는 기호논리에서는 유일성을 나타내는 용도로 쓰인다.[8] 표준국어대사전 은4, 표준국어대사전 는1 참조.
[include(틀:문서 가져옴,title=동치 관계, version=87, uuid=51a3e6d8-09cf-4261-b2f3-16c5e6904c17, paragraph=3,
title2=동치 관계, version2=183, uuid2=d22c3d28-df7f-401f-b9d2-6ca5327114ea, paragraph2=3
)]