40주차 — 함수의 엄밀한 정의#

이 주의 길잡이

핵심 문장: 함수는 규칙이 아니라 순서쌍의 집합이다 — “모든 입력에 정확히 하나의 출력”이라는 조건을 만족하는 관계.

이 주의 위치: 50주 과정의 40주차. 9부(함수)의 첫 주다. 36~39주차에서 쌓은 관계 위에 조건 하나(\(\exists!\))를 얹어 함수를 정의하고, 중2~고1에서 배운 ‘함수’를 다시 세운다. 26주차의 \(\exists!\)와 38주차의 잘 정의됨이 여기서 다시 일한다.

원서 대응: BoP(Book of Proof) 12.1 (Functions), 12.2 도입부 — 병행자 참고용이고, 이 교재는 원서 없이 읽을 수 있다.

이번 주 목표#

  1. 함수의 집합론적 정의(\(f \subseteq A \times B\) + \(\exists!\) 조건)를 백지에 쓰고, 각 조각이 무엇을 막는지 설명할 수 있다.

  2. 정의역\(\cdot\)공역\(\cdot\)치역을 구분하고, 치역을 집합 상등 증명(양방향 포함)으로 계산할 수 있다.

  3. 함수 상등의 세 기준을 쓰고, “같은 식이라도 정의역이 다르면 다른 함수”를 판정할 수 있다.

  4. 전체성\(\cdot\)유일성 위반을 순서쌍 수준에서 지목하고, \(\mathbb{Z}_n\) 위의 규칙에 잘 정의됨 검문을 적용할 수 있다.

본문 곳곳의 확인 상자는 연필로 먼저 답하는 자리다. 바로 아래의 상자는 (웹에서는 접혀 있다) 스스로 답한 뒤에 열어 대조한다.

준비 운동 (39주차 복습)#

  1. 관계의 정의를 쓰시오 — \(A\)에서 \(B\)로의 관계 \(R\)은 무엇의 부분집합인가.

  2. \(\exists!\, x,\ P(x)\)가 요구하는 두 의무를 각각 쓰시오 (26주차 정의 26.4).

  3. 39주차 문제 19에서 \(h([a]) = [2^a]\)가 잘 정의되지 않았음을 보이는 반례를 하나 제시하시오 (39주차와 다른 이름 쌍이어도 좋다). (거듭제곱이 정수가 되도록, 이 규칙에서 대표원은 음이 아닌 정수로 잡는다.)

자주 나오는 세 가지 답 — 3번 문항#

방금 쓴 답은 대개 다음 세 유형 중 하나다. 셋 다 옳은 부분이 있고, 셋 다 이번 주에 메울 정확한 간격이 있다.

  • 유형 1 — 값 하나만 계산. \(h([0]) = [1]\)까지 적고 멈춘다. 계산은 옳다. 빠진 것은

두 번째 이름이다 — 한 값만으로는 “같은 입력에 두 출력”이라는 문장 자체가 만들어지지 않으므로, 잘 정의되지 않음을 보이려면 이름 두 벌이 반드시 필요하다.

  • 유형 2 — 크기로 설명.\(2^a\)\(a\)가 커지면 무한히 커지니까 안 된다”고 적는다.

지수가 빠르게 커진다는 관찰은 사실이지만 크기는 판정 기준이 아니다 — 무대가 \(\mathbb{Z}_4\)이므로 아무리 큰 수도 방 네 개 중 하나에 들어간다. 실제로 문제 16에서 같은 지수 꼴인데 잘 정의되는 규칙을 만난다.

  • 유형 3 — 정수 세계에서 비교. \(2^0 = 1 \neq 16 = 2^4\)이라고 적고 끝낸다. 두 이름을

잡은 것까지는 정확하다. 빠진 것은 마지막 한 걸음이다 — 비교할 것은 정수 \(1\)\(16\)이 아니라 \([1]\)\([16]\)이고, 그 둘이 다른 방임을 확인해야 반례가 닫힌다.

개념 — 관계 위에 조건 하나#

1 “대응 규칙”만으로 판정하려다 막히는 자리#

중2에서 배운 함수는 “\(x\)가 정해지면 \(y\)가 하나 정해지는 대응 규칙”이었다. 이 말만으로 다음 두 규칙을 판정해 보자.

시도 — 규칙의 생김새로 판정하기

\(\mathbb{Z}_4\) 위의 두 규칙:

\[ g([a]) = [a^2], \qquad h([a]) = [2^a] \]

“둘 다 \([a]\)를 넣으면 값이 하나 나온다. 그러므로 둘 다 함수이다.”

(거듭제곱이 정수가 되도록, \(h\)에서는 대표원을 음이 아닌 정수로 잡는다. \(g\)

임의의 정수 대표원에 대해 뜻을 가진다.)

