문서 편집 권한이 없습니다. 다음 이유를 확인해주세요: 요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다: 사용자. 문서의 원본을 보거나 복사할 수 있습니다. [목차] == 개요 == 어떤 개념이나 표기가 well-defined되었다는 것은, 말 그대로 그것이 애매하게 정의되지 않고 '''잘''' 정의되었다는 뜻이다. 반대로 잘 정의되지 않은 경우는, 그 정의를 만족하는 것이 유일하지 않은 경우, 또는 정의 자체에서 뭔가를 가정하고 있는데 그 가정이 잘못된 경우 등이 있다. 만약 자신이 어떤 개념이나 표기를 정의했을 때는 항상 그것이 well-defined되어있는지 잘 확인해야 한다. [[이 얼마나 끔찍하고 무시무시한 생각이니|안 그러면...]] 자세한 것은 밑에 여담 항목 참조. --사실 예시를 보면 훨씬 더 이해가 빠르다.-- == 예시 == === 함수의 well-definedness === 함수가 well-defined되지 않은 경우는 흔히 한 원소에 대한 함수값이 2개 이상이 나오는 경우나 함숫값이 존재하지 않는 경우, 정의역에 있어야 할 원소가 정의역에 있지 않은 경우 등이 있다. * <math>f : \mathbb Q \rightarrow \mathbb Z </math>를 <math> f({b \over a}) = a+b </math>(이 때, <math>a, b</math>는 정수)는 well-defined 되지 않은 함수이다. <math>f({1 \over 2}) = 3 \neq 6 = f({2 \over 4}) </math>이기 때문이다. * [[정수]] <math>n</math>에 대해 <math>\bar {n} </math>를 "<math>n </math>과 <math>10</math>으로 나눈 나머지가 같은 수들의 집합"이라고 정의할 때[* 즉, <math>\bar {1} =\left\{..., -19, -9, 1, 11, 21, ...\right\}</math>], <math>f(\bar {n}) = n </math> 라 한다면 <math>f</math>는 well-defined되지 않은 함수이다. <math> \bar {1} = \bar {11} </math> 인데 <math> f(\bar {1}) = 1 \neq 11 = f(\bar {11})</math>이기 때문. 만약 <math>f(\bar {n}) = </math>"<math>n</math>을 <math>10</math>으로 나눈 나머지" 처럼 정의한다면 well-defined된다. <math> \bar {n}</math> 표기 때문에 처음 보면 헷갈릴 수 있으니 주의. 이런 표기를 쓸 때는 항상 well-definedness를 생각해야 한다. * <math>f : \mathbb R^{n} \rightarrow \mathbb Z</math>를 <math> f(U) = \begin{cases} 1, & U\ is\ open \\ -1, & U\ is\ closed \\ 0, & else \end{cases}</math>라 정의하면, <math>\emptyset </math>은 열린 집합이면서 닫힌 집합이므로 <math>f</math>는 well-defined되지 않았다. * 유계함수 <math> f : \mathbb R \rightarrow \mathbb R </math>에 대해 <math> m(f) = </math>"<math>f</math>의 최솟값"라 하면 <math>m</math>은 well-defined되지 않은 함수이다. <math>f</math>의 최솟값이 존재하지 않을 수도 있기 때문. <math> m(f) = inf(f(\mathbb R))</math>과 같이 정의하면 well-defined된다. * [[벡터 공간]] <math>V</math>의 [[차원]]을 "기저의 원소의 개수(또는 cardinality)"라고 정의했을 때도, well-defined되었는지 확인해야 한다. <math>V</math>의 기저는 여러 개 있을 수 있고, 그 중 원소의 개수가 다른 것이 있을 수 있기 때문. 물론 이 경우엔 기저들의 원소의 개수가 같음을 증명할 수 있다. === 표기의 well-definedness === * 새로운 연산 <math>\heartsuit</math>를 정의했을 때--초등학교 때 많이 봤다--, <math>a\heartsuit b\heartsuit c</math> 와 같은 표기를 쓰기 전에는 항상 <math>\heartsuit</math>가 [[결합법칙]]을 만족하는지 확인해봐야 한다. 예를 들어 <math>a\heartsuit b = 2a+b</math>라 하면 <math> ((1\heartsuit 2)\heartsuit 3) \neq (1\heartsuit (2\heartsuit 3))</math>가 되므로 결합법칙을 만족하지 않아, <math>a\heartsuit b\heartsuit c</math>의 표기를 쓸 수 없다. 또한 이는 <math> a/b/c</math> 같은 표기를 쓸 수 없는 이유이기도 하다. [* 실제로 집합론 같은 --변태같은-- 과목들을 보면 <math>+, \times </math>(우리가 아는 그 덧셈, 곱셈 맞다!) 같은 연산을 쓸 때도 결합법칙을 만족하는 것을 증명한 후에 <math>a+b+c</math>와 같은 표기를 쓴다.] == 여담 == * well-definedness의 중요성을 간과했을 때 벌어지는 재밌는 일 중 하나로, "가장 짧은 표현의 단어 개수가 세상에서 가장 큰 것"을 생각해보자. 즉, 존재하는 모든 것들에 대해 "가장 짧은 표현"을 생각해보고, 그것의 단어의 개수가 가장 많은 것을 생각해보자.[* 여기서 오류가 발생한다.] 그런데 우리는 방금 그것을 "가장 짧은 표현의 단어 개수가 세상에서 가장 많은 것"이라는 9단어만으로 표현했으므로, 모든 것의 "가장 짧은 표현"은 9단어 이내여야 한다. 즉 모든 것은 9단어 이내로 표현 가능해야 한다! 따라서 존재하는 단어를 대충 넉넉히 1000만 개라고 하면, 이 세상에 존재하는 건 10^63개 이하이다.[* 사실 이 논증의 오류는 well-definedness뿐만이 아니다. 애초에 '표현'이라는 말이 애매할 뿐더러, 단어도 무한히 많이 만들어낼 수 있다. 당장 1부터 100,000,000까지는 1억개의 단어가 존재한다. 따라서 이 논증은 주로 언어의 애매성이나 언어의 한계를 깔 때 사용된다.] * --[[술 게임/순발력 게임#s-9|출석부 게임]]을 할 때 자기가 부른 것에 해당하는 사람이 여러 명이면 well-defined되지 않았다고 까인다.-- --아 병신은 BGM도 없어요-- Well-defined 문서로 돌아갑니다.