補題:32bit符号なし整数変数間の算術和演算をブール関数で表す

初期seedから日時を求める無謀な挑戦 - Plus Le Toolのための補題
使う記号の定義は[id:plusletool:20130427:p2]参照。

補題:32bit符号なし整数変数間の演算をブール関数で表す - Plus Le Toolの続きみたいなもの。
今回の内容はうまく説明できないものが多いから、証明や計算過程はほとんど省略しちゃった(・ω<)テヘペロ
少し考えれば分かると思うので各自考えてね(投げやり

補題:32bit符号なし整数変数間の演算をブール関数で表す - Plus Le Toolより抜粋。

[id:plusletool:20130505:p1](*30)再掲
X\equiv P+Q\;\pmod{2^{32}}

(*30)をbit単位で計算する場合、(*31)のように書ける。ただし \left\{c_{i}\right\} は繰り上がり項で、(*32)のように漸化式で表される。
(証明はしないけど「全加算器」あたりで検索すればたくさん出るはず。)

[id:plusletool:20130505:p1](*31)再掲
\begin{array}{lclclcl}x_{1}&=&p_{1}&\oplus&q_{1}&\oplus&c_{1}\\x_{2}&=&p_{2}&\oplus&q_{2}&\oplus&c_{2}\\&\vdots&&&&&\\x_{32}&=&p_{32}&\oplus&q_{32}&\oplus&c_{32}\end{array}

[id:plusletool:20130505:p1](*32)再掲
\begin{array}{lcl}c_{1}&=&0\\c_{i+1}&=&p_{i}q_{i}\,\oplus\,\left(p_{i}\oplus q_{i}\right)c_{i}\end{array}

><

2変数の算術和をbit単位の式で表すと上のようになるのだった。
これを関数 \mathfrak{C}_{r} を使って書きなおすと次のようになる( \mathfrak{C}_{r} については補題:新しい関数“Cr(Ω)”を定義する - Plus Le Tool参照)。

(*1)
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\c_{1}&=&0&&\end{array}

\Omega_{i}=\left\{p_{i}\,,\,q_{i}\,,\,c_{i}\right\}


では、3変数以上の算術和の場合はどうなるのだろう?
とりあえず3変数の場合から見てみよう。

次のような、3つの32bit符号なし変数(uint型)変数 P,Q,R の算術和 X を考える。
(※3変数の算術和の結果は最大34bitになるが、上2bit(第33・34bit)はオーバーフローにより無視されるので、実質的には法 2^{32} のもとでの算術和であると考える。)

(*2)
X\equiv P+Q+R\;\pmod{2^{32}}

これをbit単位の式で表すと、(*3)のように書ける。
ただし \left\{c_{i}\right\}\,,\,\left\{d_{i}\right\} は繰り上がり項で、(*4)(*5)のように漸化式で表される。

(*3)
\begin{array}{lclclclclcl}x_{1}&=&p_{1}&\oplus&q_{1}&\oplus&r_{1}&\oplus&c_{1}&\oplus&d_{1}\\x_{2}&=&p_{2}&\oplus&q_{2}&\oplus&r_{2}&\oplus&c_{2}&\oplus&d_{2}\\&\vdots&&&&&\\x_{32}&=&p_{32}&\oplus&q_{32}&\oplus&r_{32}&\oplus&c_{32}&\oplus&d_{32}\end{array}

(*4)
\begin{array}{lcl}c_{1}&=&0\\c_{i+1}&=&p_{i}q_{i}\,\oplus\,p_{i}r_{i}\,\oplus\,p_{i}c_{i}\,\oplus\,p_{i}d_{i}\,\oplus\,q_{i}r_{i}\,\oplus\,q_{i}c_{i}\,\oplus\,q_{i}d_{i}\,\oplus\,r_{i}c_{i}\,\oplus\,r_{i}d_{i}\,\oplus\,c_{i}d_{i}\end{array}

(*5)
\begin{array}{lcl}d_{1}&=&0\\d_{2}&=&0\\d_{i+2}&=&p_{i}q_{i}r_{i}c_{i}\,\oplus\,p_{i}q_{i}r_{i}d_{i}\,\oplus\,p_{i}q_{i}c_{i}d_{i}\,\oplus\,p_{i}r_{i}c_{i}d_{i}\,\oplus\,q_{i}r_{i}c_{i}d_{i}\end{array}

式(*3)(*4)(*5)は p_{i}\,,\,q_{i}\,,\,r_{i}\,,\,c_{i}\,,\,d_{i} について対称形なので、 \mathfrak{C}_{r} が使えそうだ。
その場合、次のように書き直せる。

(*6)
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\end{array}
\begin{array}{lclcl}\\c_{1}&&&=&0\\d_{1}&=&d_{2}&=&0\end{array}

\Omega_{i}=\left\{p_{i}\,,\,q_{i}\,,\,r_{i}\,,\,c_{i}\,,\,d_{i}\right\}

次に4変数の場合を見てみる。
次のような、4つの32bit符号なし変数(uint型)変数 P,Q,R,S の算術和 X を考える。

(*7)
X\equiv P+Q+R+S\;\pmod{2^{32}}

これをbit単位の式で表すと、繰り上がり項 \left\{c_{i}\right\}\,,\,\left\{d_{i}\right\} を使って(*8)(*9)(*10)のように表せる。

(*8)
\begin{array}{lclclclclclcl}x_{1}&=&p_{1}&\oplus&q_{1}&\oplus&r_{1}&\oplus&s_{1}&\oplus&c_{1}&\oplus&d_{1}\\x_{2}&=&p_{2}&\oplus&q_{2}&\oplus&r_{2}&\oplus&s_{2}&\oplus&c_{2}&\oplus&d_{2}\\&\vdots&&&&&\\x_{32}&=&p_{32}&\oplus&q_{32}&\oplus&r_{32}&\oplus&s_{32}&\oplus&c_{32}&\oplus&d_{32}\end{array}

(*9)
\begin{array}{lclclclclcl}c_{1}&=&0\\c_{i+1}&=&p_{i}q_{i}&\oplus&p_{i}r_{i}&\oplus&p_{i}s_{i}&\oplus&p_{i}c_{i}&\oplus&p_{i}d_{i}\\&\oplus&q_{i}r_{i}&\oplus&q_{i}s_{i}&\oplus&q_{i}c_{i}&\oplus&q_{i}d_{i}&\oplus&r_{i}s_{i}\\&\oplus&r_{i}c_{i}&\oplus&r_{i}d_{i}&\oplus&s_{i}c_{i}&\oplus&s_{i}d_{i}&\oplus&c_{i}d_{i}\end{array}

(*10)
\begin{array}{lclclclclcl}d_{1}&=&0\\d_{2}&=&0\\d_{i+2}&=&p_{i}q_{i}r_{i}s_{i}&\oplus&p_{i}q_{i}r_{i}c_{i}&\oplus&p_{i}q_{i}r_{i}d_{i}&\oplus&p_{i}q_{i}s_{i}c_{i}&\oplus&p_{i}q_{i}s_{i}d_{i}\\&\oplus&p_{i}q_{i}c_{i}d_{i}&\oplus&p_{i}r_{i}s_{i}c_{i}&\oplus&p_{i}r_{i}s_{i}d_{i}&\oplus&p_{i}r_{i}c_{i}d_{i}&\oplus&p_{i}s_{i}c_{i}d_{i}\\&\oplus&q_{i}r_{i}s_{i}c_{i}&\oplus&q_{i}r_{i}s_{i}d_{i}&\oplus&q_{i}r_{i}c_{i}d_{i}&\oplus&q_{i}s_{i}c_{i}d_{i}&\oplus&r_{i}s_{i}c_{i}d_{i}\end{array}

これを \mathfrak{C}_{r} を使って表すと、次のように書き直せる。

(*11)
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\end{array}
\begin{array}{lclcl}\\c_{1}&&&=&0\\d_{1}&=&d_{2}&=&0\end{array}

\Omega_{i}=\left\{p_{i}\,,\,q_{i}\,,\,r_{i}\,,\,s_{i}\,,\,c_{i}\,,\,d_{i}\right\}

続いて5変数の場合を見てみる。
次のような、5つの32bit符号なし変数(uint型)変数 P,Q,R,S,T の算術和 X を考える。

(*12)
X\equiv P+Q+R+S+T\;\pmod{2^{32}}

これをbit単位の式で表すと、繰り上がり項 \left\{c_{i}\right\}\,,\,\left\{d_{i}\right\} を使って(*13)(*14)(*15)のように表せる。

(*13)
\begin{array}{lclclclclclclcl}x_{1}&=&p_{1}&\oplus&q_{1}&\oplus&r_{1}&\oplus&s_{1}&\oplus&t_{1}&\oplus&c_{1}&\oplus&d_{1}\\x_{2}&=&p_{2}&\oplus&q_{2}&\oplus&r_{2}&\oplus&s_{2}&\oplus&t_{2}&\oplus&c_{2}&\oplus&d_{2}\\&\vdots&&&&&\\x_{32}&=&p_{32}&\oplus&q_{32}&\oplus&r_{32}&\oplus&s_{32}&\oplus&t_{32}&\oplus&c_{32}&\oplus&d_{32}\end{array}

(*14)
\begin{array}{lclclclclclclcl}c_{1}&=&0\\c_{i+1}&=&p_{i}q_{i}&\oplus&p_{i}r_{i}&\oplus&p_{i}s_{i}&\oplus&p_{i}t_{i}&\oplus&p_{i}c_{i}&\oplus&p_{i}d_{i}&\oplus&q_{i}r_{i}\\&\oplus&q_{i}s_{i}&\oplus&q_{i}t_{i}&\oplus&q_{i}c_{i}&\oplus&q_{i}d_{i}&\oplus&r_{i}s_{i}&\oplus&r_{i}t_{i}&\oplus&r_{i}c_{i}\\&\oplus&r_{i}d_{i}&\oplus&s_{i}t_{i}&\oplus&s_{i}c_{i}&\oplus&s_{i}d_{i}&\oplus&t_{i}c_{i}&\oplus&t_{i}d_{i}&\oplus&c_{i}d_{i}\end{array}

(*15)
\begin{array}{lclclclclcl}d_{1}&=&0\\d_{2}&=&0\\d_{i+2}&=&p_{i}q_{i}r_{i}s_{i}&\oplus&p_{i}q_{i}r_{i}t_{i}&\oplus&p_{i}q_{i}r_{i}c_{i}&\oplus&p_{i}q_{i}r_{i}d_{i}&\oplus&p_{i}q_{i}s_{i}t_{i}\\&\oplus&p_{i}q_{i}s_{i}c_{i}&\oplus&p_{i}q_{i}s_{i}d_{i}&\oplus&p_{i}q_{i}t_{i}c_{i}&\oplus&p_{i}q_{i}t_{i}d_{i}&\oplus&p_{i}q_{i}c_{i}d_{i}\\&\oplus&p_{i}r_{i}s_{i}t_{i}&\oplus&p_{i}r_{i}s_{i}c_{i}&\oplus&p_{i}r_{i}s_{i}d_{i}&\oplus&p_{i}r_{i}t_{i}c_{i}&\oplus&p_{i}r_{i}t_{i}d_{i}\\&\oplus&p_{i}r_{i}c_{i}d_{i}&\oplus&p_{i}s_{i}t_{i}c_{i}&\oplus&p_{i}s_{i}t_{i}d_{i}&\oplus&p_{i}s_{i}c_{i}d_{i}&\oplus&p_{i}t_{i}c_{i}d_{i}\\&\oplus&q_{i}r_{i}s_{i}t_{i}&\oplus&q_{i}r_{i}s_{i}c_{i}&\oplus&q_{i}r_{i}s_{i}d_{i}&\oplus&q_{i}r_{i}t_{i}c_{i}&\oplus&q_{i}r_{i}t_{i}d_{i}\\&\oplus&q_{i}r_{i}c_{i}d_{i}&\oplus&q_{i}s_{i}t_{i}c_{i}&\oplus&q_{i}s_{i}t_{i}d_{i}&\oplus&q_{i}s_{i}c_{i}d_{i}&\oplus&q_{i}t_{i}c_{i}d_{i}\\&\oplus&r_{i}s_{i}t_{i}c_{i}&\oplus&r_{i}s_{i}t_{i}d_{i}&\oplus&r_{i}s_{i}c_{i}d_{i}&\oplus&r_{i}t_{i}c_{i}d_{i}&\oplus&s_{i}t_{i}c_{i}d_{i}\end{array}

これを \mathfrak{C}_{r} を使って表すと、次のように書き直せる。

(*16)
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\end{array}
\begin{array}{lclcl}\\c_{1}&&&=&0\\d_{1}&=&d_{2}&=&0\end{array}

\Omega_{i}=\left\{p_{i}\,,\,q_{i}\,,\,r_{i}\,,\,s_{i}\,,\,t_{i}\,,\,c_{i}\,,\,d_{i}\right\}


ところで、(*6)(*11)(*16)を見比べてみよう。

(*6)再掲
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\end{array}
\begin{array}{lclcl}\\c_{1}&&&=&0\\d_{1}&=&d_{2}&=&0\end{array}

\Omega_{i}=\left\{p_{i}\,,\,q_{i}\,,\,r_{i}\,,\,c_{i}\,,\,d_{i}\right\}

(*11)再掲
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\end{array}
\begin{array}{lclcl}\\c_{1}&&&=&0\\d_{1}&=&d_{2}&=&0\end{array}

\Omega_{i}=\left\{p_{i}\,,\,q_{i}\,,\,r_{i}\,,\,s_{i}\,,\,c_{i}\,,\,d_{i}\right\}

(*16)再掲
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\end{array}
\begin{array}{lclcl}\\c_{1}&&&=&0\\d_{1}&=&d_{2}&=&0\end{array}

\Omega_{i}=\left\{p_{i}\,,\,q_{i}\,,\,r_{i}\,,\,s_{i}\,,\,t_{i}\,,\,c_{i}\,,\,d_{i}\right\}

なんと、これらは( \Omega_{i} の違いを除いて)まったく同じ式である。
実を言うと、繰り上がりが2桁以下の場合にはすべて(*16)が使えるのだ(ただし変数の個数によって \Omega_{i} の要素は変わる)。
言い換えると、5変数以下の算術和は最大2桁までしか繰り上がらないので、(*16)は5変数以下の場合に成り立つ式だということだ。
そしてこれは3〜5変数の場合だけでなく、0〜2変数の場合にも(*16)が成り立っているのだ(0変数の算術和って言うとなんだか変な感じがするが、算術和の零元 0 のことだと思えばいい)。

【簡易証明】
以下の証明では次式を使って式変形していることに注意。

[id:plusletool:20130612:p1](*D)再掲
\Omega=\Omega_{1}\,\cup\,\Omega_{2}\;,\;\Omega_{1}\,\cap\,\Omega_{2}=\emptyset のとき、次の式が成り立つ。

\mathfrak{C}_{r}\left(\Omega\right)=\bigoplus_{k=0}^{r}\mathfrak{C}_{k}\left(\Omega_{1}\right)\mathfrak{C}_{r-k}\left(\Omega_{2}\right)

[id:plusletool:20130612:p1](*A)再掲\mathfrak{C}_{r}\left(\Omega\right) の定義)
(前略)
r<0 または r>n の場合は、 \mathfrak{C}_{r}\left(\Omega\right)=0 とする。
r=0 の場合は、 \mathfrak{C}_{r}\left(\Omega\right)=1 とする。