여기서 멈춰야 한다. 준비 운동 3번에서 확인한 대로 \(h\)는 함수가 아니고 \(g\)는 함수인데(39주차 문제 19(a)), 두 규칙은 생김새가 똑같다 — 대괄호 안에 \(a\)의 식이 들어간 꼴이다. 문제는 “규칙”이라는 말이 집합이 아니라는 데 있다. 집합이 아니면 원소를 셀 수도, 두 개가 같은지 비교할 수도, 조건을 검사할 수도 없다.

확인 1. 위의 \(h\)를 순서쌍의 집합으로 적으면 어떤 순서쌍들이 들어가는가.

\([0]\)이라는 입력에서 나오는 순서쌍을 두 개 적어 보자:

\(([0], \underline{\quad})\)\(([0], \underline{\quad})\).

이 주 전체의 기준

함수의 자격은 규칙의 생김새가 아니라, 그 규칙이 만드는 순서쌍 집합

조건을 만족하는지로 판정한다. 그러므로 함수는 관계의 일종으로 정의한다.

2 순서쌍을 세어 보기 — 정의를 만들어 보기#

\(A = \{1, 2, 3\}\), \(B = \{5, 7\}\)로 두고, \(A\)에서 \(B\)로의 관계 네 개를 놓는다. 각 관계에서 입력마다 순서쌍이 몇 개씩 있는지 세어 표를 채워 보자.

관계

입력 1의 개수

입력 2의 개수

입력 3의 개수

중2 기준 함수인가

\(S_1 = \{(1,5), (2,5), (3,7)\}\)

\(1\)

\(1\)

\(1\)

\(S_2 = \{(1,5), (2,7)\}\)

\(1\)

\(1\)

\(\underline{\quad(1)\quad}\)

\(\underline{\quad}\)

\(S_3 = \{(1,5), (1,7), (2,5), (3,7)\}\)

\(\underline{\quad(2)\quad}\)

\(1\)

\(1\)

\(\underline{\quad}\)

\(S_4 = \{(1,7), (2,7), (3,7)\}\)

\(1\)

\(1\)

\(\underline{\quad(3)\quad}\)

\(\underline{\quad}\)

확인 2. 빈칸 (1)(2)(3)을 채우고, 함수인 행과 아닌 행을 가르는 조건을

개수의 언어로 한 문장으로 적어 보자.

“개수가 정확히 하나”는 26주차에서 이미 이름을 붙여 둔 조건이다: \(\exists!\). 이 관찰에 정식 이름과 형식을 붙인다. 식 자체에 새로운 것은 없다 — 방금 표에서 센 것을 문장으로 굳혔을 뿐이다.

정의 40.1 — 함수 (function) [백지 암기 대상]#

집합 \(A\)에서 \(B\)로의 함수 \(f\)란, 다음 조건을 만족하는 관계 \(f \subseteq A \times B\)이다:

\[ \text{모든 } a \in A \text{에 대해, } (a, b) \in f \text{인 } b \in B \text{가 유일하게 존재한다 } (\exists!) \]

이때 \(f : A \to B\)로 쓰고, \((a, b) \in f\)인 유일한 \(b\)\(f(a)\)로 표기한다.

\(A\)정의역(domain), \(B\)공역(codomain)이라 한다.

기호 \(f : A \to B\)는 “에프는 에이에서 비로 가는 함수”로 읽고, \(f(a)\)는 “에프 에이” 로 읽는다. 화살표 \(\to\)는 정의역에서 공역으로 가는 방향을 가리킨다. 읽는 법까지가 정의다. \(f(a)\)라는 표기가 성립하는 근거도 정의 안에 들어 있다 — “유일하게”가 없으면 \(f(a)\)는 여러 값 중 어느 것인지 정해지지 않아 표기 자체가 무의미해진다.

함수의 선언은 세 정보로 이루어진다 — 정의역 \(A\), 공역 \(B\), 그리고 순서쌍 집합 \(f \subseteq A \times B\). 정의 40.1의 \(f\)는 그중 셋째이고, 앞의 둘은 \(f : A \to B\)라는 표기가 함께 싣고 있다. 그러므로 두 함수의 상등은 이 세 정보의 상등이며, 그 기준을 §1.6에서 정리한다.

3 정의 해부 — 조각마다 하는 일#

이 한 문장은 네 조각으로 되어 있고, 조각마다 판정에서 맡는 역할이 다르다.

조각

하는 일

판정에서의 역할

“관계 \(f \subseteq A \times B\)이다”

무대의 선언

함수는 집합이다 — 원소를 세고, 순서쌍의 목록을 집합 상등으로 비교한다

“모든 \(a \in A\)에 대해”

요구를 입력 전체에 건다

입력이 하나라도 빠지면 탈락(전체성)

\(b \in B\)가 존재한다”

출력의 존재와 소속

