Freely generated algebraic structure over a given signature
普遍代数学 と 数理論理学 において 、 代数と は、与えられた 署名 上の自由に生成された 代数構造を 指す。 [1] [2] 例えば、 単一の 二項演算からなる 署名 において、変数集合 X 上の代数とは、 X によって生成される 自由マグマ そのものを指す。この概念の同義語には、 絶対自由代数 や 無政府代数 などがある。 [3]
圏論の 観点から見ると 、項代数とは、 同じ署名を持つ すべての X 生成代数の圏の 初期オブジェクト であり、 同型性を除いて一意であるこのオブジェクトは 初期代数 と呼ばれ、 準同型 射影によって圏のすべての代数 を生成する。 [4] [5]
同様の概念として、 論理 における エルブラン宇宙 があります。これは通常、論理プログラミング においてこの名称で用いられます 。 [6]これは、 節集合 内の定数と関数記号の集合から(完全に自由に)定義されます 。つまり、エルブラン宇宙はすべて 基底項 、つまり変数を含まない項から構成されます。
原子 式 または アトムは 、一般的に、項の組に適用される 述語 として定義されます。 基底アトム は、基底項のみが現れる述語です。 エルブラン基底 とは、エルブラン宇宙における元の節と項の集合に含まれる述語記号から形成できるすべての基底アトムの集合です。 [7] [8]これら2つの概念は、 ジャック・エルブラン にちなんで名付けられました 。
項代数は、抽象データ型 の セマンティクス でも役割を果たします 。抽象データ型の宣言は、複数のソートされた代数構造のシグネチャを提供し、項代数は抽象宣言の具体的なモデルです。
普遍代数 型 と は関数シンボルの集合であり、それぞれには対応する アリティ (つまり入力数)が関連付けられています。任意の非負整数 について 、 は アリティ の 関数シンボルを表します 。定数はアリティ 0 の関数シンボルです。 τ {\displaystyle \tau } n {\displaystyle n} τ n {\displaystyle \tau _{n}} τ {\displaystyle \tau } n {\displaystyle n}
を型とし、を 変数 シンボルを表す空でないシンボルの集合とします。(簡単のため、 と は互いに素である と仮定し ます。)すると、 上の 型の 項 の集合 は、 の変数シンボルと の定数および演算 を用いて構築できる すべての整形式の 文字列 の集合です。正式には、 は次を満たす最小の集合です。 τ {\displaystyle \tau } X {\displaystyle X} X {\displaystyle X} τ {\displaystyle \tau } T ( X ) {\displaystyle T(X)} τ {\displaystyle \tau } X {\displaystyle X} X {\displaystyle X} τ {\displaystyle \tau } T ( X ) {\displaystyle T(X)}
X ∪ τ 0 ⊆ T ( X ) {\displaystyle X\cup \tau _{0}\subseteq T(X)} — の各変数記号は の項であり 、 の各定数記号も の項です 。 X {\displaystyle X} T ( X ) {\displaystyle T(X)} τ 0 {\displaystyle \tau _{0}} すべての 関数記号 および項について 、文字列 が得られます。 項 が与えられた場合、それらに -ary 関数記号 を適用すると、 再び項 が表されます。 n ≥ 1 {\displaystyle n\geq 1} f ∈ τ n {\displaystyle f\in \tau _{n}} t 1 , . . . , t n ∈ T ( X ) {\displaystyle t_{1},...,t_{n}\in T(X)} f ( t 1 , . . . , t n ) ∈ T ( X ) {\displaystyle f(t_{1},...,t_{n})\in T(X)} n {\displaystyle n} t 1 , . . . , t n {\displaystyle t_{1},...,t_{n}} n {\displaystyle n} f {\displaystyle f} 型 代数 とは、要約すると、 各式をその文字列表現に写像する 型の代数である 。 正式には、次のように定義される。 [9] T ( X ) {\displaystyle {\mathcal {T}}(X)} τ {\displaystyle \tau } X {\displaystyle X} τ {\displaystyle \tau } T ( X ) {\displaystyle {\mathcal {T}}(X)}
のドメインは です 。 T ( X ) {\displaystyle {\mathcal {T}}(X)} T ( X ) {\displaystyle T(X)} の 各 nullary 関数に対して 、 は文字列 として定義されます 。 f {\displaystyle f} τ 0 {\displaystyle \tau _{0}} f T ( X ) ( ) {\displaystyle f^{{\mathcal {T}}(X)}()} f {\displaystyle f} すべての および の 各 n 項関数、 および 定義域内の要素に対して、 は文字列 として定義されます 。 n ≥ 1 {\displaystyle n\geq 1} f {\displaystyle f} τ {\displaystyle \tau } t 1 , . . . , t n {\displaystyle t_{1},...,t_{n}} f T ( X ) ( t 1 , . . . , t n ) {\displaystyle f^{{\mathcal {T}}(X)}(t_{1},...,t_{n})} f ( t 1 , . . . , t n ) {\displaystyle f(t_{1},...,t_{n})} 項代数は 絶対的に自由である と言われる。なぜなら、 型 の任意の代数 、および任意の関数 に対して 、 は一意の準同型 に拡張され 、各項を 対応する値 に単純に評価するからである 。正式には、各 に対して : A {\displaystyle {\mathcal {A}}} τ {\displaystyle \tau } g : X → A {\displaystyle g:X\to {\mathcal {A}}} g {\displaystyle g} g ∗ : T ( X ) → A {\displaystyle g^{\ast }:{\mathcal {T}}(X)\to {\mathcal {A}}} t ∈ T ( X ) {\displaystyle t\in {\mathcal {T}}(X)} g ∗ ( t ) ∈ A {\displaystyle g^{\ast }(t)\in {\mathcal {A}}} t ∈ T ( X ) {\displaystyle t\in {\mathcal {T}}(X)}
もし なら 、 。 t ∈ X {\displaystyle t\in X} g ∗ ( t ) = g ( t ) {\displaystyle g^{\ast }(t)=g(t)} もし なら 、 。 t = f ∈ τ 0 {\displaystyle t=f\in \tau _{0}} g ∗ ( t ) = f A ( ) {\displaystyle g^{\ast }(t)=f^{\mathcal {A}}()} かつ の 場合に は と なります 。 t = f ( t 1 , . . . , t n ) {\displaystyle t=f(t_{1},...,t_{n})} f ∈ τ n {\displaystyle f\in \tau _{n}} n ≥ 1 {\displaystyle n\geq 1} g ∗ ( t ) = f A ( g ∗ ( t 1 ) , . . . , g ∗ ( t n ) ) {\displaystyle g^{\ast }(t)=f^{\mathcal {A}}(g^{\ast }(t_{1}),...,g^{\ast }(t_{n}))}
例 例として、整数演算からヒントを得た型は 、 各 に対して、 、 、によって定義できます 。 τ 0 = { 0 , 1 } {\displaystyle \tau _{0}=\{0,1\}} τ 1 = { } {\displaystyle \tau _{1}=\{\}} τ 2 = { + , ∗ } {\displaystyle \tau _{2}=\{+,*\}} τ i = { } {\displaystyle \tau _{i}=\{\}} i > 2 {\displaystyle i>2}
最もよく知られている 型の代数は 、 自然数を 定義域として 持ち 、、、 を 通常の方法で解釈します。これを と呼びます 。 τ {\displaystyle \tau } 0 {\displaystyle 0} 1 {\displaystyle 1} + {\displaystyle +} ∗ {\displaystyle *} A n a t {\displaystyle {\mathcal {A}}_{nat}}
変数セット の例については、 上の 型の 項代数を調べます 。 X = { x , y } {\displaystyle X=\{x,y\}} T ( X ) {\displaystyle {\mathcal {T}}(X)} τ {\displaystyle \tau } X {\displaystyle X}
まず、型 の項 の 集合 について考察する。 その要素は構文形式が一般的ではないため、 赤色で表示することで識別しにくくなる可能性がある。例えば、 T ( X ) {\displaystyle T(X)} τ {\displaystyle \tau } X {\displaystyle X}
x ∈ T ( X ) {\displaystyle {\color {red}x}\in T(X)} は変数シンボルな ので、 x ∈ X {\displaystyle x\in X} 1 ∈ T ( X ) {\displaystyle {\color {red}1}\in T(X)} は定数記号な ので、 1 ∈ τ 0 {\displaystyle 1\in \tau _{0}} + x 1 ∈ T ( X ) {\displaystyle {\color {red}+x1}\in T(X)} は2項関数記号な ので、 + {\displaystyle +} ∗ + x 1 x ∈ T ( X ) {\displaystyle {\color {red}*+x1x}\in T(X)} は 2項関数シンボルです。 ∗ {\displaystyle *} より一般的には、 の各文字列は 、許容される記号から構築され、 ポーランド語の接頭辞記法で書かれた 数式 に対応します 。例えば、項 は 通常の 接頭辞記法の 式 に対応します 。ポーランド語の記法では曖昧さを避けるために括弧は必要ありません。例えば、接頭辞式 は 項 に対応します 。 T ( X ) {\displaystyle T(X)} ∗ + x 1 x {\displaystyle {\color {red}*+x1x}} ( x + 1 ) ∗ x {\displaystyle (x+1)*x} x + ( 1 ∗ x ) {\displaystyle x+(1*x)} + x ∗ 1 x {\displaystyle {\color {red}+x*1x}}
反例をいくつか挙げると、例えば
z ∉ T ( X ) {\displaystyle {\color {red}z}\not \in T(X)} は変数記号としても定数記号としても認められていない ため、 z {\displaystyle z} 3 ∉ T ( X ) {\displaystyle {\color {red}3}\not \in T(X)} 同じ理由で、 + 1 ∉ T ( X ) {\displaystyle {\color {red}+1}\not \in T(X)} は 2 項関数記号ですが、ここでは 1 つの引数項 (つまり ) のみで使用されています。 + {\displaystyle +} 1 {\displaystyle {\color {red}1}} 項集合が確立されたので、 型 の 項代数について考察します 。 この代数は を定義域として用いており、この定義域上で加算と乗算を定義する必要があります。加算関数は 2つの項 とを取り 、項 を返します 。同様に、乗算関数は 与えられた項 と を項 に写像します 。例えば、 は 項 に評価されます 。非公式には、 と の 演算はどちらも、実際に計算を行うのではなく、実行すべき計算を記録するだけという点で「怠け者」です。 T ( X ) {\displaystyle T(X)} T ( X ) {\displaystyle {\mathcal {T}}(X)} τ {\displaystyle \tau } X {\displaystyle X} T ( X ) {\displaystyle T(X)} + T ( X ) {\displaystyle +^{{\mathcal {T}}(X)}} p {\displaystyle p} q {\displaystyle q} + p q {\displaystyle {\color {red}+}pq} ∗ T ( X ) {\displaystyle *^{{\mathcal {T}}(X)}} p {\displaystyle p} q {\displaystyle q} ∗ p q {\displaystyle {\color {red}*}pq} ∗ T ( X ) ( + x 1 , x ) {\displaystyle *^{{\mathcal {T}}(X)}({\color {red}+x1},{\color {red}x})} ∗ + x 1 x {\displaystyle {\color {red}*+x1x}} + T ( X ) {\displaystyle +^{{\mathcal {T}}(X)}} ∗ T ( X ) {\displaystyle *^{{\mathcal {T}}(X)}}
準同型写像の一意な拡張可能性の例として、 と によって定義される を考えてみましょう 。非公式には、 は変数記号への値の割り当てを定義しており、これが完了すると、 のすべての項は において一意に評価できるようになります 。例えば、 g : X → A n a t {\displaystyle g:X\to {\mathcal {A}}_{nat}} g ( x ) = 7 {\displaystyle g(x)=7} g ( y ) = 3 {\displaystyle g(y)=3} g {\displaystyle g} T ( X ) {\displaystyle T(X)} A n a t {\displaystyle {\mathcal {A}}_{nat}}
g ∗ ( + x 1 ) = g ∗ ( x ) + g ∗ ( 1 ) since g ∗ is a homomorphism = g ( x ) + g ∗ ( 1 ) since g ∗ coincides on X with g = 7 + g ∗ ( 1 ) by definition of g = 7 + 1 since g ∗ is a homomorphism = 8 according to the well-known arithmetical rules in A n a t {\displaystyle {\begin{array}{lll}&g^{*}({\color {red}+x1})\\=&g^{*}({\color {red}x})+g^{*}({\color {red}1})&{\text{ since }}g^{*}{\text{ is a homomorphism }}\\=&g({\color {red}x})+g^{*}({\color {red}1})&{\text{ since }}g^{*}{\text{ coincides on }}X{\text{ with }}g\\=&7+g^{*}({\color {red}1})&{\text{ by definition of }}g\\=&7+1&{\text{ since }}g^{*}{\text{ is a homomorphism }}\\=&8&{\text{ according to the well-known arithmetical rules in }}{\mathcal {A}}_{nat}\\\end{array}}} 同様の方法で、 が得られます 。 g ∗ ( ∗ + x 1 x ) = . . . = 8 ∗ g ( x ) = . . . = 56 {\displaystyle g^{*}({\color {red}*+x1x})=...=8*g({\color {red}x})=...=56}
エルブラン基地 言語のシグネチャ σ は、定数 O 、関数記号 F 、述語 P のアルファベットからなる三つ組 < O 、 F 、 P > である 。 シグネチャ σ の エルブラン 基底 [ 10 ] は 、 σ の すべて の 基底アトム、すなわち形式 R ( t 1 、 ...、 t n ) のすべての式から構成される 。 ここ で 、 t 1 、 ... 、 t n は 変数 を 含ま ない 項 (つまりエルブラン宇宙の要素) であり、 Rは n 項関係記号 ( つまり 述語 )である 。等式を含む論理の場合、形式 t 1 = t 2 のすべての方程式も含まれる。ここで、 t 1 と t 2 には変数が含まれない。
決定可能性 項代数は量指定子除去 を用いて決定可能であることが示される。 二項構成子は単射であり、したがって対関数であるため、 決定問題の複雑さは 非基本的である。 [11]
参照
参考文献
さらに読む ジョエル・バーマン (2005). 「自由代数の構造」. 『オートマトン、半群、普遍代数の構造理論』 シュプリンガー . pp. 47–76. MR 2210125.
外部リンク