<2変数>
この場合、(*16)において \left\{r_{i}\right\}=\left\{s_{i}\right\}=\left\{t_{i}\right\}=\left\{0\right\} と考えればいい。
いま、 \Phi_{i}=\left\{p_{i}\,,\,q_{i}\,,\,c_{i}\,,\,d_{i}\right\}\Psi_{i}=\left\{r_{i}\,,\,s_{i}\,,\,t_{i}\right\} とおくと、 \left\{r_{i}\right\}=\left\{s_{i}\right\}=\left\{t_{i}\right\}=\left\{0\right\} より \mathfrak{C}_{r}\left(\Psi_{i}\right)=0r\ne 0 のとき)である。
よって、

\begin{eqnarray}d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)\\&=&\mathfrak{C}_{4}\left(\Phi_{i}\right)\mathfrak{C}_{0}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{3}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{3}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{0}\left(\Phi_{i}\right)\mathfrak{C}_{4}\left(\Psi_{i}\right)\\&=&\mathfrak{C}_{4}\left(\Phi_{i}\right)\\&=&p_{i}q_{i}c_{i}d_{i}\end{eqnarray}

となるが、 d_{1}=d_{2}=0 より d_{i+2}=0 であり、つまり \left\{d_{i}\right\} は定数列 \left\{0\right\} であることが分かる。
(これは2桁上の位への繰り上がりがないことを意味しており、直感にも一致する。)
ここで \Phi_{i}'=\left\{p_{i}\,,\,q_{i}\,,\,c_{i}\right\}\Psi_{i}'=\left\{r_{i}\,,\,s_{i}\,,\,t_{i}\,,\,d_{i}\right\} とおくと、 \left\{r_{i}\right\}=\left\{s_{i}\right\}=\left\{t_{i}\right\}=\left\{d_{i}\right\}=\left\{0\right\} より \mathfrak{C}_{r}\left(\Psi_{i}'\right)=0r\ne 0 のとき)である。
よって、

\begin{eqnarray}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)\\&=&\mathfrak{C}_{1}\left(\Phi_{i}'\right)\mathfrak{C}_{0}\left(\Psi_{i}'\right)\,\oplus\,\mathfrak{C}_{0}\left(\Phi_{i}'\right)\mathfrak{C}_{1}\left(\Psi_{i}'\right)\\&=&\mathfrak{C}_{1}\left(\Phi_{i}'\right)\end{eqnarray}
\begin{eqnarray}c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)\\&=&\mathfrak{C}_{2}\left(\Phi_{i}'\right)\mathfrak{C}_{0}\left(\Psi_{i}'\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}'\right)\mathfrak{C}_{1}\left(\Psi_{i}'\right)\,\oplus\,\mathfrak{C}_{0}\left(\Phi_{i}'\right)\mathfrak{C}_{2}\left(\Psi_{i}'\right)\\&=&\mathfrak{C}_{2}\left(\Phi_{i}'\right)\end{eqnarray}

となるが、これは(*1)と等価である。
よって2変数の場合にも(*16)は成り立つ。

<1変数>
この場合、(*16)において \left\{q_{i}\right\}=\left\{r_{i}\right\}=\left\{s_{i}\right\}=\left\{t_{i}\right\}=\left\{0\right\} と考えればいい。
いま、 \Phi_{i}=\left\{p_{i}\,,\,c_{i}\,,\,d_{i}\right\}\Psi_{i}=\left\{q_{i}\,,\,r_{i}\,,\,s_{i}\,,\,t_{i}\right\} とおくと、 \left\{q_{i}\right\}=\left\{r_{i}\right\}=\left\{s_{i}\right\}=\left\{t_{i}\right\}=\left\{0\right\} より \mathfrak{C}_{r}\left(\Psi_{i}\right)=0r\ne 0 のとき)である。
よって、