출력은 반드시 공역 안에 있어야 한다

“유일하게”

출력의 단일성

한 입력에 출력이 둘이면 탈락(유일성). \(f(a)\) 표기의 근거

조각 삭제 실험 1. 넷째 조각의 “유일하게”를 지워 보자. 그러면 위 표의 \(S_3\)도 함수가 되고, \(f(1)\)\(5\)인지 \(7\)인지 정해지지 않는다.

확인 3. “유일하게”를 지우는 순간 정확히 무엇이 무너지는가?

(\(S_3\)만의 문제인지, \(f(1)\)이라는 표기는 어떻게 되는지 함께 생각해 보자.)

조각 삭제 실험 2. 둘째 조각의 “모든”을 “어떤”으로 바꿔 보자.

확인 4. “모든”을 “어떤”으로 바꾸면 \(S_2\)의 판정과 정의역이라는 말은

각각 어떻게 되는가?

4 두 조건에 이름 붙이기 — 전체성과 유일성#

\(\exists!\)는 26주차에서 두 의무로 쪼갠 기호다. 함수 정의에서도 그대로 쪼갠다.

이름

조건

위반의 모습

전체성(totality)

모든 \(a \in A\)에 대해 \((a, b) \in f\)\(b\)적어도 하나

입력 \(a\)의 순서쌍이 하나도 없다

유일성(single-valued)

그런 \(b\)많아야 하나

