Fundamental theorem (or structure theorem) for finitely generated modules over PID
단항아이디얼정역(PID) [math(R)]과 그 위의 가군(module) [math(M)]이 유한생성(finitely generated), 즉 [math(M = Rm_1 + cdots + Rm_k)]인 [math(m_i in M)]이 존재한다고 하자. 그럼 [math(M)]은 다음처럼 자유가군(free module)과 cyclic module들의 직합으로 나타낼 수 있다. 1. Invariant factor form [math(M simeq R^r times (R/a_1) times (R/a_2) times cdots times (R/a_k) )]
여기서 [math(r)]은 베티 수(Betty number)라 불리는 자연수이고, invariant factor라 불리는 원소 [math(a_i in R)]들은 [math(a_1 vert a_2 vert cdots vert a_k)] 들을 만족시킨다. 베티 수와 invariant factor들의 순서쌍은 (단위원의 곱셈에 대해 같은 것을 같다고 취급하면) 유일하게 결정된다.
2. Elementary divisor form [math(M simeq R^r times (R/p_1^{e_1}) times (R/p_2^{e_2}) times cdots times (R/p_k^{e_k}) )]
여기서 [math(p_i in R)]들은 기약원이다. 베티 수 [math(r)]은 1과 동일하고, elementary divisor라 불리는 [math(p_i^{e_i} in R)]들의 집합은 (역시 단위원의 곱셈에 대해 같은 것을 같다고 취급하면) 유일하게 결정된다.
두 유한생성 가군이 동형일 필요충분조건은 베티 수와 invariant factor의 리스트(혹은 elementary divisor의 집합)가 동일한 것이다. [2] |
PID 위에서 유한생성 가군을 완벽히 분류하는 정리이다. 대수학 교과서에서 이게 처음 나오면 백이면 백 유한생성 가환군을 분류하거나 혹은 행렬의 조르당 분해를 증명하거나 Frobenius normal form(rational canonical form)을 계산해 상사(similarity) 문제를 푸는 데에 쓰인다. 만약 [math(R=mathbb{Z})]이면, [math(mathbb{Z})]-가군은 가환군이랑 똑같으므로, 모든 유한생성 가환군이 [math(G simeq mathbb{Z}^r times prod (mathbb{Z}/a_i) )]의 꼴로 나타난다는 '유한생성 가환군의 기본정리'를 얻을 수 있다. 이 정리에서 [math(R)]을 다항식환 [math(mathbb{F}[x])]로 놓고 이걸 행렬에 대해 어떻게 기묘하게 적용하는지를 보려면 조르당 분해 항목을 참고하자. 물론 바보 같은 예시지만 [math(R)]이 체 [math(mathbb{F})]라면 벡터공간이 [math(V simeq mathbb{F}^n)]이라는 얘기가 된다.
가환대수학을 깊게 배운다면 이 정리는 '가군의 구조는 환의 구조에 지배된다'는 메타의 기본형으로 생각될 수 있다. 대수기하학에서 환을 스킴을 통해 도형으로 본다면 가군은 그 위의 다발이 되므로, 어찌 보면 이건 특수한 경우에 도형 위의 다발을 항상 선다발(line bundle)로 나타낼 수 있다는 내용이다. 데데킨트 정역(Dedekind domain)의 경우도 이것을 약화한 버전이 있기도 하는 등 의미 자체로도 가볍게 볼 내용이 아니다. 실전의 경우 PID 자체는 굉장히 드물게 등장하지만, 국소환을 생각한다면 1차원의 경우에는 discrete valuation ring의 존재로 의외로 이걸 자주 볼 수 있기도 하다. 물론 여기서도 증명이 중요하다기 보다는 그 결과에 감사하며 써먹는 게 대부분.
증명 방식은 크게 스미스 표준형(Smith normal form)을 사용하는 방식과 primary/cyclic decomposition을 사용하는 방식으로 나눌 수 있다. 전자의 방법은 invariant factor decomposition을 따라가게 되고, 후자의 방법을 사용한다면 자연스럽게 elementary divisor가 튀어나온다. 교과서에 따라 다른 방식을 쓴다.
스미스 표준형(Smith normal form)
[math(R)] 위에서의 임의의 [math(n times m)]행렬은, 가역인 기본행연산/열연산[4] 만을 사용해 성분이 [math(a_1, a_2, cdots, a_k, 0, cdots, 0)] ([math(a_1 vert a_2 vert cdots vert a_k)]) 인 대각행렬로 만들 수 있다. 이 때 [math(a_i)]들은 유일하게 결정된다. |
이 스미스 표준형을 쓴다면 유한생성 조건에서 먼저 [math(R^k rightarrow M rightarrow 0)]을 유도하고 Noetherian 성질을 이용해 그 핵(kernel)도 유한생성임을 보인다. 즉 다음 표현(presentation)을 생각할 수 있다.
[math( R^l rightarrow R^k rightarrow M rightarrow 0 )]
이제 [math(R^l rightarrow R^k)]의 행렬을 스미스 표준형으로 나타내고, [math(M simeq R^k / mathrm{im}(R^l rightarrow R^k)] 생각하면 보면 저 invariant factor decomposition을 얻을 수 있다. 스미스 표준형의 [math(a_i)]는 invariant factor가 되고 0의 개수가 베티 수가 된다.
한편 primary/cyclic decomposition을 한다 치면, 먼저 torsion submodule [math(M_{text{tor}})]을 분리해내고 [math(M/M_{text{tor}} simeq R^r)]을 [math(M)]으로 리프트하면 [math( M simeq R^r oplus M_{text{tor}})]을 얻는다.[5] 부분은 canonical하게 정해지지 않는다는 점을 유의해야 한다. free part의 불변량은 베티 수 하나 뿐이다.] 그 다음
한편 primary/cyclic decomposition을 한다 치면, 먼저 torsion submodule [math(M_{text{tor}})]을 분리해내고 [math(M/M_{text{tor}} simeq R^r)]을 [math(M)]으로 리프트하면 [math( M simeq R^r oplus M_{text{tor}})]을 얻는다.[5] 부분은 canonical하게 정해지지 않는다는 점을 유의해야 한다. free part의 불변량은 베티 수 하나 뿐이다.] 그 다음
- primary decomposition: [math(M_{text{tor}})]을 기약원 [math(p)]에 대한 [math(p^infty)]-torsion [math(M(p) = {m in M : m p^e = 0text{ for some } e } )]들의 합으로 분리한다. 증명에는 베주 항등식 혹은 중국인의 나머지 정리
그게 그거다가 사용된다. - cyclic decomposition: 각각의 [math(M(p))]들을 [math(R/p^k)] 꼴의 cyclic submodule들로 분해할 수 있음을 (주로 적절한 귀납법을 써서) 보인다.
의 과정을 거친다.
[1] 이 두 표현은 서로 일대일대응된다. 중국인의 나머지 정리에 의해 invariant factor들을 인수분해하면 elementary divisor들을 얻을 수 있고, 반대로 elemtary divisor들을 적절히 합쳐서 invariant factor들을 얻을수도 있다.[2] 이 두 표현은 서로 일대일대응된다. 중국인의 나머지 정리에 의해 invariant factor들을 인수분해하면 elementary divisor들을 얻을 수 있고, 반대로 elemtary divisor들을 적절히 합쳐서 invariant factor들을 얻을수도 있다.[3] 즉 한 행을 다른 행의 몇 배에 더해 주거나, 단위원을 곱하는 연산만이 허용된다. 두 행의 자리바꾸기는 이 둘을 조합해 얻을 수 있다.[4] 즉 한 행을 다른 행의 몇 배에 더해 주거나, 단위원을 곱하는 연산만이 허용된다. 두 행의 자리바꾸기는 이 둘을 조합해 얻을 수 있다.[5] 대신 이 리프트가 유일하지 않으므로, [math(R^r)