\begin{eqnarray}d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)\\&=&\mathfrak{C}_{4}\left(\Phi_{i}\right)\mathfrak{C}_{0}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{3}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{3}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{0}\left(\Phi_{i}\right)\mathfrak{C}_{4}\left(\Psi_{i}\right)\\&=&\mathfrak{C}_{4}\left(\Phi_{i}\right)\\&=&0\end{eqnarray}

となり、 \left\{d_{i}\right\} は定数列 \left\{0\right\} であることが分かる。
ここで \Phi_{i}'=\left\{p_{i}\,,\,c_{i}\right\}\Psi_{i}'=\left\{q_{i}\,,\,r_{i}\,,\,s_{i}\,,\,t_{i}\,,\,d_{i}\right\} とおくと、 \left\{q_{i}\right\}=\left\{r_{i}\right\}=\left\{s_{i}\right\}=\left\{t_{i}\right\}=\left\{d_{i}\right\}=\left\{0\right\} より \mathfrak{C}_{r}\left(\Psi_{i}'\right)=0r\ne 0 のとき)である。
よって、

\begin{eqnarray}c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)\\&=&\mathfrak{C}_{2}\left(\Phi_{i}'\right)\mathfrak{C}_{0}\left(\Psi_{i}'\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}'\right)\mathfrak{C}_{1}\left(\Psi_{i}'\right)\,\oplus\,\mathfrak{C}_{0}\left(\Phi_{i}'\right)\mathfrak{C}_{2}\left(\Psi_{i}'\right)\\&=&\mathfrak{C}_{2}\left(\Phi_{i}'\right)\\&=&p_{i}c_{i}\end{eqnarray}

となるが、 c_{1}=0 より c_{i+1}=0 であり、つまり \left\{c_{i}\right\} は定数列 \left\{0\right\} であることが分かる。
(これは繰り上がりが一切ないことを意味しており、直感にも一致する。)
ここで \Phi_{i}''=\left\{p_{i}\right\}\Psi_{i}''=\left\{q_{i}\,,\,r_{i}\,,\,s_{i}\,,\,t_{i}\,,\,c_{i}\,,\,d_{i}\right\} とおくと、 \left\{q_{i}\right\}=\left\{r_{i}\right\}=\left\{s_{i}\right\}=\left\{t_{i}\right\}=\left\{c_{i}\right\}=\left\{d_{i}\right\}=\left\{0\right\} より \mathfrak{C}_{r}\left(\Psi_{i}''\right)=0r\ne 0 のとき)である。
よって、

\begin{eqnarray}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)\\&=&\mathfrak{C}_{1}\left(\Phi_{i}''\right)\mathfrak{C}_{0}\left(\Psi_{i}''\right)\,\oplus\,\mathfrak{C}_{0}\left(\Phi_{i}''\right)\mathfrak{C}_{1}\left(\Psi_{i}''\right)\\&=&\mathfrak{C}_{1}\left(\Phi_{i}''\right)\\&=&p_{i}\end{eqnarray}

となり、確かに1変数の場合にも(*16)は成り立つ。

<0変数>
この場合、(*16)において \left\{p_{i}\right\}=\left\{q_{i}\right\}=\left\{r_{i}\right\}=\left\{s_{i}\right\}=\left\{t_{i}\right\}=\left\{0\right\} と考えればいい。
いま、 \Phi_{i}=\left\{c_{i}\,,\,d_{i}\right\}\Psi_{i}=\left\{p_{i}\,,\,q_{i}\,,\,r_{i}\,,\,s_{i}\,,\,t_{i}\right\} とおくと、 \left\{p_{i}\right\}=\left\{q_{i}\right\}=\left\{r_{i}\right\}=\left\{s_{i}\right\}=\left\{t_{i}\right\}=\left\{0\right\} より \mathfrak{C}_{r}\left(\Psi_{i}\right)=0r\ne 0 のとき)である。
よって、

\begin{eqnarray}d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)\\&=&\mathfrak{C}_{4}\left(\Phi_{i}\right)\mathfrak{C}_{0}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{3}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{3}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{0}\left(\Phi_{i}\right)\mathfrak{C}_{4}\left(\Psi_{i}\right)\\&=&\mathfrak{C}_{4}\left(\Phi_{i}\right)\\&=&0\end{eqnarray}

