함수는 전사함수, 단사함수, 전단사함수로 분류할 수 있다. 이 개념을 이해하려면 먼저 함수의 정의역, 공역, 치역을 알아야 한다. 함수의 정의역은 함수가 입력으로 받을 수 있는 값의 집합이다. 아래 그림에서는 화살표를 보내는 값들의 집합, 즉 {x1, x2, x3}이다. 집합 X에 있는 요소 중 화살표를 보내지 않는 값이 있으면, 함수로 정의되지 않는다. 따라서 그냥 집합 X 자체가 정의역이다.
공역은 함수가 출력으로 가질 수 있는 값의 집합이고, 치역은 실제로 정의역을 입력으로 받았을 때 출력으로 가질 수 있는 값의 집합이다. 공역과 치역이 헷갈린다면, 공역은 Y 집합 전체, 치역은 화살표를 받은 Y의 부분집합이라고 생각하면 된다. 아래 그림에서 공역은 {y1, y2, y3}, 치역은 {y1, y2}이다.
이제 전사함수, 단사함수, 전단사함수를 알아볼 수 있다.
전사함수는 공역과 치역이 같은 함수다. 그러니까 집합 Y의 모든 값이 화살표를 받는 함수다. 아래의 함수 f'는 전사함수다.
하지만 함수 f''는 슬프게도 전사함수가 아니다. 집합 Y의 '눈치'라는 값이 화살표를 받지 못했기 때문이다. 이 함수의 공역은 {엄마, 아빠, 눈치}지만, 치역은 {엄마, 아빠}로 이 둘이 일치하지 않는다. 이렇게 전사함수가 아닐 때 Y 언어에서 X 언어로의 번역, 즉 한영 번역은 힘들어진다. '눈치'에 대응되는 영어 단어가 없기 때문이다.
단사함수는 정의역에 대응되는 함숫값이 모두 다른 함수다. 그러니까 집합 Y 입장에서 보면 화살표를 2개 이상 받은 값이 없는 함수다. 화살표를 아예 받지 않거나, 받아도 1개의 화살표만 받는 함수다. 위의 f'' 함수는 전사함수는 아니었지만 단사함수는 맞다. 하지만 아래의 f''' 함수는 전사함수는 맞지만, 단사함수가 아니다. '언니'에 대응되는 함숫값과 '여동생'에 대응되는 함숫값 모두 'sister'로 일치하기 때문이다. 단사함수가 아닌 경우 Y 언어에서 X 언어로의 번역, 즉 영한 번역도 힘들어진다. 이 글 속의 'sister'가 '언니'를 의미하는지, '여동생'을 의미하는지 알 수 없기 때문이다. 운 좋으면 문맥으로 알아낼 수 있지만, 항상 알아낼 수 있다는 보장은 없다.
전단사함수는 전사함수이자 단사함수인 함수이다. 모든 Y가 0개도 아니고, 2개도 아니고 1개의 화살표만 받는 이상적인 상황이다. 번역하려는 두 언어의 관계가 전단사함수에 가까울수록 번역이 쉽지 않을까?
Thumbnail Image by Joshua Hoehne on Unsplash