12月29日に書いた「部分歪対称関数の歪対称化」ですが、準備と計算が矢鱈に長ったらしくて、なんかショートカットがあるんじゃないか? という感じがしていました。年をまたぐ前にケリを付けたい。
本質的には同じことをするのですが、幾分かは短く出来ることが分かりました。置換の分解と符号〈偶奇性 | パリティ〉の簡単な性質だけから結果が出ます。使う用語・記法は「部分歪対称関数の歪対称化」と同じです。
最終的な形が少し変わります(言ってる内容は同じです)。
内容:
置換の分解、別な方法
という同型はどうも必要そうです。次のような1:1対応があるわけです。
「部分歪対称関数の歪対称化」では、上記の1:1対応を作るためにバブルアップ置換を使いました。今回はバブルアップ置換ではなくて、互換〈transposition〉を使います。i, j∈[0, p] に対して、i と j を入れ替える置換を互換と呼び τ(i, j) と書くことにします。
埋め込み emb:S([1, p]) → S([0, p]) は「部分歪対称関数の歪対称化」で述べたとおりです(自然な埋め込み)。置換の組み合わせ構成〈combination〉comb:[0, p] × S([1, p]) → S([0, p]) の定義を次のように変更します。
として絵を描くと次のようになります。
場合分けをプログラム風にキチンと書いてみます。関数〈写像〉の記述にラムダ記法を使っていて、/* ‥‥ */ はコメントです。
if (j = 0) then ρ := emb(σ) else /* 1 ≦ j ≦ p */ ρ := λi∈[0, p].( if (i = 0) then j /* 1 ≦ ρ(i) = j ≦ p */ elseif (σ(i) = j) then 0 /* ρ(i) = 0 */ else σ(i) /* ρ(i) = σ(i) */ endif ) endif
逆向きの対応は次のように書けます。
j := ρ(0) if (j = 0) then σ := λi∈[1, p].ρ(i) /* σ は ρ の [1, p] への制限 */ else σ := λi∈[1, p].( if (ρ(i) = 0) then j /* σ(i) = j */ else /* ρ(i) ≠ 0 のとき */ ρ(i) /* σ(i) = ρ(i) */ endif ) endif
このように定義した同型 により、S([0, p]) 上の総和は、[0, p] × S([1, p]) 上の総和に置き換え可能です。
念の為、互換の符号について言っておくと:
この事実から、次の形の等式が出てきます。
歪対称化作用素の計算
関数 f:X![0, p] → R は、先頭(0番目)を除く残りの変数に関しては歪対称だとします。次の総和を計算します。
置換の分解 ρ ←→ (j, σ) により、次のように書き換えられます。ここは前回と同じですが、 の定義は変更されています。
総和される を、 の定義に従い書き換えます。
と置けば:
長さが(p + 1)のタプル に emb(σ) を作用させるとは、 の先頭を除いた部分(rest部分)に σ を作用させることと同じであることに注意してください。
j は固定した状態で、σ∈S([1, p]) に渡って総和をとります。
ここで、fの部分歪対称性の仮定を使っています。
これを j = 0, 1, ..., p に渡って総和します。
これで求めていた結果が得られました。よいお年をお迎えください。