となり、 \left\{d_{i}\right\} は定数列 \left\{0\right\} であることが分かる。
ここで \Phi_{i}'=\left\{c_{i}\right\}\Psi_{i}'=\left\{p_{i}\,,\,q_{i}\,,\,r_{i}\,,\,s_{i}\,,\,t_{i}\,,\,d_{i}\right\} とおくと、 \left\{p_{i}\right\}=\left\{q_{i}\right\}=\left\{r_{i}\right\}=\left\{s_{i}\right\}=\left\{t_{i}\right\}=\left\{d_{i}\right\}=\left\{0\right\} より \mathfrak{C}_{r}\left(\Psi_{i}'\right)=0r\ne 0 のとき)である。
よって、

\begin{eqnarray}c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)\\&=&\mathfrak{C}_{2}\left(\Phi_{i}'\right)\mathfrak{C}_{0}\left(\Psi_{i}'\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}'\right)\mathfrak{C}_{1}\left(\Psi_{i}'\right)\,\oplus\,\mathfrak{C}_{0}\left(\Phi_{i}'\right)\mathfrak{C}_{2}\left(\Psi_{i}'\right)\\&=&\mathfrak{C}_{2}\left(\Phi_{i}'\right)\\&=&0\end{eqnarray}

となり、 \left\{c_{i}\right\} は定数列 \left\{0\right\} であることが分かる。
\Phi_{i}''=\emptyset\Psi_{i}''=\left\{p_{i}\,,\,q_{i}\,,\,r_{i}\,,\,s_{i}\,,\,t_{i}\,,\,c_{i}\,,\,d_{i}\right\} とおくと、 \left\{p_{i}\right\}=\left\{q_{i}\right\}=\left\{r_{i}\right\}=\left\{s_{i}\right\}=\left\{t_{i}\right\}=\left\{c_{i}\right\}=\left\{d_{i}\right\}=\left\{0\right\} より \mathfrak{C}_{r}\left(\Psi_{i}''\right)=0r\ne 0 のとき)である。
よって、

\begin{eqnarray}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)\\&=&\mathfrak{C}_{1}\left(\Phi_{i}''\right)\mathfrak{C}_{0}\left(\Psi_{i}''\right)\,\oplus\,\mathfrak{C}_{0}\left(\Phi_{i}''\right)\mathfrak{C}_{1}\left(\Psi_{i}''\right)\\&=&\mathfrak{C}_{1}\left(\Phi_{i}''\right)\\&=&\mathfrak{C}_{1}\left(\emptyset\right)\\&=&0\end{eqnarray}

となり、確かに0変数の場合にも(*16)は成り立つ。

このように、5変数までの場合には(*16)が成り立つ。


上の証明で、(*16)が3〜5変数の場合だけでなく0〜2変数の場合にも成り立つのは、上位への繰り上がり項が常に0になるからだと分かった。
すると逆に、こう考えることもできる。
「5変数までなら3桁上への繰り上がりが0になるので考える必要がなかったが、本来は3桁上への繰り上がり項に当たる式が必要であり、(*16)にはその式が不足しているのだ」、と。
そしてその場合、3桁上の位への繰り上がりが計算できるので、6変数以上の算術和をbit単位で表すことができるようになるはずだ。
この考えに基いて(*16)を拡張してみよう。
めんどうなのでいきなり結果を書いてしまうと、これは3桁上への繰り上がり項 \left\{e_{i}\right\} を使って次のように表せる。

(*17)
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\\e_{i+3}&=&\mathfrak{C}_{8}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 29\right)\end{array}
\begin{array}{lclclcl}\\c_{1}&&&&&=&0\\d_{1}&=&d_{2}&&&=&0\\e_{1}&=&e_{2}&=&e_{3}&=&0\end{array}

実際に展開して計算してみると、確かに12変数以下の場合に(*17)は成り立っている。

だったら13変数以上の場合はどうなるの? ……と考えていくとキリがないのだが、同じように考えればさらに拡張できるに違いない。
そしてそれがどんな式になるかは、そろそろ予想がついているんじゃないかと思う。
答えを書いてしまうと、27変数以下の場合は次の式が成り立つ。

(*18)
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\\e_{i+3}&=&\mathfrak{C}_{8}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 29\right)\\f_{i+4}&=&\mathfrak{C}_{16}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 28\right)\end{array}
\begin{array}{lclclclcl}\\c_{1}&&&&&&&=&0\\d_{1}&=&d_{2}&&&&&=&0\\e_{1}&=&e_{2}&=&e_{3}&&&=&0\\f_{1}&=&f_{2}&=&f_{3}&=&f_{4}&=&0\end{array}

予想は当ってた?
言うまでもないかもしれないが、 \left\{f_{i}\right\} は4桁上への繰り上がり項である。

このように、 k 項上の位への繰り上がり項は \mathfrak{C}_{2^{k}}\left(\Omega_{i}\right) で表される。
なぜそうなるかはうまく説明できないので気になる人は各自考えてほしい。
考え方のヒントだけ書いておくと、 \Omega_{i} の要素(=ブール変数)の中に値が1である要素(ブール変数)がいくつあれば該当桁への繰り上がりが生じるかを考えれば分かると思う。


さて、「28変数以上の場合は?」などと考えていくと本当にキリがないのでこれ以上はやめておくが、代わりに軽く整理しておこう。
2変数の算術和をbit単位の式で表すと、次のようになるのだった。

(*1)再掲
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\c_{1}&=&0&&\end{array}

(*1)は2変数の場合だけでなく0〜1変数の場合にも成り立つ。
つまり、(*1)は2変数以下の場合に成り立つ(ただし \Omega_{i} は変数の個数に応じて適当な集合を選ぶ)。
同様に、5変数以下の場合は(*16)、12変数以下の場合は(*17)、27変数以下の場合は(*18)がそれぞれ成り立つのだった。

(*16)再掲
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\end{array}
\begin{array}{lclcl}\\c_{1}&&&=&0\\d_{1}&=&d_{2}&=&0\end{array}

(*17)再掲
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\\e_{i+3}&=&\mathfrak{C}_{8}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 29\right)\end{array}
\begin{array}{lclclcl}\\c_{1}&&&&&=&0\\d_{1}&=&d_{2}&&&=&0\\e_{1}&=&e_{2}&=&e_{3}&=&0\end{array}

(*18)再掲
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\\e_{i+3}&=&\mathfrak{C}_{8}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 29\right)\\f_{i+4}&=&\mathfrak{C}_{16}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 28\right)\end{array}
\begin{array}{lclclclcl}\\c_{1}&&&&&&&=&0\\d_{1}&=&d_{2}&&&&&=&0\\e_{1}&=&e_{2}&=&e_{3}&&&=&0\\f_{1}&=&f_{2}&=&f_{3}&=&f_{4}&=&0\end{array}

(*1)→(*16)→(*17)→(*18)の順に新しい繰り上がり項が1つずつ増えているだけなので、これらの式自体に不自然な点はないだろう。
しかしこれらの式が成り立つ条件の、「2変数以下の場合」「5変数以下の場合」「12変数以下の場合」「27変数以下の場合」の、2,5,12,27という数はどこから出てきたのだろうか?
答えは簡単だ。次のように考えればいい。
下の位からの繰り上がり項が最大 k 個であるような算術加算を考える。
このとき、 k+1 桁上の位への繰り上がりがないためには、 \Omega の要素数2^{k+1}-1 個以下でなければならない。
\Omega の要素には元々の変数の他に下の位からの繰り上がりの変数も含むので、それを除いた数が求めたい値(元々の変数の個数の最大値)になる。
今は下の位からの繰り上がり項が k 個の場合を考えているので、 \Omega には k 個の繰り上がり項が含まれている。
よって 2^{k+1}-1 から k を引いた 2^{k+1}-1-k が求めたい値である。
繰り上がり項の数 k=1,2,3,42^{k+1}-1-k に代入すると、確かに2,5,12,27となる。


さて、これで任意個の変数の算術和演算をbit単位で表すことができるようになったので、ここらで本来の目的を思い出しておこうか。
今の最終目的はSHA−1の逆計算で、その過程で算術和演算を使っているので、それをbit単位の式に書き直そうとしているところだった。
では具体的に算術和演算がどのように使われているかというと、補題:SHA−1アルゴリズムを方程式にする - Plus Le Toolによればこんな形の式になっている。

