수론에서의 p-진수
📂정수론수론에서의 p-진수
정의
소수 p 와 정수 a∈Z 에 대해 다음과 같이 정의된 vp 를 a 의 p-진수 부치p-adic Valuation라 한다.
vp(a):=sup{e∈Z:pe∣a}
정리
- [0]: 모든 소수 p 에 대해
vp(0)=∞
- [1]: vp(xy)=vp(x)+vp(y)
- [2]: vp(x+y)≥min{vp(x),vp(y)}
- [3]: n∈N, x,y∈Z, 소수 p 가
gcd(n,p)=1p∣(x∓y)p∤xp∤y
를 만족하면
vp(xn±yn)=vp(x±y)
- [4]: x,y∈Z, 소수 p=2 가
p∣(x−y)p∤xp∤y
를 만족하면
vp(xp−yp)=vp(x−y)+1
- b∣a 는 b 가 a 의 약수임을 나타낸다.
- 부치賦値 란 값을 준다는 의미로, 순우리말로는 값매김이라도 순화된다. 둘 다 별로이므로 영어 그대로 Valuation 이라 읽는 것을 권장한다.
설명
학부 암호론을 들을 시절, 교재에서 모듈로 p 의 정수환을 나타낼 때 Zp 가 아니라 굳이 몫환꼴인 Z/pZ 을 사용하는 걸 보고 왜 그런지 교수님께 질문을 드린 적이 있다. 당시 교수님은 Zp 가 정수론에서는 p-진수의 연구라고 하는 큰 분과에서 주로 사용되기 때문에 그와 구분하기 위하기 위함이라고 답해주셨다. 진수를 공부한다는 것은 그만큼 정수론의 큰 막을 여는 일이 될지도 모르겠다.
p-진수 부치라는 것은 쉽게 말해 주어진 자연수에서 p 의 거듭제곱이 몇승으로 곱해져있는지를 보는 것과 다름 없다. 가령 소수 p=3 에 대해서 63=32⋅71 의 3-진수 부치는 v3(63)=2 고, v7(63)=1 이다. 한편 소인수분해를 했을 때 보이지 않는 수, 예로써 2-진수 부치는 자명하게도 20∣63 이므로 v2(63)=0 이다.
증명
[0]
b 가 a 의 약수라는 것, 다시 말해 b∣a 이라는 것은 ak=b 를 만족시키는 정수 k∈Z 가 존재한다는 것이다. 모든 e∈Z 에 대해 pe⋅k=0 를 만족시키는 k=0 이 존재하므로 sup{e∈Z:pe∣0}=∞ 이다.
■
[1]
vp(a) 는 a 에서 p 의 거듭제곱을 세는 것이므로, 당연히 vp(xy)=vp(x)+vp(y) 이 성립한다.
■
[2]
어떤 X,Y∈ 에 대해 x,y 를 다음과 같이 나타내보자.
x:=pvp(x)Xy:=pvp(y)Y
일반성을 잃지 않고, vp(x)≥vp(y) 라고 두면
x+y=pvp(y)(pvp(x)−vp(y)X+Y)
따라서 적어도 vp(x+y)≥vp(y) 를 얻는다.
■
[3]
Part 1.
xn−yn 을 인수분해하면
xn−yn=(x−y)(xn−1+xn−2y+⋯xyn−2+yn−1)
여기서 vp 의 정의에 따라 두번째 인수 ∑t=0n−1x(n−1)−tyt 가 p 를 약수로 가지지만 않으면 vp(xn−yn) 이나 vp(x−y) 이나 같다. 이를 수식으로 적으면 다음과 같다.
vp(xn−yn)=vp(x−y)
Part 2. vp(xn−yn)=vp(x−y)
p∣(x−y) 라고 가정했으므로 x−y≡0(modp) 이고, 즉 x≡y(modp) 이므로
t=0∑n−1x(n−1)−tyt≡≡t=0∑n−1x(n−1)−txtn⋅xn−1(modp)
그런데 p∤x 이고 gcd(n,p)=1 이라고 가정했으므로
t=0∑n−1x(n−1)−tyt≡0(modp)
따라서 다음을 얻는다.
vp(xn−yn)=vp(x−y)
Part 3. vp(xn+yn)=vp(x+y)
이미 Part 2.에서 얻은 등식에서 부호만 바뀌는 것에 지나지 않는다. y 대신 −y 를 대입하면
vp(xn−(−y)n)=vp(x−(−y))
즉, 다음을 얻는다.
vp(xn+yn)=vp(x+y)
■
[4]
Part 1.
vp(xp−yp)=vp(x−y)+1
라는 것은 (x−y) 와 (xp−yp) 를 소인수분해 했을 때 p 가 정확히 1 만큼 더 곱해져있다는 것과 동치다. 이를 보이기 위해 **증명[3]**과 마찬가지로 xp−yp 을 인수분해해보자.
xp−yp=(x−y)(xp−1+xp−2y+⋯xyp−2+yp−1)
p 가 정확히 1 만큼 더 곱해져있다는 것은 두번째 인수 ∑t=0p−1x(p−1)−tyt 가 다음과 같이 p 의 배수로는 나타나되 p2 의 배수로는 나타나지 않다는 것이다.
p∣t=0∑p−1x(p−1)−tytp2∤t=0∑p−1x(p−1)−tyt
Part 2. p∣∑t=0p−1x(p−1)−tyt
p∣(x−y) 라고 가정했으므로 x−y≡0(modp) 이고, 즉 x≡y(modp) 이므로
t=0∑p−1x(p−1)−tyt≡≡≡t=0∑p−1x(p−1)−txtp⋅xp−10(modp)
따라서 p∣∑t=0p−1x(p−1)−tyt 이다.
Part 3. p2∤∑t=0p−1x(p−1)−tyt
x≡y(modp) 이므로 어떤 k∈Z 에 대해 y=x+kp 로 둘 수 있다. t=1,⋯,p−1 와 같이 인덱스를 픽스해두고 x(p−1)−tyt 를 x 에 대해 전개해보면 (modp2) 에서
x(p−1)−tyt≡≡≡≡x(p−1)−t(x+kp)tx(p−1)−t(xt+txt−1kp+2t(t−1)xt−2k2⋅p2+⋯)x(p−1)−t(xt+txt−1kp)+O(p2)xp−1+tkpxp−2(modp2)
다시 원래의 급수로 돌아가보면
t=0∑p−1x(p−1)−tyt≡≡≡≡≡t=0∑p−1[xp−1+tkpxp−2]pxp−1+2p(p−1)kpxp−2pxp−1+2p−1kxp−2⋅p2pxp−1(modp2)0(modp2)
따라서 p2∣∑t=0p−1x(p−1)−tyt 이다.
■