p進数
Note
本wikiでは数学的詳細に立ち入らない
必要最低限の説明のみとする
ちゃんと書くと(前提知識がまあまあ多いので)教科書を書けてしまう
代わりに参考書を数冊挙げておくこととする
p進数の本質的な部分は触れていないので, 読まなくてもよい
Definition (informal)
$ pを素数, $ xを0でない有理数とするとき, 必ず$ x = a/b\cdot p^eの形で表せる ($ a, b, e\in\mathbb{Z}, $ 0\lt a). 特に$ a/b が既約分数, なおかつ $ \gcd(a, p) = \gcd(b, p) = 1になるような$ a, b, eの選び方は一意的に定まる (割り切れるまで割ることを考えればよい). この$ eを$ xのp進付値 (p-adic valuation) といい, $ e = v_p(x)と書く. なお$ v_p(0) = \inftyと約束する. 要するに「どのぐらい割り切れるか」を表す関数が$ v_pというわけである. 付値という言葉はとりあえず気にしなくてよい (加法付値・乗法付値の違いを意識して使うような場面が登場した場合や, p進位相を正しく使うようになった場合にはこの限りではない. 特に前者は永田可換体論や雪江代数3を持ち出すのが手っ取り早いまであるが, 本wikiでは踏み込まない).
Definition (formal)
$ \forall p\in\mathbb{P}. $ \forall x\in\mathbb{Q}. $ \exists! a, b, e\in\mathbb{Z}. $ 0\lt a\land x = a/b\cdot p^e\land \gcd(a, b) = \gcd(a, p) = \gcd(b, p) = 1
このとき$ v_p\colon \mathbb{Q}\to \mathbb{Z}\cup\lbrace\,\infty\,\rbrace. $ v_p(x) := \begin{cases}e & (x\ne 0)\cr\infty & (x = 0)\end{cases}.
計算用コード片
p進付値の性質
使うものだけ.
出典
Prop. 1 (formal)
$ \forall p\in\mathbb{P}. $ \forall n\in\mathbb{Z}. $ \forall k\in\mathbb{N}. $ k\leq v_p(n)\iff n\equiv 0\pmod {p^k}.
Proof.
$ n = 0の場合は明白. 以降$ n\ne 0とする.
以下それぞれ有理数として展開しているが, いずれの場合も分母は単数に限られる.
$ \Longrightarrow: $ \exists! a, b\in\mathbb{Z}. $ n \equiv a/b\cdot p^{v_p(n)}\land\gcd(a, b) = \gcd(a, p) = \gcd(b, p) = 1. $ v_p(n)\geq kより$ a/b\cdot p^{v_p(n)} \equiv 0\pmod {p^k}.
$ \Longleftarrow:
$ nは少なくとも$ p^kを約数にもつから$ \exists a, b\in\mathbb{Z}. $ n = a/b\cdot p^k\land \gcd(a, b) = \gcd(b, p) = 1\land 0\lt a.
$ \gcd(a, p) = 1なら$ v_p(n) = k.
$ \exists\ell\in\mathbb{N}. $ \gcd(a, p) = p^\ellの場合, $ a' := a/p^\ellに対し$ n = a'/b\cdot p^{k+\ell}かつ$ \gcd(a', p) = 1. したがって$ v_p(n) = k+\ell\geq k. $ \Box
Prop. 2 (formal)
$ \forall p\in\mathbb{P}. $ \forall x, y\in\mathbb{Q}.
1. $ v_p(xy) = v_p(x)+v_p(y).
2. $ v_p(x+y) \geq \min\lbrace\,v_p(x),v_p(y)\,\rbrace.
3. $ 0\ne x\implies v_p(1/x) = -v_p(x).
Proof.
$ \exists! a_x, b_x, a_y, b_y\in\mathbb{Z}. $ \gcd(a_x, b_x) = \gcd(a_x, p) = \gcd(b_x, p) = 1\land x = a_x/b_x\cdot p^{v_p(x)} かつ$ \gcd(a_y, b_y) = \gcd(a_y, p) = \gcd(b_y, p) = 1\land y = a_y/b_y\cdot p^{v_p(y)}.
$ 0\in \lbrace\,x, y\,\rbraceのとき, 一般性を失わず$ x = 0を仮定してよい. すると$ v_p(xy) = v_p(0) = \infty, $ v_p(x+y) = v_p(y) = \min\lbrace\,\infty, v_p(y)\,\rbraceであり成立. 以降 $ 0\notin\lbrace\,x, y\,\rbraceを仮定する.
1. $ xy = (a_xa_y)/(b_xb_y)p^{v_p(x)+v_p(y)}. ここで$ \gcd(a_xa_y, b_xb_y) = \gcd(a_xa_y, p) = \gcd(b_xb_y, p) = 1であることから$ v_p(xy) = v_p(x)+v_p(y).
2. $ t := \min\lbrace\,v_p(x),v_p(y)\,\rbraceとおく.
$ \begin{aligned}x+y &= a_x/b_x\cdot p^{v_p(x)} + a_y/b_y\cdot p^{v_p(y)}\cr &= (a_xb_yp^{v_p(x)} + a_yb_xp^{v_p(y)}) / (b_yb_x)\cr &= (a_xb_yp^{v_p(x) - t} + a_yb_xp^{v_p(y) - t}) / (b_yb_x)\cdot p^t\end{aligned}
$ x+y\bmod p^t = 0とProp. 1より$ t\leq v_p(x+y).
3. $ x = a_x/b_x\cdot p^{v_p(x)}より$ 1/x = b_x/a_x\cdot p^{-v_p(x)}. $ \Box