[id:plusletool:20130608:p1](*7)再掲
A_{i+1}=\left(A_{i}\underset{c}{<<}5\right)\,+\,F_{i}\left(A_{i-1}\,,\,\left(A_{i-2}\underset{c}{>>}\,\!2\right)\,,\,\left(A_{i-3}\underset{c}{>>}\,\!2\right)\,\!\right)\,+\,\left(A_{i-4}\underset{c}{>>}\,\!2\right)\,+\,W_{i}\,+\,K_{i}

ごちゃごちゃしてて見づらいから、次のように文字の置き換えをしようか。

(*19)
X=P+Q+R+S+T

\left\{\begin{eqnarray}X&\overset{\mathrm{def}}{=}&A_{i+1}\\P&\overset{\mathrm{def}}{=}&\left(A_{i}\underset{c}{<<}5\right)\\Q&\overset{\mathrm{def}}{=}&F_{i}\left(A_{i-1}\,,\,\left(A_{i-2}\underset{c}{>>}\,\!2\right)\,,\,\left(A_{i-3}\underset{c}{>>}\,\!2\right)\,\!\right)\\R&\overset{\mathrm{def}}{=}&\left(A_{i-4}\underset{c}{>>}\,\!2\right)\\S&\overset{\mathrm{def}}{=}&W_{i}\\T&\overset{\mathrm{def}}{=}&K_{i}\end{eqnarray}\right.

見ての通り、5変数の算術和計算である。
であれば6変数以上の場合の式をいじる必要はないので、(*16)についてだけ考えればよさそうだ。
……あぁ、ずいぶん寄り道してしまったようだ。

(*16)再掲
\begin{array}{lclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\end{array}
\begin{array}{lclcl}\\c_{1}&&&=&0\\d_{1}&=&d_{2}&=&0\end{array}

\Omega_{i}=\left\{p_{i}\,,\,q_{i}\,,\,r_{i}\,,\,s_{i}\,,\,t_{i}\,,\,c_{i}\,,\,d_{i}\right\}

この式から何とかして c_{i}\,,\,d_{i} を消去したい。
2変数の算術和の場合には c_{i} を消去できたんだから、5変数の場合でもできるはずだ(最悪、2変数の算術和を4回行えば5変数の算術和になるわけだし)。
(*16)のままでは計算しづらいのでいったん \mathfrak{C}_{r} をやめて元の式にもどしてみようか。

(*20)
\begin{eqnarray}x_{i}&=&\mathfrak{C}_{1}\left(\Omega_{i}\right)\\&=&p_{i}\,\oplus\,q_{i}\,\oplus\,r_{i}\,\oplus\,s_{i}\,\oplus\,t_{i}\,\oplus\,c_{i}\,\oplus\,d_{i}\\&=&\left(p_{i}\,\oplus\,q_{i}\,\oplus\,r_{i}\,\oplus\,s_{i}\,\oplus\,t_{i}\right)\,\oplus\,\left(c_{i}\,\oplus\,d_{i}\right)\end{eqnarray}

(*21)
\begin{array}{lcl}c_{1}&=&0\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Omega_{i}\right)\\&=&p_{i}q_{i}\,\oplus\,p_{i}r_{i}\,\oplus\,p_{i}s_{i}\,\oplus\,p_{i}t_{i}\,\oplus\,p_{i}c_{i}\,\oplus\,p_{i}d_{i}\,\oplus\,q_{i}r_{i}\\&\oplus&q_{i}s_{i}\,\oplus\,q_{i}t_{i}\,\oplus\,q_{i}c_{i}\,\oplus\,q_{i}d_{i}\,\oplus\,r_{i}s_{i}\,\oplus\,r_{i}t_{i}\,\oplus\,r_{i}c_{i}\\&\oplus&r_{i}d_{i}\,\oplus\,s_{i}t_{i}\,\oplus\,s_{i}c_{i}\,\oplus\,s_{i}d_{i}\,\oplus\,t_{i}c_{i}\,\oplus\,t_{i}d_{i}\,\oplus\,c_{i}d_{i}\\&=&\left(\begin{array}{clclclclcl}&p_{i}q_{i}&\oplus&p_{i}r_{i}&\oplus&p_{i}s_{i}&\oplus&p_{i}t_{i}&\oplus&q_{i}r_{i}\\\oplus&q_{i}s_{i}&\oplus&q_{i}t_{i}&\oplus&r_{i}s_{i}&\oplus&r_{i}t_{i}&\oplus&s_{i}t_{i}\end{array}\right)\,\oplus\,\left(p_{i}\,\oplus\,q_{i}\,\oplus\,r_{i}\,\oplus\,s_{i}\,\oplus\,t_{i}\right)\left(c_{i}\,\oplus\,d_{i}\right)\,\oplus\,c_{i}d_{i}\end{array}

(*22)
\begin{array}{lcl}d_{1}&=&0\\d_{2}&=&0\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Omega_{i}\right)\\&=&p_{i}q_{i}r_{i}s_{i}\,\oplus\,p_{i}q_{i}r_{i}t_{i}\,\oplus\,p_{i}q_{i}r_{i}c_{i}\,\oplus\,p_{i}q_{i}r_{i}d_{i}\,\oplus\,p_{i}q_{i}s_{i}t_{i}\,\oplus\,p_{i}q_{i}s_{i}c_{i}\,\oplus\,p_{i}q_{i}s_{i}d_{i}\\&\oplus&p_{i}q_{i}t_{i}c_{i}\,\oplus\,p_{i}q_{i}t_{i}d_{i}\,\oplus\,p_{i}q_{i}c_{i}d_{i}\,\oplus\,p_{i}r_{i}s_{i}t_{i}\,\oplus\,p_{i}r_{i}s_{i}c_{i}\,\oplus\,p_{i}r_{i}s_{i}d_{i}\,\oplus\,p_{i}r_{i}t_{i}c_{i}\\&\oplus&p_{i}r_{i}t_{i}d_{i}\,\oplus\,p_{i}r_{i}c_{i}d_{i}\,\oplus\,p_{i}s_{i}t_{i}c_{i}\,\oplus\,p_{i}s_{i}t_{i}d_{i}\,\oplus\,p_{i}s_{i}c_{i}d_{i}\,\oplus\,p_{i}t_{i}c_{i}d_{i}\,\oplus\,q_{i}r_{i}s_{i}t_{i}\\&\oplus&q_{i}r_{i}s_{i}c_{i}\,\oplus\,q_{i}r_{i}s_{i}d_{i}\,\oplus\,q_{i}r_{i}t_{i}c_{i}\,\oplus\,q_{i}r_{i}t_{i}d_{i}\,\oplus\,q_{i}r_{i}c_{i}d_{i}\,\oplus\,q_{i}s_{i}t_{i}c_{i}\,\oplus\,q_{i}s_{i}t_{i}d_{i}\\&\oplus&q_{i}s_{i}c_{i}d_{i}\,\oplus\,q_{i}t_{i}c_{i}d_{i}\,\oplus\,r_{i}s_{i}t_{i}c_{i}\,\oplus\,r_{i}s_{i}t_{i}d_{i}\,\oplus\,r_{i}s_{i}c_{i}d_{i}\,\oplus\,r_{i}t_{i}c_{i}d_{i}\,\oplus\,s_{i}t_{i}c_{i}d_{i}\\&=&\left(p_{i}q_{i}r_{i}s_{i}\,\oplus\,p_{i}q_{i}r_{i}t_{i}\,\oplus\,p_{i}q_{i}s_{i}t_{i}\,\oplus\,p_{i}r_{i}s_{i}t_{i}\,\oplus\,q_{i}r_{i}s_{i}t_{i}\right)\\&\oplus&\left(\begin{array}{clclclclcl}&p_{i}q_{i}r_{i}&\oplus&p_{i}q_{i}s_{i}&\oplus&p_{i}q_{i}t_{i}&\oplus&p_{i}r_{i}s_{i}&\oplus&p_{i}r_{i}t_{i}\\\oplus&p_{i}s_{i}t_{i}&\oplus&q_{i}r_{i}s_{i}&\oplus&q_{i}r_{i}t_{i}&\oplus&q_{i}s_{i}t_{i}&\oplus&r_{i}s_{i}t_{i}\end{array}\right)\left(c_{i}\,\oplus\,d_{i}\right)\\&\oplus&\left(\begin{array}{clclclclcl}&p_{i}q_{i}&\oplus&p_{i}r_{i}&\oplus&p_{i}s_{i}&\oplus&p_{i}t_{i}&\oplus&q_{i}r_{i}\\\oplus&q_{i}s_{i}&\oplus&q_{i}t_{i}&\oplus&r_{i}s_{i}&\oplus&r_{i}t_{i}&\oplus&s_{i}t_{i}\end{array}\right)c_{i}d_{i}\end{array}

