§1はじめに
符号理論における基本定理の一つに,MacWilliams恒等式があります. E を座標集合とする有限体 Fq 上の線形符号 C≤FqE に対して,その双対符号
C⊥={u∈FqE:u⋅c=0 for all c∈C}
の重み多項式は,C の重み多項式から次のように計算できます:
WC⊥(X,Y)=∣C∣1WC(X+(q−1)Y,X−Y).
これがMacWilliams恒等式です.
この連載では,MacWilliams恒等式の証明を手掛かりに, 周辺分野・周辺概念への入門を試みます. そのため,本連載では以下のような読者を対象としています:
符号理論の初歩,具体的には
程度は既知であることを前提としています (MacWilliams恒等式の証明は知らなくても問題ありません).
この連載では,MacWilliams恒等式の証明手法を大きく次の五つの系統に分けて眺めます.
今回の証明は,このうち「Fourier・指標・Poisson系」に属します. ただし,本稿の主役は指標論そのものではありません. 今回の目標は,MacWilliams恒等式の証明を案内役として, テンソル積に入門することです.
MacWilliams恒等式の標準的な証明では, 各座標ごとに現れる一つの変換を,長さ n の空間全体に拡張します. この「一座標の変換を,すべての座標へ同時に広げる」操作を最も自然に書く言葉が, テンソル積です. テンソル積を使うと,長さ n の語
(c1,…,cn)∈Fqn
を,一座標ごとの基底ベクトルの積
ec1⊗⋯⊗ecn
として扱えます. そして,一座標の線形写像 H は,長さ n の空間上では
H⊗n=n 個H⊗⋯⊗H
として作用します.
この見方を使うと,MacWilliams恒等式は次のように読めます.
符号 C を,語に対応する基底ベクトルの和としてベクトル化する. 一座標のHadamard型変換をテンソル積で全座標に作用させると, そのベクトルは双対符号 C⊥ の符号ベクトルの ∣C∣ 倍へ移る. その後,各基底ベクトルを単項式へ読み替えると,重み多項式の変数変換が現れる.
今回の流れは次のようになります.
テンソル積 → テンソル積線形写像 → 語のテンソル表示 → 符号ベクトル → 完全重み多項式 → MacWilliams恒等式
テンソル積は,多重線形代数の基本的な道具です. 多重線形代数の標準的な参考文献としては Greub [Gre78] があり, 線形代数の発展的な教科書としては Roman [Rom08] などがあります. 本稿では一般論をすべて展開するのではなく, MacWilliams恒等式の証明に必要な範囲に絞って, 「基底を持つ有限次元ベクトル空間のテンソル積」を具体的に扱います.
§2一座標の情報から多座標の情報へ
まず,なぜテンソル積が自然に現れるのかを見ておきます.
有限なアルファベット集合 A を考えます. 後で A=Fq としますが,今は単なる有限集合だと思ってください. 一座標の値は A の元です. 長さ n の語は
An={(a1,…,an):ai∈A}
の元です.
一座標の情報を扱うために,各アルファベット a∈A に対して 基底ベクトル ea を用意します.つまり,複素ベクトル空間 U:=CA を,基底 {ea∈U:a∈A} を持つベクトル空間として考えます. ここで CA は, アルファベット集合 A 上の複素数値関数全体と見てもよいですが, 本稿では「A の元で添字づけられた基底を持つベクトル空間」と見ます.
長さ n の語 a=(a1,…,an)∈An に対して,対応する基底ベクトルを ea=ea1⊗⋯⊗ean と書きたいのですが,このために必要となる空間が
U⊗n=n 個U⊗⋯⊗U
です.
すると,次の対応が得られます.
長さ n の語 (a1,…,an)∈An ↔ n 個の基底ベクトルのテンソル積 ea1⊗⋯⊗ean∈U⊗n.
さらに,一座標の線形変換 H:U→U が与えられたとき, それを全座標に同時に作用させる変換は
H⊗n:U⊗n→U⊗n
です. これは純テンソルに対して
H⊗n(u1⊗⋯⊗un)=H(u1)⊗⋯⊗H(un)
と作用します.
この「一座標のものを n 座標へ広げる」ための言葉がテンソル積です. MacWilliams恒等式のテンソル積証明では, 一座標のHadamard型変換を n 回テンソル積し, それを符号全体を表すベクトルに作用させます.
§3テンソル積の定義:基底で作る
テンソル積には抽象的な定義が比較的主流ですが, 本稿では有限次元ベクトル空間に基底を選んだ具体的な定義から始めます.
定義3.1.
U, V を複素数体 C 上の有限次元ベクトル空間とする. U の基底を e1,…,er とし, V の基底を f1,…,fs とする. このとき,U と V のテンソル積 (tensor product) U⊗V とは, 記号
ei⊗fj(1≤i≤r,1≤j≤s)
を基底に持つ複素ベクトル空間のことである.
この定義からすぐに
dimC(U⊗V)=dimCU⋅dimCV
が分かります. つまり,r 次元の空間と s 次元の空間をテンソル積すると, rs 次元の空間ができます.
任意のベクトル
u=i=1∑rαiei∈U,v=j=1∑sβjfj∈V
に対して,u⊗v∈U⊗V を
u⊗v=i=1∑rj=1∑sαiβj(ei⊗fj)
で定めます.この形の元を純テンソル (pure tensor) と呼びます.
定義から,次の双線形性が成り立ちます:
(u+u′)⊗vu⊗(v+v′)(λu)⊗v=u⊗v+u′⊗v,=u⊗v+u⊗v′,=u⊗(λv)=λ(u⊗v).
ここで λ∈C です. つまり,テンソル積は各変数について線形です.
ただし,U⊗V の任意の元が一つの純テンソル u⊗v として書けるわけではありません. 一般の元は,純テンソルの有限和として書けます. たとえば
e1⊗f1+e2⊗f2
は,通常,一つの純テンソルには分解できません. この点は,テンソル積に慣れるうえで重要です.
例3.2.
U=C2 の基底を e0,e1 とし, V=C3 の基底を f0,f1,f2 とする. このとき U⊗V は,次の六つの基底を持つ:
e0⊗f0,e0⊗f1,e0⊗f2,e1⊗f0,e1⊗f1,e1⊗f2.
したがって dim(U⊗V)=6 である.
上の定義は基底に依存しているように見えます. 実際,具体的な構成では基底を使いました. しかし,基底の取り方を変えても,得られるテンソル積は自然な同型を除いて同じものになります. この基底に依存しない特徴づけが,次の普遍性です.
定義3.3.
U, V, W を複素ベクトル空間とする. 写像 B:U×V→W が 双線形 (bilinear) であるとは, u を固定すると v↦B(u,v) が線形であり, v を固定すると u↦B(u,v) が線形であることをいう.
定理3.4(テンソル積の普遍性).
U, V を上で基底を選んで構成した有限次元ベクトル空間とする. このとき,任意の複素ベクトル空間 W と任意の双線形写像 B:U×V→W に対して, ただ一つの線形写像 B:U⊗V→W が存在して,
B(u⊗v)=B(u,v)(u∈U,v∈V)
が成り立つ.
証明
U の基底を e1,…,er, V の基底を f1,…,fs とする. U⊗V は ei⊗fj を基底に持つので, 線形写像 B を定めるには,基底上の値を決めれば十分である. そこで
B(ei⊗fj)=B(ei,fj)
と定め,線形に延長する.
u=∑iαiei,v=∑jβjfj と書くと,
B(u⊗v)=B(i,j∑αiβj(ei⊗fj))=i,j∑αiβjB(ei,fj)=B(i∑αiei,j∑βjfj)=B(u,v).
最後の等号では B の双線形性を使った.
一意性は,ei⊗fj が U⊗V の基底であり, それぞれ ei⊗fj が純テンソルであることから従う. つまり,B(ei⊗fj) は B(ei,fj) でなければならない.
証明終わり□
この定理は,テンソル積を
双線形な操作を線形な操作として扱えるようにする装置
と見るための基本原理です. 本稿のMacWilliams恒等式の証明では, 座標ごとの積
i=1∏nZci
をテンソル積上の線形写像として扱います. この「積を線形化する」感覚が,テンソル積の大事な役割です.
§4多くのベクトル空間のテンソル積
長さ n の語を扱うには,二つの空間だけでなく,n 個の空間のテンソル積が必要です.
同じベクトル空間 U を n 個用意したとき,そのテンソル積を
U⊗n=n 個U⊗⋯⊗U
と書きます. U の基底が {ea∈U:a∈A} であるとします. このとき U⊗n は
ea1⊗⋯⊗ean((a1,…,an)∈An)
を基底に持ちます. したがって
dimU⊗n=∣A∣n
です.
この基底は,長さ n の語と一対一に対応しています. そこで,a=(a1,…,an)∈An に対して
ea:=ea1⊗⋯⊗ean
と略記します.すると {ea∈U⊗n:a∈An} は U⊗n の基底です.
以後,座標集合 E が一般の有限集合であっても,記法を軽くするため
U⊗E=i∈E⨂U
と書きます. 厳密にはテンソル積を書くには座標の順序を一つ選びますが, 本稿の計算は座標の並べ方に依存しません. 読者は E={1,…,n} と考えて読んで問題ありません.
§5テンソル積線形写像とKronecker積
テンソル積で重要なのは,ベクトルだけでなく線形写像もテンソル積できることです.
定義5.1.
A:U→U′ と B:V→V′ を線形写像とする. このとき,線形写像
A⊗B:U⊗V→U′⊗V′
を,純テンソル上で
(A⊗B)(u⊗v)=A(u)⊗B(v)
と定める.これを A と B のテンソル積線形写像 (tensor product linear map) という.
この定義が一意的に線形写像を定めるのは, 右辺が (u,v) に関して双線形であり, 定理 3.4(テンソル積の普遍性)U, V を上で基底を選んで構成した有限次元ベクトル空間とする. このとき,任意の複素ベクトル空間 W と任意の双線形写像 B:U×V→W に対して, ただ一つの線形写像 B:U⊗V→W が存在して,
B(u⊗v)=B(u,v)(u∈U,v∈V)
が成り立つ.定理 3.4 が使えるからです.
同じ線形写像 H:U→U を n 個テンソル積したものを
H⊗n=n 個H⊗⋯⊗H
と書きます. 純テンソルに対しては
H⊗n(u1⊗⋯⊗un)=H(u1)⊗⋯⊗H(un)
です.
行列で見ると,テンソル積線形写像はKronecker積になります. 例えば
A=(a11a21a12a22),B=(b11b21b12b22)
なら,
A⊗B=(a11Ba21Ba12Ba22B)
です.つまり,
A⊗B=a11b11a11b21a21b11a21b21a11b12a11b22a21b12a21b22a12b11a12b21a22b11a22b21a12b12a12b22a22b12a22b22
です. 文献によっては,この行列を A⊗B のKronecker積と呼びます.
Kronecker積の行列計算そのものについては, Horn–Johnson [HJ91, Chapter 4] が標準的な参考文献です. また,応用も含めた概観としては Van Loan [Van00] も読みやすいとされています. 本稿で必要なのは,テンソル積線形写像を基底で表示すると Kronecker積になる,という一点です.
例5.2(二元の場合のHadamard行列).
F2={0,1} の一座標変換として
H2=(111−1)
を考える. 行と列を 0, 1 で添字づけると,これは
(H2)a,b=(−1)ab(a,b∈F2)
と書ける.
長さ二の語に対する変換は H2⊗H2 である. 語を,行も列も 00, 01, 10, 11 の順に並べ, 行を u,列を c で添字づけて見る.
H2⊗H2=11111−11−111−1−11−1−11.
この行列の (u,c) 成分は
(−1)u⋅c
である.つまり,一座標の行列をテンソル平方すると, 長さ 2 の内積に対応する行列が現れる.
この例が,今回の証明の雛形です. 一般の Fq でも,一座標のHadamard型行列を作り, それをテンソル積することで,長さ n の空間全体に作用する変換を作ります.
§6有限体の一座標Hadamard型変換
ここから有限体 Fq に戻ります. q=pm と書きます. 有限体 Fq は,素体 Fp 上の m 次元ベクトル空間と見ることができます.
そこで,Fp 上における Fq の基底 β1,…,βm を一つ選びます. すると任意の x∈Fq は一意的に
x=x1β1+⋯+xmβm(xi∈Fp)
と書けます.
ζ:=exp(2π−1/p) とおき, x の第1座標 x1 を用いて
θ(x):=ζx1
と定めます. ここで x1∈Fp は,代表元 0,1,…,p−1 と見て指数に入れています.
この関数 θ:Fq→C× は, 次の二つの性質を持ちます:
θ(x+y)=θ(x)θ(y),θ(β1)=ζ=1.
つまり,θ は足し算を掛け算に変える,非定数関数です .本稿で必要なのは,この二つの性質だけです.
MacWilliams恒等式のテンソル積証明で必要になる指標の性質は,次の一つです.
補題6.1.
b∈Fq に対して
a∈Fq∑θ(ab)={q,0,b=0,b=0
が成り立つ.
証明
b=0 なら,すべての a に対して θ(ab)=θ(0)=1 なので,和は q である.
b=0 とする. このとき a↦ab は Fq の全単射なので,
a∈Fq∑θ(ab)=t∈Fq∑θ(t)
である.右辺を S とおく.
t が Fq 全体を動くとき, t+β1 も Fq 全体を動く.したがって
S=t∈Fq∑θ(t+β1)=t∈Fq∑θ(t)θ(β1)=θ(β1)S.
ところが θ(β1)=ζ=1 なので,S=0 である.
証明終わり□
一座標の複素ベクトル空間を U=CFq とし, 基底を {ea∈U:a∈Fq} とします. 一座標のHadamard型変換 H:U→U を,基底上で
H(eb):=a∈Fq∑θ(ab)ea(b∈Fq)
と定めます. 行列で書けば,行と列を Fq の元で添字づけた
Ha,b=θ(ab)
という q×q 行列です.
この行列は,有限体上のFourier行列です. ただし本稿では,Fourier解析そのものではなく, この一座標行列をテンソル積で全座標へ拡張する過程に注目します.
命題6.2.
H の列は互いに直交し,
H∗H=qI
が成り立つ.
証明
列 b と列 b′ の内積は
a∈Fq∑θ(ab)θ(ab′)=a∈Fq∑θ(a(b′−b)).
ここで,θ(x)=θ(−x) を用いた. 補題 6.1b∈Fq に対して
a∈Fq∑θ(ab)={q,0,b=0,b=0
が成り立つ.補題 6.1 より,これは
{q,0,b=b′,b=b′
である. よって H∗H=qI である.
証明終わり□
この命題は,H がHadamard行列の有限体版であることを示しています. 正規化すれば q−1/2H はユニタリ行列になります. しかし,MacWilliams恒等式そのものには,このユニタリ性よりも, 後で見る「符号ベクトルを双対符号ベクトルへ送る」という性質が重要です.
§7語と符号をテンソル積の中で見る
以後,E を有限座標集合とし,n=∣E∣ とします. 説明を簡単にするため,必要に応じて E={1,…,n} と考えてください.
一座標空間 U=CFq から,多座標空間
U⊗E=i∈E⨂U
を作ります.語 v=(vi)i∈E∈FqE に対して
ev:=i∈E⨂evi
と書きます.すると
{ev∈U⊗E:v∈FqE}
は U⊗E の基底です.
定義7.1.
符号 C≤FqE に対して,
γC:=c∈C∑ec∈U⊗E
と定める.これを C の符号ベクトル (code vector) と呼ぶことにする.
符号ベクトル γC は,符号語をすべて基底ベクトルとして足し合わせたものです. これは符号 C の指示関数を,基底ベクトルの和として書いたものだと思えます. 例えば C={00,11}≤F22 なら
γC=e00+e11=e0⊗e0+e1⊗e1
です.
一座標変換 H を全座標へ広げたものを
H⊗E=i∈E⨂H:U⊗E→U⊗E
と書きます.基底ベクトル ec への作用を計算すると,
H⊗E(ec)=i∈E⨂H(eci)=i∈E⨂ui∈Fq∑θ(uici)eui=u∈FqE∑(i∈E∏θ(uici))eu=u∈FqE∑θ(i∈E∑uici)eu=u∈FqE∑θ(u⋅c)eu.
ここで u⋅c=∑i∈Euici です.
この式が,テンソル積証明の中心です. 一座標では θ(ab) という係数が出ていました. テンソル積を取ると,座標ごとの係数が掛け合わされ, 加法指標の性質によって
i∈E∏θ(uici)=θ(i∈E∑uici)
となります. つまり,テンソル積によって座標ごとの係数が掛け合わされ, さらに θ の性質によって,その積が長さ n の内積 u⋅c を含む係数 θ(u⋅c) にまとめられます.
§8テンソル積変換は符号を双対符号へ送る
前節の計算を符号ベクトル γC に適用します. すると
H⊗EγC=c∈C∑H⊗Eec=c∈C∑u∈FqE∑θ(u⋅c)eu=u∈FqE∑(c∈C∑θ(u⋅c))eu.
したがって,係数として
c∈C∑θ(u⋅c)
が現れます.この和は,u が C⊥ に入っているかどうかを判定します.
補題8.1.
任意の u∈FqE に対して
c∈C∑θ(u⋅c)={∣C∣,0,u∈C⊥,u∈/C⊥
が成り立つ.
証明
u∈C⊥ なら,任意の c∈C に対して u⋅c=0 である. したがって各項は θ(0)=1 であり,和は ∣C∣ である.
次に u∈/C⊥ とする. このとき,ある c0∈C が存在して d=u⋅c0=0 となる. d=0 なので,a↦ad は Fq の全単射である. よって,ある a∈Fq が存在して ad=β1 となる.したがって
θ(ad)=θ(β1)=ζ=1.
和を S:=c∈C∑θ(u⋅c) とおく. C は線形符号なので ac0∈C であり, c が C 全体を動くとき,c+ac0 も C 全体を一度ずつ動く. よって
S=c∈C∑θ(u⋅(c+ac0))=c∈C∑θ(u⋅c)θ(a(u⋅c0))=θ(ad)S.
いま θ(ad)=1 なので,S=0 である.
証明終わり□
証明
上で計算したように,
H⊗EγC=u∈FqE∑(c∈C∑θ(u⋅c))eu
である. 補題 8.1任意の u∈FqE に対して
c∈C∑θ(u⋅c)={∣C∣,0,u∈C⊥,u∈/C⊥
が成り立つ.補題 8.1 より,内側の和は u∈C⊥ のとき ∣C∣,そうでないとき 0 である. したがって
H⊗EγC=∣C∣u∈C⊥∑eu=∣C∣γC⊥
となる.
証明終わり□
この定理は,今回の証明の線形代数的な核心です. MacWilliams恒等式を多項式の恒等式として見る前に, テンソル積空間の中では次の単純な等式が成り立っています:
H⊗EγC=∣C∣γC⊥.
つまり,一座標のHadamard型変換を全座標にテンソル積で作用させると, 符号 C を表すベクトルが,双対符号 C⊥ を表すベクトルへ移ります.
§9完全重み多項式:テンソルを単項式へ読む
ここまでで,符号をテンソル積空間のベクトルとして扱いました. 次に,このベクトルを多項式へ読み替えます. このとき自然に現れるのが完全重み多項式です.
通常のHamming重み多項式では,各座標について
0↦X,非零元↦Y
とだけ区別します. 一方,完全重み多項式では,有限体の各元ごとに別々の変数を用意します.
定義9.1.
各 a∈Fq に対して変数 Za を用意する. 符号 C≤FqE の完全重み多項式 (complete weight enumerator) を
cweC((Za)a∈Fq)=c∈C∑i∈E∏Zci
で定める.
完全重み多項式とMacWilliams恒等式については, MacWilliams–Sloane [MS77, Chapters 5 and 19] が古典的な標準文献です.
通常のHamming重み多項式は,完全重み多項式の特殊化です. 実際,
Z0=X,Za=Y(a=0)
と置くと,
i∈E∏Zci=Xn−wt(c)Ywt(c)
です. したがって
WC(X,Y)=cweC((Za))Z0=X, Za=Y (a=0)
となります.
テンソル積の言葉では,完全重み多項式はとても自然です. 一座標の空間 U から多項式環
R=C[Za:a∈Fq]
への線形写像
m1:U→R
を
m1(ea)=Za
で定めます. すると,テンソル積の普遍性により,E 座標版の線形写像 mE:U⊗E→R を
mE(i∈E⨂eci)=i∈E∏Zci
で定めることができます. つまり,
mE(ec)=i∈E∏Zci
です.この線形写像が,テンソルを単項式として読む写像です.
この記号を使うと,
cweC((Za))=mE(γC)
となります. 符号ベクトル γC を,基底ベクトルを単項式へ送る写像 mE で読むと, 完全重み多項式が出てくるわけです.
§10完全重み多項式版MacWilliams恒等式
定理 8.2符号ベクトルに対して
H⊗EγC=∣C∣γC⊥
が成り立つ.定理 8.2 を完全重み多項式に翻訳します.
まず,一座標の変数変換を定義します. b∈Fq に対して
ZbH:=a∈Fq∑θ(ab)Za
とおきます. これは,H(eb) を m1 で読んだものです. 実際,
m1(H(eb))=m1a∈Fq∑θ(ab)ea=a∈Fq∑θ(ab)Za=ZbH.
今,
H⊗Eec=i∈E⨂ui∈Fq∑θ(uici)eui
なので,これを展開して mE で読むと
mE(H⊗Eec)=u∈FqE∑(i∈E∏θ(uici))i∈E∏Zui=i∈E∏ui∈Fq∑θ(uici)Zui=i∈E∏ZciH
が成り立ちます.
定理10.1(完全重み多項式版MacWilliams恒等式).
C≤FqE を線形符号とする. このとき
cweC⊥((Za)a∈Fq)=∣C∣1cweC((ZbH)b∈Fq)
が成り立つ. ここで
ZbH=a∈Fq∑θ(ab)Za
である.
証明
定理 8.2符号ベクトルに対して
H⊗EγC=∣C∣γC⊥
が成り立つ.定理 8.2 より
H⊗EγC=∣C∣γC⊥
である.両辺に mE を適用すると,
mE(H⊗EγC)=∣C∣mE(γC⊥)=∣C∣cweC⊥((Za)).
一方,
mE(H⊗EγC)=c∈C∑mE(H⊗Eec)=c∈C∑i∈E∏ZciH=cweC((ZbH)b∈Fq).
よって
∣C∣cweC⊥((Za))=cweC((ZbH)b∈Fq)
であり,両辺を ∣C∣ で割ればよい.
証明終わり□
これはHamming重み多項式のMacWilliams恒等式より少し強い形です. 完全重み多項式の変数変換を,テンソル積線形写像 H⊗E から得ています.
§11Hamming重み多項式への特殊化
完全重み多項式版の恒等式を,Hamming重み多項式へ特殊化します. 変数を
Z0=X,Za=Y(a=0)
と置きます.
まず b=0 の場合を計算します.
Z0H=a∈Fq∑θ(a⋅0)Za=a∈Fq∑Za=X+(q−1)Y.
次に b=0 とします. このとき
ZbH=a∈Fq∑θ(ab)Za=X+Ya∈Fq×∑θ(ab).
補題 6.1b∈Fq に対して
a∈Fq∑θ(ab)={q,0,b=0,b=0
が成り立つ.補題 6.1 より
a∈Fq∑θ(ab)=0
なので,
a∈Fq×∑θ(ab)=−θ(0)=−1.
したがって
ZbH=X−Y(b=0)
です.
したがって,完全重み多項式版MacWilliams恒等式
cweC⊥((Za))=∣C∣1cweC((ZbH))
に特殊化を施すと, 左辺は
WC⊥(X,Y)
となり,右辺は
∣C∣1WC(X+(q−1)Y,X−Y)
となります.
これで通常のHamming重み多項式に対するMacWilliams恒等式
WC⊥(X,Y)=∣C∣1WC(X+(q−1)Y,X−Y)
が得られました.
テンソル積証明が何をしているかを, 符号長 2 の二元反復符号で確認します.
C={00,11}≤F22
とします. F2 の非自明加法指標は
θ(a)=(−1)a
です. 一座標のHadamard型行列は
H2=(111−1)
です.
符号ベクトルは
γC=e00+e11=e0⊗e0+e1⊗e1
です. この符号は自己双対なので,C⊥=C です. 実際,u=(u1,u2) が 11 と直交する条件は
u1+u2=0
であり,これは u=00 または u=11 を意味します.
H2⊗H2 を γC に作用させます. まず
(H2⊗H2)e00=(e0+e1)⊗(e0+e1)=e00+e01+e10+e11,
また
(H2⊗H2)e11=(e0−e1)⊗(e0−e1)=e00−e01−e10+e11.
したがって
(H2⊗H2)γC=2e00+2e11=2γC=∣C∣γC⊥.
これは 定理 8.2符号ベクトルに対して
H⊗EγC=∣C∣γC⊥
が成り立つ.定理 8.2 の具体例です.
完全重み多項式は
cweC(Z0,Z1)=Z02+Z12
です. 一座標の変数変換は
Z0H=Z0+Z1,Z1H=Z0−Z1
です. したがって
∣C∣1cweC(Z0H,Z1H)=21((Z0+Z1)2+(Z0−Z1)2)=Z02+Z12=cweC⊥(Z0,Z1).
最後に Z0=X, Z1=Y とすれば
WC(X,Y)=X2+Y2
に対するMacWilliams恒等式が得られます.
§13この証明でテンソル積は何をしていたか
証明の中でテンソル積が担っていた役割を整理しておきます.
第一に,テンソル積は語を基底ベクトルとして表しました. 一座標の基底を
{ea:a∈Fq}
とすると,長さ n の語 c=(ci) は
ec=i∈E⨂eci
として表されます. これにより,符号 C は
γC=c∈C∑ec
という一つのベクトルになります.
第二に,テンソル積は一座標の変換を全座標へ広げました. 一座標のHadamard型変換
H(eb)=a∈Fq∑θ(ab)ea
を,長さ n の空間上では
H⊗E
として作用させました. その結果,
H⊗Eec=u∈FqE∑θ(u⋅c)eu
が得られました. 座標ごとの係数 θ(uici) が掛け合わされることで, 全体の内積 u⋅c が現れます.
第三に,テンソル積は完全重み多項式を自然に作りました. 一座標で
ea↦Za
と読めば,テンソル積上では
ec1⊗⋯⊗ecn↦Zc1⋯Zcn
となります. これにより,符号ベクトル γC を完全重み多項式
cweC((Za))=c∈C∑i∈E∏Zci
として読めました.
つまり,今回の証明ではテンソル積が
という三つの役割を果たしていました.
§14この回で見た概念
この回では,MacWilliams恒等式の証明を目標にしながら, テンソル積線形代数の基本的な道具を導入しました. 整理すると次のようになります.
- テンソル積
ベクトル空間 U,V から作るベクトル空間 U⊗V です. 基底 ei と fj を選ぶと,ei⊗fj が基底になります.
- 純テンソル
u∈U,v∈V から作られる元 u⊗v∈U⊗V です. 一般のテンソルは純テンソルの和として書けますが, 一つの純テンソルとして書けるとは限りません.
- 普遍性
テンソル積は,双線形写像を線形写像として扱うための装置です. 双線形写像 B:U×V→W は, 一意的な線形写像 B:U⊗V→W に対応します.
- テンソル積線形写像
線形写像 A:U→U′ と B:V→V′ から, 線形写像 A⊗B:U⊗V→U′⊗V′ が得られます. 純テンソル上では
(A⊗B)(u⊗v)=A(u)⊗B(v)
と作用します.
- Kronecker積
基底を選んで行列で表したテンソル積線形写像です. 一座標の行列を n 回Kronecker積すると,長さ n の語全体に作用する行列が得られます.
- 符号ベクトル
符号 C を
γC=c∈C∑ec
というテンソル積空間のベクトルとして表したものです.
- 完全重み多項式
有限体の各元 a∈Fq に変数 Za を割り当てた重み多項式です. テンソル積上では,ec を ∏iZci に送る線形写像から得られます.
- Hadamard型変換
非自明加法指標 θ を用いて
H(eb)=a∈Fq∑θ(ab)ea
で定まる一座標の線形変換です. そのテンソル積 H⊗E が,符号ベクトルを双対符号ベクトルの ∣C∣ 倍へ送ります.
テンソル積は,抽象的に見えることも多い道具ですが, 今回の証明ではかなり具体的に現れました. 一座標の基底,一座標の変換,一座標の変数読み替えを, すべての座標へ同時に拡張するためにテンソル積を使った,ということです.
§15今回の系統の振り返り
冒頭で述べたように,今回の証明は
Fourier・指標・Poisson系
に属します. 表面的には,テンソル積とKronecker積を使った線形代数的証明です. しかし,深いところでは,一座標のHadamard型変換
Ha,b=θ(ab)
を使っており,これは有限体上のFourier変換の行列表示です. 有限Fourier変換と符号の重み多項式恒等式との関係を より発展的な立場から見る文献としては, Tolimieri [Tol85] が挙げられます. 本稿ではその全体には立ち入らず, 一座標のFourier行列をテンソル積で多座標化する部分だけを 初等的に取り出しています.
今回の証明の要点は,次の一文にまとめられます.
一座標のFourier行列をテンソル積で全座標に作用させると, 符号ベクトル γC は双対符号ベクトル ∣C∣γC⊥ へ写る.
この見方では,MacWilliams恒等式は
H⊗EγC=∣C∣γC⊥
というテンソル積空間上の線形代数的な等式を, 完全重み多項式へ読み替えたものです. 通常のHamming重み多項式に対する恒等式は, 完全重み多項式版の恒等式を
Z0=X,Za=Y(a=0)
で特殊化した結果です.
したがって,今回の証明は指標論的証明と非常に近い位置にあります. 違いは,指標和を直接計算するのではなく, 一座標の指標和を行列 H として包み込み, それをテンソル積によって多座標化した点です. 同じFourier的な原理であっても, テンソル積の言葉で書くと, 「局所的な変換を全体へ持ち上げる」という構造がはっきり見えます.
§16次回へ
次回は,MacWilliams恒等式をKrawtchouk多項式の言葉で見直します.
今回のテンソル積証明では,完全重み多項式を使いました. つまり,有限体の各元 a∈Fq ごとに変数 Za を用意し, 一座標のFourier行列をそのまま変数変換として使いました.
一方,通常のHamming重み多項式では,非零元をすべて同じ変数 Y でまとめます. その結果,完全重み多項式の細かな情報は忘れられ, 重み
0,1,…,n
ごとの係数だけが残ります. この「重みだけを見た係数変換」として現れるのがKrawtchouk多項式です.
次回は,MacWilliams恒等式を
Aj(C⊥)=∣C∣1i=0∑nAi(C)Kj(i)
という係数レベルの変換として眺め, Krawtchouk多項式に入門します.
参考文献
- [Gre78] Werner Greub. Multilinear algebra. Springer-Verlag, New York-Heidelberg, pp. vii+294, 1978 引用箇所テンソル積は,多重線形代数の基本的な道具です. 多重線形代数の標準的な参考文献としては Greub [Gre78] があり, 線形代数の発展的な教科書としては Roman [Rom08] などがあります. 本稿では一般論をすべて展開するのではなく, MacWilliams恒等式の証明に必要な範囲に絞って, 「基底を持つ有限次元ベクトル空間のテンソル積」を具体的に扱います.↩
- [Rom08] Steven Roman. Advanced linear algebra. Springer, New York, vol. 135, pp. xviii+522, 2008 引用箇所テンソル積は,多重線形代数の基本的な道具です. 多重線形代数の標準的な参考文献としては Greub [Gre78] があり, 線形代数の発展的な教科書としては Roman [Rom08] などがあります. 本稿では一般論をすべて展開するのではなく, MacWilliams恒等式の証明に必要な範囲に絞って, 「基底を持つ有限次元ベクトル空間のテンソル積」を具体的に扱います.↩
- [HJ91] Roger A. Horn and Charles R. Johnson. Topics in matrix analysis. Cambridge University Press, Cambridge, pp. viii+607, 1991. doi:10.1017/CBO9780511840371 引用箇所Kronecker積の行列計算そのものについては, Horn–Johnson [HJ91, Chapter 4] が標準的な参考文献です. また,応用も含めた概観としては Van Loan [Van00] も読みやすいとされています. 本稿で必要なのは,テンソル積線形写像を基底で表示すると Kronecker積になる,という一点です.↩
- [Van00] Charles F. Van Loan. The ubiquitous Kronecker product. J. Comput. Appl. Math., vol. 123, no. 1-2, pp. 85–100, 2000. doi:10.1016/S0377-0427(00)00393-9 引用箇所Kronecker積の行列計算そのものについては, Horn–Johnson [HJ91, Chapter 4] が標準的な参考文献です. また,応用も含めた概観としては Van Loan [Van00] も読みやすいとされています. 本稿で必要なのは,テンソル積線形写像を基底で表示すると Kronecker積になる,という一点です.↩
- [MS77] F. J. MacWilliams and N. J. A. Sloane. The theory of error-correcting codes. II. North-Holland Publishing Co., Amsterdam-New York-Oxford, vol. Vol. 16, pp. i–ix and 370–762, 1977 引用箇所完全重み多項式とMacWilliams恒等式については, MacWilliams–Sloane [MS77, Chapters 5 and 19] が古典的な標準文献です.↩
- [Tol85] R. Tolimieri. The algebra of the finite Fourier transform and coding theory. Trans. Amer. Math. Soc., vol. 287, no. 1, pp. 253–273, 1985. doi:10.2307/2000409 引用箇所を使っており,これは有限体上のFourier変換の行列表示です. 有限Fourier変換と符号の重み多項式恒等式との関係を より発展的な立場から見る文献としては, Tolimieri [Tol85] が挙げられます. 本稿ではその全体には立ち入らず, 一座標のFourier行列をテンソル積で多座標化する部分だけを 初等的に取り出しています.↩