\((a, b)\)\((a, b')\)이 공존하고 \(b \neq b'\)

확인 5. 위 표의 \(S_2\)\(S_3\)은 각각 어느 조건을 어겼는가. 그리고 그 조건은

\(\exists!\)의 두 의무 중 어느 쪽에 해당하는가.

수직선 테스트의 정체. 고1에서 “세로선이 그래프와 두 번 만나면 함수가 아니다”라고 배운 규칙은 위 두 조건의 기하 번역이다. 세로선 \(x = c\)와의 교점 개수가 곧 입력 \(c\)의 순서쌍 개수이므로, 교점이 둘 이상이면 유일성 위반이고 하나도 없으면 전체성 위반이다. 새 규칙이 아니라 §1.2에서 센 개수를 눈으로 세는 방법이다.

확인 6. \(\mathbb{R}\)에서 \(\mathbb{R}\)로의 관계 \(\{(x, y) : y = x^3\}\)을 세로선의

언어로 판정해 보자. 임의의 실수 \(c\)에 대해 세로선 \(x = c\)와의 교점은 몇 개인가.

5 정의역·공역·치역 — 선언된 범위와 실제 출력#

정의 40.1은 \(A\)\(B\)의 이름만 정했다. 실제로 출력되는 값들의 집합에는 따로 이름이 필요하다.

정의 40.2 — 치역 (range) [백지 암기 대상]#

함수 \(f : A \to B\)에 대해, \(f\)치역

\[ f(A) = \{f(a) : a \in A\} \subseteq B \]

— 실제로 출력되는 값 전부의 집합이다. 언제나 치역 \(\subseteq\) 공역이며,

일반적으로 둘은 같지 않다.

기호 \(f(A)\)는 “에프 오브 에이”로 읽는다. 괄호 안에 원소가 들어간 \(f(a)\)와 집합이 들어간 \(f(A)\)는 다른 대상이다 — 앞의 것은 공역의 원소이고, 뒤의 것은 공역의 부분집합이다. 공역은 함수를 선언할 때 “출력이 이 집합 안에 있다”고 미리 정해 둔 범위이고, 치역은 실제로 출력되는 값 전부의 집합이다. 선언은 넉넉하게 해도 되므로 둘이 갈릴 수 있다.

확인 7. \(f : \mathbb{Z} \to \mathbb{Z}\), \(f(n) = 2n\)의 치역을 조건제시법으로

적어 보자: \(f(\mathbb{Z}) = \{\underline{\qquad}\}\). 공역과 같은가?

6 함수의 상등 — 기준이 세 개인 이유#

정의 40.1 뒤에서 확인한 대로 함수의 선언은 세 정보(정의역, 공역, 순서쌍 집합)로 이루어지므로, 두 함수의 상등도 이 세 정보의 상등이다. 셋째 정보인 순서쌍 집합의 상등은 집합 상등(3주차)이고, 정의역이 같을 때 그것은 “모든 입력에서 값이 일치한다”와 같은 말이다 — 곧 아래 기준의 셋째에 해당한다. 공역은 순서쌍만 봐서는 복원되지 않는다 — 정의역이 \(\mathbb{Z}\)이고 \(f(n) = 2n\)인 함수는 공역을 \(\mathbb{Z}\)로 선언하든 짝수 전체의 집합 \(E\)로 선언하든 순서쌍 집합이 똑같다. 공역이 기준에 따로 들어가는 것은 조건을 하나 더 얹기 때문이 아니라 애초에 선언의 일부이기 때문이다.

백지 암기 대상

함수의 상등

\(f = g\) \(\iff\) 정의역이 같고, 공역이 같고, 정의역의 모든 \(a\)에 대해 \(f(a) = g(a)\)이다.

따름. 식이 같아도 정의역이 다르면 다른 함수다 — 정의역이 달라지면 순서쌍의 목록 자체가 달라진다. 거꾸로 식이 달라 보여도 같은 함수일 수 있다 — 식의 생김새는 기준 세 개에 들어 있지 않기 때문이다(문제 9).

확인 8. \(f : \mathbb{R} \to \mathbb{R}\), \(f(x) = x^2\)\(g : \mathbb{N} \to \mathbb{R}\),

\(g(x) = x^2\)은 같은 함수인가. 세 기준 중 어느 것부터 검사하는가.

7 \(\mathbb{Z}_n\) 위의 함수 — 잘 정의됨 검문이 다시 필요한 자리#

정의역의 원소가 동치류일 때는 사정이 하나 더 있다. 입력 하나에 이름이 여러 개 붙어 있기 때문이다(\([0] = [4] = [8] = \cdots\)). “대표원을 골라 계산한다”는 규칙은 고른 대표원에 따라 답이 갈릴 수 있고, 갈리는 순간 한 입력에 두 출력이 된다. 따라서 \(\mathbb{Z}_n\) 위의 규칙은 잘 정의됨 검문(38주차 정의 38.2)을 통과해야 비로소 함수 자격을 얻는다. 절차는 38주차의 왕복 서식 그대로다: ① 이름 두 벌을 잡는다 \(\to\) ② 합동으로 번역한다 \(\to\) ③ (C4)/(C5) 등으로 보존을 확인한다 \(\to\) ④ 방의 언어로 역번역한다.

확인 9. 준비 운동 3번의 \(h([a]) = [2^a]\)가 함수가 아니라는 결론을,

정의 40.1의 어느 조각을 어겼다고 말해야 하는가.

8 근거 목록 갱신 — 칸은 그대로 네 개#

증명에서 쓸 수 있는 것은 여전히 네 칸이다. 늘어나는 것은 칸이 아니라 내용물이다.

근거

내용

이번 주에는 이렇게 쓴다

① 정의

1~39주차의 정의 전부 + 정의 40.1(함수), 40.2(치역), 함수 상등의 세 기준

\(y \in f(A)\)”를 “\(y = f(a)\)\(a \in A\)가 존재”로 푼다

② 닫힘성

정수의 합\(\cdot\)\(\cdot\)곱은 정수

\(2k+1\)\(k\)는 정수이므로”를 별도 설명 없이 쓴다

③ 등식의 성질

대입 / 전개 / 묶기 / 양변에 같은 것을 연산

\(y = \frac{x+1}{x-2}\)의 양변에 \(x - 2\)를 곱해 \(x\)에 관해 푼다

④ 이미 증명한 명제

27주차의 집합 상등 서식, 37주차 문제 8(분할 정리), 37주차 핵심 정리, 20주차 (C1)~(C5), 38주차 정의 38.2(잘 정의됨), 31주차 문제 13(거듭제곱 보존), 25주차 문제 17(합동 mod 2와 홀짝), 17주차 나눗셈 정리, 16주차 §1.2 인정 사실(제곱근의 존재와 유일), 16주차 (W1)(모든 실수 \(x\)에 대해 \(x^2 \ge 0\)), 12주차 곱셈 원리 + 이번 주의 예제와 문제

“분할 정리에 의해 \(n\)이 속하는 동치류는 하나뿐이다”가 문제 13의 표준 문구다

목록 밖의 것은 이번 주에도 근거가 되지 않는다. 특히 그래프의 모양은 목록에 없다 — “그려 보니 세로선과 한 번 만난다”는 관찰은 “\((c, b)\)\((c, b')\)이 둘 다 관계에 속하면 \(b = b'\)이다”라는 순서쌍 문장으로 바꿔 적어야 근거가 된다.

확인 10. 어떤 답안에 다음 세 문장이 나왔다. 각각 허용되는가.

허용된다면 몇 번 근거인가.

(가) “\(y \in f(\mathbb{Z})\)이므로 \(y = f(n)\)인 정수 \(n\)이 존재한다.”

(나) “그래프를 그려 보니 예쁜 곡선이므로 함수이다.”

(다) “\([a] = [a']\)이므로 37주차 핵심 정리에 의해 \(a \equiv a' \pmod n\)이다.”

정의는 외운다 — [백지 암기 대상] 표시가 그 대상이다. 문장만 외우지 말고 §1.3의 조각별 이유와 함께 외운다. 조각을 잊어도 이유에서 재구성할 수 있다.