ここで \Phi_{i}\overset{\mathrm{def}}{=}\left\{p_{i}\,,\,q_{i}\,,\,r_{i}\,,\,s_{i}\,,\,t_{i}\right\}\Gamma_{i}\overset{\mathrm{def}}{=}\left\{c_{i}\,,\,d_{i}\right\} とおけば、(*20)(*21)(*22)は \mathfrak{C}_{r} を使って次のようにまとめられる。

(*23)
\begin{array}{lclclclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{1}\left(\Gamma_{i}\right)&&&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Gamma_{i}\right)&\oplus&\mathfrak{C}_{2}\left(\Gamma_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{3}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Gamma_{i}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Gamma_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\end{array}
\begin{array}{lclcl}\\c_{1}&&&=&0\\d_{1}&=&d_{2}&=&0\end{array}

(実は[id:plusletool:20130612:p1](*D)を使えば(*16)から直接(*23)へ変形できたのだが、まぁこのくらいの手間ならどっちでもいい。)

[id:plusletool:20130612:p1](*D)再掲
\Omega=\Omega_{1}\,\cup\,\Omega_{2}\;,\;\Omega_{1}\,\cap\,\Omega_{2}=\emptyset のとき、次の式が成り立つ。

\mathfrak{C}_{r}\left(\Omega\right)=\bigoplus_{k=0}^{r}\mathfrak{C}_{k}\left(\Omega_{1}\right)\mathfrak{C}_{r-k}\left(\Omega_{2}\right)

(*23)の第2式( c_{i+1} の式)の両辺に \mathfrak{C}_{2}\left(\Phi_{i}\right)論理積すると、

(*24)
\begin{array}{lclclcl}\mathfrak{C}_{2}\left(\Phi_{i}\right)c_{i+1}&=&\mathfrak{C}_{2}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Gamma_{i}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Gamma_{i}\right)\\&=&\mathfrak{C}_{2}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{3}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Gamma_{i}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Gamma_{i}\right)\end{array}

(第2項では[id:plusletool:20130612:p1](*C)を使った。)

[id:plusletool:20130612:p1](*C)再掲
0\le r_{1}\in\mathbb{Z}0\le r_{2}\in\mathbb{Z} のとき、次の式が成り立つ。

\mathfrak{C}_{r_{1}}\left(\Omega\right)\mathfrak{C}_{r_{2}}\left(\Omega\right)=\mathfrak{C}_{r_{1}\cup r_{2}}\left(\Omega\right)

(*23)の第3式( d_{i+2} の式)に(*24)を \oplus すると、

(*25)
\begin{array}{crclclcl}&d_{i+2}\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i}\right)c_{i+1}&=&\mathfrak{C}_{4}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{3}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Gamma_{i}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Gamma_{i}\right)\\&&\oplus&\mathfrak{C}_{2}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{3}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Gamma_{i}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Gamma_{i}\right)\\&&=&\mathfrak{C}_{4}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{i}\right)&&\\\Leftrightarrow&d_{i+2}&=&\mathfrak{C}_{4}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{i}\right)c_{i+1}\end{array}

よって、次の式が成り立つ。

(*26)
\begin{array}{lcl}d_{1}&=&0\\d_{2}&=&0\\d_{i}&=&\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}\;\;\left(\mathrm{as}\,3\le i\le 32\right)\end{array}

i=1,2 のとき \Phi_{i-2}=\emptyset なので定義より \mathfrak{C}_{4}\left(\Phi_{i-2}\right)=\mathfrak{C}_{2}\left(\Phi_{i-2}\right)=0 となり、よって(*26)の第3式( d_{i} の式)は i=1,2 のときも成り立つ。
(※ c_{0} の係数はすべて \mathfrak{C}_{2}\left(\Phi_{-1}\right)=\mathfrak{C}_{2}\left(\emptyset\right)=0 なので、 c_{0} は任意の有限値でいい。めんどうなら c_{0}=0 と考えてしまってもいい。)

(*27)
d_{i}=\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}\;\;\left(\mathrm{as}\,1\le i\le 32\right)

(*27)を(*23)の c_{i} の式に代入する。

(*23)再掲
\begin{array}{lclclclcl}x_{i}&=&\mathfrak{C}_{1}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{1}\left(\Gamma_{i}\right)&&&\,&\left(\mathrm{as}\,1\le i\le 32\right)\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Gamma_{i}\right)&\oplus&\mathfrak{C}_{2}\left(\Gamma_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 31\right)\\d_{i+2}&=&\mathfrak{C}_{4}\left(\Phi_{i}\right)&\oplus&\mathfrak{C}_{3}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Gamma_{i}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Gamma_{i}\right)&\,&\left(\mathrm{as}\,1\le i\le 30\right)\end{array}
\begin{array}{lclcl}\\c_{1}&&&=&0\\d_{1}&=&d_{2}&=&0\end{array}

(*28)
\begin{array}{lcl}c_{1}&=&0\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Phi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{1}\left(\Gamma_{i}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Gamma_{i}\right)\\&=&\mathfrak{C}_{2}\left(\Phi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}\right)\left(c_{i}\,\oplus\,d_{i}\right)\,\oplus\,c_{i}d_{i}\\&=&\mathfrak{C}_{2}\left(\Phi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}\right)c_{i}\,\oplus\,\left(\mathfrak{C}_{1}\left(\Phi_{i}\right)\,\oplus\,c_{i}\right)\left(\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}\right)\\&=&\mathfrak{C}_{2}\left(\Phi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\\&\oplus&\left(\mathfrak{C}_{1}\left(\Phi_{i}\right)\,\oplus\,\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\right)c_{i}\\&\oplus&\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}\\&\oplus&\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i}c_{i-1}\end{array}

これでようやく d_{i} が消去できた。


さて、この漸化式はここから先どうやって解けばいいんだろう。
それは……しばらくほっとけば誰かがコメント欄で教えてくれるんじゃね?残念ながらノーアイディア。
c_{i}c_{i-1} の項がとにかく邪魔で、現状どうにも消去できそうにない。
何かうまい方法がありそうな気はするんだけど……
少なくとも2変数の時は繰り上がり項を消去できたんだから、5変数の場合でもきっと何か方法があるはずなんだ、タブンネ


とりあえず試行錯誤して失敗した例を書いてお茶を濁すことにする。

【失敗例】
0\le i\le 31 なる i について、 c_{i+1}'\overset{\mathrm{def}}{=}c_{i+1}\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i}\right) を定義する。
(こう置いた理由は、 c_{i+1} の第3項 \mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1} の第1項 \mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\,\cap\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right) によって相殺されて消えるので、予めこの項(第1項)を消去しておいた方が都合がいいから。)
なお、 \mathfrak{C}_{2}\left(\Phi_{0}\right)=\mathfrak{C}_{2}\left(\emptyset\right)=0 より c_{1}'=c_{1}\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{0}\right)=0 である。

(×1)
\begin{array}{lcl}c_{1}'&=&0\\c_{i+1}'&=&c_{i+1}\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i}\right)\end{array}

これを(*28)の漸化式部分に代入して整理すると(×2)のようになる。

