"그래서 너가 말하는 그 개념이 뭔데? 수(원소)야 함수야 아니면 집합이야?"


학부시절 가까운 친구가 개념을 혼동하는 후배들을 가르치면서 반복해서 묻는 질문이 있었다


우리가 수학에서 만날수 있는 대부분의 대상은 왠만하면 저 셋으로 떨어트릴 수 있다.


물론 집합과 함수가 있으면 수와 연산을 구성해낼 수 있다. 하지만 우리중 누가 3+5를 집합기호 옮겨가며 덧셈을 하며


3/5 + 1/2를 equivalent class로 계산을 하겠는가? tuple(곱집합)의 존재로 함수를 구성해낼 수 있지만,


그 역시 누가 f(x)=x^2일때 f(3)을 계산하라는데 그래프 그려서 x축의 3에 대응하는 9를 찾고 있진 않다. 저건 어디까지나 그렇게 정의할 수 있다는 말이지


우리의 직관의 방향과 일치하지 않는다. 그리고 공리적인 엄밀함을 추구하는 사람들에겐 어떤 설명들은 순환논증이 되기도 하고 일관되지 않기도 하다.


다분히 엄밀하지 않지만, 집합론적으로 R^n이 뭐냐고 물으면 유한집합 {1,2,...n}에서 R로 가는 함수로 정의하면서,


벡터공간 R^n을 말하라면 벡터들을 원소(수)로 가지고 그 위의 연산(함수)를 어찌저찌 규칙을 만족하게 하는 순서쌍이라고 생각한다거나.


순서쌍은 뭐냐고 물으면 순서쌍은 순서쌍이라고밖엔.. 왜 아까 R^n은 순서쌍이 아니고 함수냐고 물으면 그냥 저건 원소가 다 한 집합안의 숫자처럼 생겼잖아 라고밖엔..


하지만 나처럼 막되먹은 수학을 하는 수학자에겐 저정도면 충분했다.



1. 함수


함수는 정의역, 공역, 그리고 연산법칙의 세가지를 묶어서 말하는 개념이다. 따라서 함수를 말할땐 언제나 정의과 공역을 말해줘야한다.


다만 이걸 매번 적는건 책 저자들에게 매우 귀찮은 일이기에 모든 제대로된 고등학교 책과 참고서엔 작은 글씨로 어딘가에 이런 말이 적혀있다.


"식으로 정의되는 함수는 별도의 지시가 없는 한 그 식이 성립하는 가장 큰 실수의 부분집합을 정의역으로 한다"


이를 implied domain이라고 한다. 번역하면 "정의역은.. 내 말이 뭔지 알지?" 


물론 이런 정의를 들고오면 복소함수 배운 애들이 f(z)= log z의 가장 큰 정의역은 어디인가요 같은거 묻기도 하지만 뭐 고등학생은 그런거 모른다고 해두자.


즉 함수 f(x) = 1/x라고 하면 저 함수는 (0, 무한대)를 정의역으로 가질수도 있고 [1,2]를 정의역으로 할 수도 있지만 별 말이 없으면 {x != 0}이 정의역이다.


공역 역시도 별 말이 없으면 실수로 두지만, 그러면 1:1 대응을 말할때 골치가 아파진다.


f(x) = x^2 (x>=0) 이라고 적어놓으면 f는 0이상의 실수를 정의역으로 가지고 실수를 공역으로 가지며 연산법칙을 제곱으로 정의하는 함수라고 해놓고


f(x)의 역함수는 sqrt(x) 라고 해버리면 "1:1 대응이 아니라 1:1 함수인데 어째서 역함수가 있나요?" 하고 항의할 수 있다.


그래서 일부의 책에선 "정의역이 같고 한쪽 공역이 다른공역보다 작은데 연산법칙이 같으면 같은 함수로 본다"


굳이 부르자면 implied codomain 정도로 불러줄 수 있겠다. 즉 공역도 무슨말인지 알거라고 생각하고 말이 되게 알아서 맞춰 생각하라는 말이다.


f를 저렇게 놓고 문제 풀라고 할때는 f의 공역이 0이상이든 실수전체든 대개 문제가 안되니 냅두고,


f의 역함수는 무엇인가? 라고 물으면 물은 말 안에는 f가 1:1대응이라는 의미가 내포되어있으니 저기서 말하는 f는 x가 0이상이고 공역도 y는 0이상이란


정의를 저렇게 썼겠구나. 하고 문맥을 읽어서 저 기호를 이해하라는 얘기다.


예를들면 f(x) = 1/x 라고 적어놓으면


"f는 함수. 정의역은 {x : x !=0 }, 공역은 실수 (또는 {y : y!=0}), 연산법칙은 정의역의 각 점 x를 1/x에 대응. "


이라는 뜻이다. f의 역함수는 자기자신이라고 하면 공역은 괄호 안의걸로 이해하면 된다.


2. 연속함수


고등학교의 연속함수 정의는 1. f(x0)이 존재할것, 2. lim f(x0) 이 존재할것 3. 그 둘이 같을것 으로 정의하고 있다.


또한 정의역의 모든 점에서 연속이면 연속함수라고 부른다.


그럼 f(x) = 1/x는 연속함수인가? 연속함수가 맞다. 정의역에 0이 안들어가니까.


f는 0에서 연속인가? 0에서 정의안되니까 연속이 아니다.


그럼 연속함수의 곱은 연속함수랬는데,


f(x) = 1/x랑 g(x) = x 두개 곱하면 f(x)g(x) = 1인데 우변은 연속함수고 좌변은 연속함수 아닌가? 하는 질문을 던질수도 있다.


