직선과 포물선은 두 점에서 만난다. 두 원도 두 점. 3차 곡선과 직선은 세 점. 두 곡선의 차수를 곱한 값이 곧 그 수다.
그런데 평행한 두 직선은 0개. 포물선에 접하는 직선은 1개. 서로 만나지 않는 두 원은 0개. 곱셈 규칙이 깨진다. 각주 한 줄로 메울 일이 아니다 — 평면이 무엇인지를 다시 써야 한다.
수선은 세 단계로 이루어진다. 아래 위젯이 그 과정을 보여준다.
- 정의
사영 평면 위 차수 , 인 두 대수 곡선은 정확히 점에서 만난다 — 중복도까지 세서, 대수적 폐쇄체 위에서. 순진한 셈법은 세 군데서 깨지고, 정리는 그 셋을 한 번에 메운다.
- 적용
곡선 교점의 정확한 개수가 필요할 때 — “대략 d·e”가 아니라 정확히. 타원곡선 암호 (현·접선 군법칙은 직선이 3차 곡선을 정확히 3점에서 만난다는 사실에 기댄다), 원뿔 곡선 교점, 고전 대수기하, 컴퓨터 대수 시스템의 불변량 계산.
- 한계
실수 위 아핀 평면에 머물면 셈이 곳곳에서 깨진다 — 평행선 (사영 무한점이 필요), 접선 (중복도가 필요), 실수에서 만나지 않는 두 원 (복소수 좌표가 필요). 셋은 베주 정리의 결함이 아니라 평면이 너무 좁다는 신호다. 초월 곡선 (sin x와 직선은 무한히 많이 만난다)은 애초에 다루는 범위 밖이다 — 대수 곡선이 아니므로.
순진한 셈법의 세 가지 실패
차수 1 직선과 차수 2 포물선을 보자. 를 에 대입하면 x에 대한 이차방정식 — 두 근, 두 교점. . 깔끔하다. 이제 세 군데서 깨뜨려 보자. (a) 평행한 두 직선 와 — 대입하면 , 모순이다. 교점 0개, 이 아니다. (b) 직선 은 원점에서 에 접한다 — 두 점이 아니라 한 점에서 만난다. (c) 서로 만나지 않는 두 단위원 과 — 교점 0개, 4개가 아니다.
곱셈 규칙은 맞을 때가 많아 정리처럼 보이지만, 틀릴 때도 많아 추측처럼 보인다. 둘 중 하나다 — 추측이거나, 아니면 평면이 잘못된 무대거나. 두 번째를 택한다.
보정 1 — 사영평면
직선은 방향 하나에 위치 하나를 더한 것이다. 평행선은 방향을 공유한다. 평면에 방향마다 새 점 하나씩을 더해 보자 — 그 방향의
사영점은 로 쓴다 — 셋이 모두 0은 아닌 세 수이며, 전체에 같은 수를 곱한 것은 같은 점으로 본다 (즉 은 같은 점). affine (보통의 유한) 점은 , 무한원점은 : 방향 . §1의 두 평행선은 둘 다 을 지난다 — “방향 (1, 1)“이라는 점이다. 실패 (a) 보정 완료.
보정 2 — 중복도
접선은 포물선과 기하적으로는 한 점에서 만나지만 대수적으로는 두 점이다. 을 에 대입하면 — 중근 이 나온다. 다항식은 그림이 잊는 것을 기억한다. 두 곡선이 한 점에서 갖는
위 위젯에서 접 프리셋으로 바꾼 뒤 중복도 표시를 켜 보라: 접점에 라벨이 붙고, 보이던 3이 4로 채워진다. 실패 (b) 보정 완료.
보정 3 — 복소수 좌표
서로 만나지 않는 두 원 과 은 어디서도 만나지 않는 듯 보인다. 두 식을 빼면 , 즉 . 그 x에서 첫째 원은 — 실수 해는 없지만 멀쩡한 복소수 해가 둘 있다: . 두 원은 실제로 두 점 에서 만난다 — 그 점이 이 아니라 위에 있을 뿐이다.
위 위젯의 분리 프리셋은 실수 교점이 0개임을 보여준다 — 복소 보기를 켜면 옆 패널에 네 개의 빈 동그라미가 뜬다: 베주가 약속한 네 교점이 복소 x-평면 위에 찍힌 것이다. 실패 (c) 보정 완료.
# The disjoint-circles example, hand-eliminated.
# C1: x² + y² − 1 = 0
# C2: (x − 3)² + y² − 1 = 0
# Subtract: −6x + 9 = 0 → x = 3/2.
# Plug back into C1: y² = 1 − 9/4 = −5/4 → y = ± i √5 / 2.
import cmath
x = 3 / 2
ys = (cmath.sqrt(1 - x**2), -cmath.sqrt(1 - x**2))
[(x, y) for y in ys]
# → [(1.5, 1.118j), (1.5, -1.118j)] (two complex intersections)진술
세 가지 보정 —
베주. 차수 , 의 두 평면 곡선이 공통 성분을 갖지 않을 때 — 에서, 중복도까지 세면 — 정확히 점에서 만난다.
왜 성립하는가 — 종결식
한 변수를 소거한다. 두 다항식 를 에 대한 다항식 (계수는 의 식)으로 보면, 둘이 공통 근을 갖는 것은 에 대한
# Sylvester resultant of two conics in y → quartic in x.
import numpy as np
def resultant_y(c1, c2):
"""Each conic c = (a, b, c, d, e, k) for a x² + b xy + c y² + d x + e y + k.
In y: A_i y² + B_i(x) y + C_i(x), with A_i = c_i, B_i = b_i x + e_i,
C_i = a_i x² + d_i x + k_i. Resultant in y of two quadratics is
(A1 C2 − A2 C1)² − (A1 B2 − A2 B1)(B1 C2 − B2 C1)."""
a1, b1, cc1, d1, e1, k1 = c1
a2, b2, cc2, d2, e2, k2 = c2
P = np.polynomial.Polynomial
A1, A2 = cc1, cc2
B1, B2 = P([e1, b1]), P([e2, b2])
C1, C2 = P([k1, d1, a1]), P([k2, d2, a2])
return (A1*C2 - A2*C1)**2 - (A1*B2 - A2*B1)*(B1*C2 - B2*C1)
# General preset: x²/4 + y² − 1 = 0 and x² + y²/4 − 1 = 0
c1 = (1/4, 0, 1, 0, 0, -1)
c2 = (1, 0, 1/4, 0, 0, -1)
sorted(np.round(resultant_y(c1, c2).roots(), 4))
# → [(-0.8944+0j), (-0.8944+0j), (0.8944+0j), (0.8944+0j)]
# (each root with multiplicity 2; the two y-values per x come back from c1)이게 어디에 나타나나 — 같은 셈, 두 필러
베주는 교점을 세는 정리에서 출발해, 타원곡선 덧셈을 정확하게 만드는 장부가 된다. 양쪽에서 곱 는 같은 수다. 다만 무엇을 세는지가 다를 뿐.
그래픽 : 두 원뿔곡선이 실제로 몇 점에서 만나는가 — 중복도, 사영점,
복소근까지 다 셌을 때.
금융 : 타원곡선과 현이 만나는 세 번째 점 — 타원곡선 덧셈을 정의하는,
숨어 있는 세 번째 교점.곡선 교점 — 평면의 두 원뿔곡선은 정확히 네 점에서 만난다 — 세 가지 보정 (사영평면, 중복도, 복소근) 을 받아들이고 나면 그렇다. 위젯이 그 셈을 돌린다 — 접점은 중복도에 2를 더하고, 평행 점근선은 무한원점을 만들고, 분리된 두 원뿔곡선은 복소수 네 점에서 만난다. 베주가 “두 원뿔곡선이 만난다”의 의미를 정한다.
비트코인 서명 — 타원곡선의 차수는 3, 현의 차수는 1, 베주에 따라 둘은 점에서 만난다. 그중 둘은 현의 양 끝점이고, 세 번째가 타원곡선 덧셈에서의 합이다. 서명 스킴은 이 세 번째 점 작도를 수백만 번 반복해 쌓아올린다 — 셈이 매번 정확해야 한다.
같은 정리, 다른 장부 — 그래픽은 “두 곡선이 어디서 만나는가”를 묻고, 금융은 “이 현 위의 세 번째 점이 무엇인가”를 묻는다. 베주가 그 세 번째 점이 존재하고 유일함을 보장하기에, ECDSA가 잘 정의된다.
분리 프리셋으로 바꿔라. 카운터의 실수 = 0이다. 보이는 총합이 4가 되려면 어느 토글을 켜야 하는가? 접과 부분 프리셋도 같은 방식으로 답하라. 각 프리셋이 순진한 시각에서 무엇을 “놓치고 있는지” 한 문장씩 적어라.
와 의 교점을 모두 구하라. 베주의 예측은 1 · 2 = 2. 이 경우 기하와 대수의 간극을 무엇이 메우는지 짚어라.
두 평행선 와 의 유일한 교점을
(3차 곡선)와 직선 (차수 1)을 보자. 베주는 3개의 교점을 예측한다. 기하적으로는 하나 — 원점에서. 베주가 어떻게 만족되는지 정확히 말하고, 이 경우와 문제 2를 대비해 보아라.
일치하지 않는 두 원 을 보자. 차수의 곱은 4지만, 보통 보이는 affine 교점은 많아야 2개다. 나머지 둘은 어디 있는가? (힌트:
(차수 3)와 직선 (차수 1)을 보자. 베주: 세 교점. 셋 모두 affine이고 x좌표가 라 하자. 임을 보여라. (이 항등식이 타원곡선 군법칙의 씨앗이다 — E 위 두 점이 주어지면 그 현이 만드는 세 번째 교점은 기하적으로 결정되고, x좌표는 비에타가 공짜로 준다.)