(*28)再掲
\begin{array}{lcl}c_{i+1}&=&\mathfrak{C}_{2}\left(\Phi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\\&\oplus&\left(\mathfrak{C}_{1}\left(\Phi_{i}\right)\,\oplus\,\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\right)c_{i}\\&\oplus&\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}\\&\oplus&\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i}c_{i-1}\end{array}

(×2)
\begin{array}{lcl}c_{i+1}'&=&\mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Phi_{i-1}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-1}\right)\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\mathfrak{C}_{1}\left(\Phi_{i}\right)\\&\oplus&\left(\mathfrak{C}_{1}\left(\Phi_{i}\right)\,\oplus\,\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\right)c_{i}'\\&\oplus&\left(\mathfrak{C}_{1}\left(\Phi_{i}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-1}\right)\right)\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}'\\&\oplus&\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i}'c_{i-1}'\end{array}

(×2)の1行目を見ると、 \mathfrak{C}_{1}\left(\Phi_{i}\right)\mathfrak{C}_{2}\left(\Phi_{i-1}\right)\mathfrak{C}_{4}\left(\Phi_{i-2}\right) の対称式になっている。
また、 c_{i}'c_{i-1}' の項もその3つのうち2つが係数になっており、もう少しで対称式になりそうだ。
……これはあやしい。
対称式ということは \mathfrak{C}_{r} の出番なので、これを使うことにしよう。
そのためにまず、 1\le i\le 31 なる i について \Psi_{i}\overset{\mathrm{def}}{=}\left\{\,\mathfrak{C}_{1}\left(\Phi_{i}\right)\,,\,\mathfrak{C}_{2}\left(\Phi_{i-1}\right)\,,\,\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\,\right\} を定義する。
ただし \Phi_{0}=\Phi_{-1}=\emptyset より \Psi_{1}=\left\{\,\mathfrak{C}_{1}\left(\Phi_{1}\right)\,,\,\mathfrak{C}_{2}\left(\Phi_{0}\right)\,,\,\mathfrak{C}_{4}\left(\Phi_{-1}\right)\,\right\}=\left\{\,\mathfrak{C}_{1}\left(\Phi_{1}\right)\,\right\}\Psi_{2}=\left\{\,\mathfrak{C}_{1}\left(\Phi_{2}\right)\,,\,\mathfrak{C}_{2}\left(\Phi_{1}\right)\,,\,\mathfrak{C}_{4}\left(\Phi_{0}\right)\,\right\}=\left\{\,\mathfrak{C}_{1}\left(\Phi_{2}\right)\,,\,\mathfrak{C}_{2}\left(\Phi_{1}\right)\,\right\} である。

(×3)
\begin{array}{lcl}\Psi_{1}&=&\left\{\,\mathfrak{C}_{1}\left(\Phi_{1}\right)\,\right\}\\\Psi_{2}&=&\left\{\,\mathfrak{C}_{1}\left(\Phi_{2}\right)\,,\,\mathfrak{C}_{2}\left(\Phi_{1}\right)\,\right\}\\\Psi_{i}&=&\left\{\,\mathfrak{C}_{1}\left(\Phi_{i}\right)\,,\,\mathfrak{C}_{2}\left(\Phi_{i-1}\right)\,,\,\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\,\right\}\;\left(\mathrm{as}\,3\le i\le 31\right)\end{array}

これを使うと、(×2)は次のように書き直せる。

(×4)
\begin{array}{lclcl}&&c_{i+1}'&=&\mathfrak{C}_{2}\left(\Psi_{i}\right)\\&&&\oplus&\left(\mathfrak{C}_{1}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-1}\right)\right)c_{i}'\\&&&\oplus&\left(\mathfrak{C}_{1}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\right)\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}'\\&&&\oplus&\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i}'c_{i-1}'\\&&&=&\mathfrak{C}_{2}\left(\Psi_{i}\right)\\&&&\oplus&\mathfrak{C}_{1}\left(\Psi_{i}\right)c_{i}'\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-1}\right)c_{i}'\\&&&\oplus&\mathfrak{C}_{1}\left(\Psi_{i}\right)\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}'\,\oplus\,\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}'\\&&&\oplus&\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i}'c_{i-1}'\\\Leftrightarrow&\,&c_{i+1}'\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-1}\right)c_{i}'&=&\mathfrak{C}_{2}\left(\Psi_{i}\right)\\&&&\oplus&\mathfrak{C}_{1}\left(\Psi_{i}\right)\left(c_{i}'\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}'\right)\\&&&\oplus&\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i}'c_{i-1}'\end{array}

(※途中で \mathfrak{C}_{4}\left(\Phi_{i-2}\right)\mathfrak{C}_{2}\left(\Phi_{i-2}\right)=\mathfrak{C}_{6}\left(\Phi_{i-2}\right)=0 (∵ r=6>n=n\left(\Phi_{i-2}\right)=5 )を使った。)
さらに、 0\le i\le 31 なる i について、 c_{i+1}''\overset{\mathrm{def}}{=}c_{i+1}'\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-1}\right)c_{i}' を定義する。
ただし \mathfrak{C}_{2}\left(\Phi_{-1}\right)=\mathfrak{C}_{2}\left(\Phi_{0}\right)=\mathfrak{C}_{2}\left(\emptyset\right)=0 より c_{1}''=c_{1}'\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{-1}\right)c_{0}'=0c_{2}''=c_{2}'\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{0}\right)c_{1}'=0 である。

(×5)
\begin{array}{lcl}c_{1}''&=&0\\c_{2}''&=&0\\c_{i+1}''&=&c_{i+1}'\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-1}\right)c_{i}'\;\left(\mathrm{as}\,2\le i\le 31\right)\end{array}

これを(×4)に適用すると、次のようになる。

(×6)
c_{i+1}''=\mathfrak{C}_{2}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Psi_{i}\right)c_{i}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i}'c_{i-1}'

……実に惜しい形になった。
第3項( c_{i}'c_{i-1}' の項)がなければ、あとは比較的簡単に解けたのになぁ。

ちなみに第3項の \left\{c_{i}'\right\}\left\{c_{i}''\right\} に置き換えようとするともっと複雑な式になるのであまり意味がない。
一応書いておくと、 c_{i+1}''=c_{i+1}'\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-1}\right)c_{i}'\;\Leftrightarrow\;c_{i+1}'=c_{i+1}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-1}\right)c_{i}' より、

(×7)
\begin{array}{lcl}\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i}'c_{i-1}'&=&\left(\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}'\right)c_{i}'\\&=&\left(c_{i}''\,\oplus\,c_{i}'\right)c_{i}'\\&=&c_{i}''c_{i}'\,\oplus\,c_{i}'\\&=&\left(c_{i}''\,\oplus\,1\right)c_{i}'\\&=&\bar{\,c_{i}''\,}c_{i}'\\&=&\bar{\,c_{i}''\,}\left(c_{i}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}'\right)\\&=&\bar{\,c_{i}''\,}\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}'\\&=&\bar{\,c_{i}''\,}\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\left(c_{i-1}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)c_{i-2}'\right)\\&=&\bar{\,c_{i}''\,}\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\left(c_{i-1}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)\left(c_{i-2}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-4}\right)c_{i-3}'\right)\right)\\&=&\bar{\,c_{i}''\,}\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\left(c_{i-1}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)c_{i-2}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)\mathfrak{C}_{2}\left(\Phi_{i-4}\right)c_{i-3}'\right)\\&=&\bar{\,c_{i}''\,}\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\left(c_{i-1}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)c_{i-2}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)\mathfrak{C}_{2}\left(\Phi_{i-4}\right)\left(c_{i-3}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-5}\right)c_{i-4}'\right)\right)\\&=&\bar{\,c_{i}''\,}\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\left(c_{i-1}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)c_{i-2}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)\mathfrak{C}_{2}\left(\Phi_{i-4}\right)c_{i-3}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)\mathfrak{C}_{2}\left(\Phi_{i-4}\right)\mathfrak{C}_{2}\left(\Phi_{i-5}\right)c_{i-4}'\right)\\&\vdots&\\&=&\bar{\,c_{i}''\,}\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\left(c_{i-1}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)c_{i-2}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)\mathfrak{C}_{2}\left(\Phi_{i-4}\right)c_{i-3}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)\mathfrak{C}_{2}\left(\Phi_{i-4}\right)\mathfrak{C}_{2}\left(\Phi_{i-5}\right)c_{i-4}''\,\;\,\oplus\,\dots\,\oplus\,\;\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)\mathfrak{C}_{2}\left(\Phi_{i-4}\right)\dots\mathfrak{C}_{2}\left(\Phi_{1}\right)c_{2}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)\mathfrak{C}_{2}\left(\Phi_{i-4}\right)\dots\mathfrak{C}_{2}\left(\Phi_{0}\right)c_{1}'\right)\\&=&\bar{\,c_{i}''\,}\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\left(c_{i-1}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)c_{i-2}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)\mathfrak{C}_{2}\left(\Phi_{i-4}\right)c_{i-3}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)\mathfrak{C}_{2}\left(\Phi_{i-4}\right)\mathfrak{C}_{2}\left(\Phi_{i-5}\right)c_{i-4}''\,\;\,\oplus\,\dots\,\oplus\,\;\,\mathfrak{C}_{2}\left(\Phi_{i-3}\right)\mathfrak{C}_{2}\left(\Phi_{i-4}\right)\dots\mathfrak{C}_{2}\left(\Phi_{1}\right)c_{2}''\right)\\&=&\bar{\,c_{i}''\,}\bigoplus_{j=1}^{i-2}\left(c_{j+1}''\bigcap_{k=j}^{i-2}\mathfrak{C}_{2}\left(\Phi_{k}\right)\right)\end{array}

