±マグマ
集合 が二項演算 と単項演算 を持つとき を±マグマと呼ぶことにします。「単項・二項マグマ」と呼んでいましたが長いのでこう呼ぶことにします。ここでは、マグマに関する議論に演算を付け加えたものをまとめて説明していきます。
この議論に関する一般論があると思うのですが、ウェブで検索しても見つかりませんでした。「Universal Algebra for Computer Scientists」という本に少し書かれているようです。この本を持っているので今後読んでみたいと思います。「完備化」についてはWikipediaに「クヌース・ベンディックス完備化アルゴリズム」という記事があります。「完備化」についても今後調査したいと思います。
部分±マグマ
を±マグマとします。 に対して 、 と書くことにします。 が 、 を満たすとき は 、 の への制限に関して±マグマとなります。このような を の部分±マグマと呼ぶことにします。
部分集合で生成された部分±マグマ
を±マグマ の部分集合とします。 に対して、 が を含む の部分マグマであり、 を含む の部分±マグマの最小のものであるとき、 を で生成された の部分±マグマと呼ぶことにします。±マグマ が で生成された の部分±マグマであるとき を で生成された±マグマと呼ぶことにします。
は で生成された の部分±マグマとなります。
±マグマの「多項式」
±マグマと と集合 の元に、「 」、「」、「」、「」をを付け加えたものからなる、有限個の列全体の集合を とします。
だけの長さ の列を とし、 とします。同様に だけの長さ の列を とし、 とします。 に対して となる を とします。
に二項演算 を \begin{cases}
α \boxplus β = [\grave{α} + \grave{β}] & (α, β \in M' \ のとき) \\
α \boxplus β = (\!\!(α \oplus β)\!\!) & (それ以外のとき) \\
\end{cases}、単項演算 を \begin{cases}
\boxminus α = [- \grave{α}] & (α \in M' \ のとき) \\
\boxminus α = (\!\!(\ominus α)\!\!) & (それ以外のとき) \\
\end{cases} と定義すると は±マグマとなります。
で生成された の部分±マグマを と書くことにします。 の演算を 、 と書くことにします。以下では を 、 を と書きます。
「多項式」からの写像の準同型への拡張
の台集合 の部分集合 に対して \begin{cases}
B^{\pm(1)} = B \\
B^{\pm(n+1)} = (B^{\pm(n)} + B^{\pm(n)}) \cup (- B^{\pm(n)}) \\
\end{cases} と帰納的に を定義します。 となります。
を±マグマ、 を単射( は集合の直和)、 の への制限が±マグマの準同型であるとします。
に対して が存在します。 または となる が存在する( とします)か、または となる が存在します( とします)。\begin{cases}
g^*(\alpha) = g(\alpha) & (\alpha \in M \cup X \ のとき) \\
g^*(\alpha) = g^*(\beta) + g^*(\gamma) & (\alpha \in M[X]^+, \alpha = \beta + \gamma \ のとき) \\
g^*(\alpha) = - g^*(\beta) & (\alpha \in M[X]^-, \alpha = - \beta \ のとき) \\
\end{cases} と帰納的に定義することにより、±マグマの準同型 を定義することができます。
「多項式」への「代入」
とすると、上の議論により、 を拡張した を保存する±マグマの準同型 が一意的に存在します。
に対して と定義します。 のとき を と書くことにします。これを の に を代入する、または に を代入するということにします。 を代入写像と呼ぶことにします。
を を に写す写像とします。 のとき を を に写す写像とします。これは を に写す写像となります。これらを の「ラムダ式化」と呼ぶことにします。
部分項の位置
に対して、 となる が一意的に存在します。 を に写す写像を 、 を に写す写像を と定義することができます。 のときは に含まれない元 (失敗を表す)を追加した を考え、 と定義することによってこれらを拡張して、 とします。さらに と定義することによって拡張して、 とします。
同様に、 に対して、 となる が一意的に存在します。 を に写す写像を と定義することができます。 のときは と定義することによって拡張して、 とします。さらに と定義することによって拡張して、 とします。
を 、 を 、 を と書くことにすると \begin{cases}
α L = α_L & (α \in M[X]^+) \\
α L = ⊥ & (α \in M[X] \setminus M[X]^+) \\
⊥ L = ⊥
\end{cases} \begin{cases}
α R = α_L & (α \in M[X]^+) \\
α R = ⊥ & (α \in M[X] \setminus M[X]^+) \\
⊥ R = ⊥
\end{cases} \begin{cases}
α B = α_B & (α \in M[X]^-) \\
α B = ⊥ & (α \in M[X] \setminus M[X]^-) \\
⊥ B = ⊥
\end{cases} となります。
各 を 、 または としたとき、すべての自然数 に対する 全体の集合 を考えます。
であることから が存在するので、すべての に対する 全体の集合を とすると となります。
の元を の部分項と呼ぶことにします。 の部分項を と表したときの最も小さい に対応する 全体の集合を とします。 を の部分項 の位置と呼ぶことにします。
の位置 を で置き換えた を \begin{cases}
β & (n = 0) \\
L(α)(δ_2 \cdots δ_n \gets β) + R(α) & (n>0, δ_1 = L) \\
L(α) + R(α)(δ_2 \cdots δ_n \gets β) & (n>0, δ_1 = R) \\
- B(α)(δ_2 \cdots δ_n \gets β) & (n>0, δ_1 = B) \\
\end{cases} と帰納的に定義します。 のときの位置を と書くことにします。
書き換え規則
とします。 の順序のついた組 の「ラムダ式化」 を上の議論と同様に考えることができます。これを書き換え規則と呼び、 と書くことにします。
に対して、代入写像 が存在して、ある の部分項の位置 に対して となるとき、 は書き換え規則 によって書き換え可能ということにします。 の部分項の位置 を で置き換えた を書き換え後の項と呼ぶことにします。これを \begin{eqnarray*}
α & \xrightarrow{ρ, σ, p} & α(p \gets γ[σ])
\end{eqnarray*} または \begin{eqnarray*}
α & \xrightarrow{ρ} & α(p \gets γ[σ])
\end{eqnarray*} と書くことにします。