여기엔 두가지 이야기가 들어있는데, 하나는 f(x) = 1/x, g(x) =x일때..라고 말을 적은것은 f, g라는 두 함수의 정의를 식으로 간단하게 표현한거고,


 f(x)g(x)=1이라는것은 좌변과 우변 각각을 함수로 이해한다기보다는 (정의역에서 성립하는) 명제(식)이라는 것이다.


예의 친구는 같은 이유로 학부생 이상에게는 명제와 정의의 혼선을 피하기 위해 f = (x |-> 1/x ) 같은 기호로 적어야한다고 말하긴 하지만,


그 급진적인 생각은 놔두고 우리는 마음속으로 저렇게 읽도록 하자. 즉 f(x)g(x) = 1이라는건 저 식이 성립할수 있는 영역 x !=0 에서 f(x)g(x)=1이 성립한다 는 말이다.


물론 저것만으로 대답이 잘 되진 않는다. "그래서 그 급진적인 친구말대로 h = ( x |-> f(x)g(x)) 라고 적으면 h = 1 맞지않나?"


맞긴한데, 저렇게 정의하면 h의 정의역은 앞서 implied domain이 x != 0이 된다. 즉 h=1은 맞지만,


"h : 함수, 정의역 {x : x!=1} 공역 : 실수 또는 적당한 부분집합, 규칙: 정의역의 한 점 x에 1을 대응 " 이란걸로 정의되었기때문에


h(x)=1이라는 식은 (정의역의 각 점 x에 대하여라는 말이 생략되었다고 번역되어) 참이고 x=0에서 연속이냐고 물으면 연속이 아니다(정의가 안됐으니까)



3. 미적분학의 숨은정리.


사실 이 글은 예전에 이 설명을 하려고 쓰려고 기획했다가 귀찮아서 적지 않았던 글이다.


다음의 식을 보자.


lim x->0  x/x = lim x->0 1 = 1.


"극한이 뭔가요?" 라고 물으면 위의 함수냐 집합이냐 뭐냐..하는 질문에 대한 답은 함수다.


함수면 정의역이 뭔가요? 하는 질문에 대한 답은 실함수 가 되기도 하고 실함수의 부분집합이 되기도 한다.


실함수로 정의하면 공역에 "존재하지 않음"이라는 특정한 원소를 하나 더 집어넣어줘야할거고, 편의상으론 그냥 실함수의 부분집합으로 두자.


물론 "lim x->a" 까지를 한 덩어리로 보아서 정의역이 그렇다는거고 저 a까지 정의역에 넣는다면 정의역이 좀 더 귀찮아질텐데 (좌극한 우극한기호나 무한대 넣고빼고 등)


그냥 저기가지 한 덩어리로 기호로 생각하자.


책에따라선 extended real number를 공역으로 쓰기도 한다만, 뭐 그것도 그때그때 책따라서..


즉 어떤 함수를 받아서 숫자를 뱉어주는 류의 함수다. 이렇게 함수를 모아놓은 집합에서 숫자로 가는 함수를 functional이라고 부른다.


operator는 보통은 공역도 함수공간이 될때 operator라고 부른다. 후자의 번역은 연산자인데 전자는 내가 번역을 잘 모른다. 난 연산자라고 그냥 막 부르기도 한다.


아무튼 방금 위에서 x/x = 1은 식이지 우변을 함수로 보는게 아니랬는데 저기선 정의역에 0을 포함하지 않는 함수가 어느순간 0을 포함하는 식으로 은근슬쩍 바뀌었다?


극한은 함수 위에서 정의되는거라 했기때문에 저 1은 그냥 숫자가 아니라 상수함수 x |-> 1로 이해하는게 맞다. 그런데 정의역에 아까 x=0 이 빠졌는데 저 극한을 어떻게 숫자로 바꿨는가?


여기서 대부분의 책에서 생략하는 미적분학의 숨은정리가 등장한다.


저 짧은 식을 잠깐 풀어서 쓰면 이렇게 된다. (lim 아랜 다 x->0이 들어있다고 하자)


      lim ( x |-> x/x , implied domain은 x !=0 )

(1) = lim ( x |-> 1, 위 식을 정리. domain은 x !=0인 함수. )

(2) = lim ( x |-> 1, 정의역은 실수전체)

(3) = 1 (실수)


(1)은 식을 정리한거에 불과하다.

(3)은 엡실론델타로 상수함수는 연속이다 증명하는게 아니라 우리가 "기존에 아는건 대충 다 연속함수로 퉁치자" 라고 선언한걸 이용한다.

(2)에서 저 숨은정리가 작동하는데 저 정리를 제대로 풀어쓰면 다음과 같다.


"미적분학의 숨은정리:

f와 g는 (a를 제외할 수 있는 a 근방에서 정의된) 두 실함수로 a점을 제외한 a 근방에서 일치한다. 즉 어떤 d > 0에 대해 f(x) = g(x) for 0<|x-a|<d.

이 때 lim (x->a) f(x) = lim (x->a) g(x)가 성립한다."


저 정리의 내용인즉, 정의역에서 빠진점이 다시 정의역에 들어가서 원 함수를 우리가 아는 연속함수로 만들면 그렇게 바꿔서 계산을 하라는 소리다.


대학1학년 미적분학까지의 모든 극한 계산은 (샌드위치 정리를 제외하면) 저 계산법칙을 숨어서 사용하고 있다.


밑에 1/x가 연속이냐 뭣이냐 하는 글 보고 생각나서 다시 적음. 근데 내가 이거 안적었던거 맞지?


사족. 학생들은 그런거 대충 적어서 내긴 하지만, 착하고 까탈스런 조교랑 강사들은 저 사기를 어떻게 정당화해야할지를 미적 수업 전에 고민한다고 하더라.