これを(×6)に代入すると(×8)のようになる。

(×6)再掲
c_{i+1}''=\mathfrak{C}_{2}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Psi_{i}\right)c_{i}''\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i}'c_{i-1}'

(×8)
c_{i+1}''=\mathfrak{C}_{2}\left(\Psi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Psi_{i}\right)c_{i}''\,\oplus\,\bar{\,c_{i}''\,}\bigoplus_{j=1}^{i-2}\left(c_{j+1}''\bigcap_{k=j}^{i-2}\mathfrak{C}_{2}\left(\Phi_{k}\right)\right)

\left\{c_{i}'\right\} は消去できたが、どう見ても解けそうな形じゃない。
どうやら c_{i}'c_{i-1}' を何とかしないと話にならないようだ。

というわけで、以上の変形は失敗に終わった。
他の方法は今のところ思いつかないので、何か閃いたら追記することにしよう。





【メモ1】

c_{i+1}=\mathfrak{C}_{2}\left(\Phi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}\right)c_{i}\,\oplus\,\left(\mathfrak{C}_{1}\left(\Phi_{i}\right)\,\oplus\,c_{i}\right)\left(\mathfrak{C}_{4}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{i-2}\right)c_{i-1}\right)

\begin{array}{lcl}c_{1}&=&0\\c_{2}&=&\mathfrak{C}_{2}\left(\Phi_{1}\right)\\c_{3}&=&\mathfrak{C}_{2}\left(\Phi_{2}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{1}\right)\mathfrak{C}_{1}\left(\Phi_{2}\right)\\c_{4}&=&\mathfrak{C}_{2}\left(\Phi_{3}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{2}\right)\mathfrak{C}_{1}\left(\Phi_{3}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{1}\right)\mathfrak{C}_{1}\left(\Phi_{2}\right)\mathfrak{C}_{1}\left(\Phi_{3}\right)\\&\oplus&\mathfrak{C}_{4}\left(\Phi_{1}\right)\mathfrak{C}_{1}\left(\Phi_{3}\right)\\&\oplus&\mathfrak{C}_{4}\left(\Phi_{1}\right)\mathfrak{C}_{2}\left(\Phi_{2}\right)\\c_{5}&=&\mathfrak{C}_{2}\left(\Phi_{4}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{3}\right)\mathfrak{C}_{1}\left(\Phi_{4}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{2}\right)\mathfrak{C}_{1}\left(\Phi_{3}\right)\mathfrak{C}_{1}\left(\Phi_{4}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{1}\right)\mathfrak{C}_{1}\left(\Phi_{2}\right)\mathfrak{C}_{1}\left(\Phi_{3}\right)\mathfrak{C}_{1}\left(\Phi_{4}\right)\\&\oplus&\mathfrak{C}_{4}\left(\Phi_{2}\right)\mathfrak{C}_{1}\left(\Phi_{4}\right)\,\oplus\,\mathfrak{C}_{4}\left(\Phi_{1}\right)\mathfrak{C}_{1}\left(\Phi_{3}\right)\mathfrak{C}_{1}\left(\Phi_{4}\right)\\&\oplus&\mathfrak{C}_{4}\left(\Phi_{1}\right)\mathfrak{C}_{2}\left(\Phi_{2}\right)\mathfrak{C}_{1}\left(\Phi_{4}\right)\\&\oplus&\mathfrak{C}_{4}\left(\Phi_{2}\right)\mathfrak{C}_{2}\left(\Phi_{3}\right)\\&\oplus&\mathfrak{C}_{4}\left(\Phi_{1}\right)\mathfrak{C}_{4}\left(\Phi_{2}\right)\mathfrak{C}_{1}\left(\Phi_{3}\right)\\&\oplus&\mathfrak{C}_{2}\left(\Phi_{1}\right)\mathfrak{C}_{5}\left(\Phi_{2}\right)\mathfrak{C}_{1}\left(\Phi_{3}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{1}\right)\mathfrak{C}_{3}\left(\Phi_{2}\right)\mathfrak{C}_{1}\left(\Phi_{4}\right)\,\oplus\,\mathfrak{C}_{2}\left(\Phi_{1}\right)\mathfrak{C}_{3}\left(\Phi_{2}\right)\mathfrak{C}_{2}\left(\Phi_{3}\right)\end{array}

【メモ2】
2変数の場合( \Phi_{i}=\left\{p_{i}\,,\,q_{i}\right\}

\left\{\begin{array}{lcl}c_{1}&=&0\\c_{i+1}&=&\mathfrak{C}_{2}\left(\Phi_{i}\right)\,\oplus\,\mathfrak{C}_{1}\left(\Phi_{i}\right)\,c_{i}\end{array}\right.

c_{i}=\bigoplus_{k=1}^{i-1}\left(\mathfrak{C}_{2}\left(\Phi_{k}\right)\bigcap_{l=k+1}^{i-1}\mathfrak{C}_{1}\left(\Phi_{l}\right)\right)

\begin{array}{lclclclclcl}c_{1}&=&0\\c_{2}&=&\mathfrak{C}_{2}\left(\Phi_{1}\right)\\c_{3}&=&\mathfrak{C}_{2}\left(\Phi_{2}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{1}\right)\,\mathfrak{C}_{1}\left(\Phi_{2}\right)\\c_{4}&=&\mathfrak{C}_{2}\left(\Phi_{3}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{2}\right)\,\mathfrak{C}_{1}\left(\Phi_{3}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{1}\right)\,\mathfrak{C}_{1}\left(\Phi_{2}\right)\,\mathfrak{C}_{1}\left(\Phi_{3}\right)\\&\vdots&&&&&&&\ddots&\\c_{32}&=&\mathfrak{C}_{2}\left(\Phi_{31}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{30}\right)\,\mathfrak{C}_{1}\left(\Phi_{31}\right)&\oplus&\mathfrak{C}_{2}\left(\Phi_{29}\right)\,\mathfrak{C}_{1}\left(\Phi_{30}\right)\,\mathfrak{C}_{1}\left(\Phi_{31}\right)&\oplus&\dots&\oplus&\mathfrak{C}_{2}\left(\Phi_{1}\right)\,\mathfrak{C}_{1}\left(\Phi_{2}\right)\,\mathfrak{C}_{1}\left(\Phi_{3}\right)\dots\,\mathfrak{C}_{1}\left(\Phi_{31}\right)\end{array}



(日記はここで途切れている。どうやら途中保存のようだ。)