与えられた署名上で自由に生成された代数構造
普遍代数 と 数理論理学 において 、 代数という用語は、 与えられた 署名 に対して自由に生成された 代数構造を 指します。 [1] [2] たとえば、 単一の 二項演算からなる 署名 では、変数の集合 Xに対する代数という用語は、 X によって生成された 自由なマグマ そのものです 。この概念の他の同義語には、 絶対自由代数 や 無政府代数など があります。 [3]
圏論の 観点からは 、項代数とは、 同じ署名を持つ すべての X 生成代数の圏の 初期オブジェクト であり、 同型を除いて一意であるこのオブジェクトは 初期代数 と呼ばれ 、 準同型 射影によって圏内のすべての代数を生成します。 [4] [5]
同様の概念に論理 における エルブラン宇宙 があり、 論理プログラミング では通常この名前で使用され 、 [6] 一連 の節内の定数と関数記号の集合から始めて(完全に自由に)定義されます 。つまり、エルブラン宇宙はすべて 基底項 、つまり変数を持たない項で構成されます。
原子 式 または アトムは 、一般的に、項の組に適用される 述語 として定義されます。 基底アトム は、基底項のみが現れる述語です。 エルブラン基底 は、エルブラン宇宙の元の節と項の集合内の述語記号から形成できるすべての基底アトムの集合です。 [7] [8]これら2つの概念は 、ジャック・エルブラン にちなんで名付けられました 。
項代数は、抽象データ型 の セマンティクス においても役割を果たします 。抽象データ型の宣言は、複数のソートされた代数構造のシグネチャを提供し、項代数は抽象宣言の具体的なモデルです。
普遍代数
型 は 関数シンボルの集合であり、それぞれに アリティ (入力数)が関連付けられています。任意の非負整数 について 、は アリティ の関数シンボルを表します 。定数はアリティ 0 の関数シンボルです。
τ
{\displaystyle \tau}
ん
{\displaystyle n}
τ
ん
{\displaystyle \tau_{n}}
τ
{\displaystyle \tau}
ん
{\displaystyle n}
を型とし、を 変数 シンボルを表す空でないシンボルの集合とします。(簡単にするために、 と は 互いに素であると仮定します。) 上の 型の 項 の集合 は、 の変数シンボルと の定数および演算を 使用して構築できるすべての整形式の 文字列 の集合です 。正式には、 は次の最小の集合です。
τ
{\displaystyle \tau}
バツ
{\displaystyle X}
バツ
{\displaystyle X}
τ
{\displaystyle \tau}
T
(
バツ
)
{\displaystyle T(X)}
τ
{\displaystyle \tau}
バツ
{\displaystyle X}
バツ
{\displaystyle X}
τ
{\displaystyle \tau}
T
(
バツ
)
{\displaystyle T(X)}
バツ
∪
τ
0
⊆
T
(
バツ
)
{\displaystyle X\cup \tau _{0}\subseteq T(X)}
— の各変数記号 は の項であり 、 の各定数記号も の項です 。
バツ
{\displaystyle X}
T
(
バツ
)
{\displaystyle T(X)}
τ
0
{\displaystyle \tau_{0}}
すべての およびすべての関数記号 と項に対して 、文字列 が得られます。つまり、 項 が与えられた場合、それらに -ary 関数記号 を適用すると、 再び項が表されます。
ん
≥
1
{\displaystyle n\geq 1}
ふ
∈
τ
ん
{\displaystyle f\in \tau _{n}}
t
1
、
。
。
。
、
t
ん
∈
T
(
バツ
)
{\displaystyle t_{1},...,t_{n}\in T(X)}
ふ
(
t
1
、
。
。
。
、
t
ん
)
∈
T
(
バツ
)
{\displaystyle f(t_{1},...,t_{n})\in T(X)}
ん
{\displaystyle n}
t
1
、
。
。
。
、
t
ん
{\displaystyle t_{1},...,t_{n}}
ん
{\displaystyle n}
ふ
{\displaystyle f}
型 代数 という 用語は、要約すると、 各式をその文字列表現にマッピングする 型の代数です。正式には、 次のように定義されます。 [9]
T
(
バツ
)
{\displaystyle {\mathcal {T}}(X)}
τ
{\displaystyle \tau}
バツ
{\displaystyle X}
τ
{\displaystyle \tau}
T
(
バツ
)
{\displaystyle {\mathcal {T}}(X)}
のドメインは です 。
T
(
バツ
)
{\displaystyle {\mathcal {T}}(X)}
T
(
バツ
)
{\displaystyle T(X)}
の 各ゼロ引数関数に対して 、 は文字列 として定義されます 。
ふ
{\displaystyle f}
τ
0
{\displaystyle \tau_{0}}
ふ
T
(
バツ
)
(
)
{\displaystyle f^{{\mathcal {T}}(X)}()}
ふ
{\displaystyle f}
すべての および の 各 n 項関数、およびドメイン内の要素に対して 、 は 文字 列 として定義されます 。
ん
≥
1
{\displaystyle n\geq 1}
ふ
{\displaystyle f}
τ
{\displaystyle \tau}
t
1
、
。
。
。
、
t
ん
{\displaystyle t_{1},...,t_{n}}
ふ
T
(
バツ
)
(
t
1
、
。
。
。
、
t
ん
)
{\displaystyle f^{{\mathcal {T}}(X)}(t_{1},...,t_{n})}
ふ
(
t
1
、
。
。
。
、
t
ん
)
{\displaystyle f(t_{1},...,t_{n})}
項代数は 絶対的に自由である と言われています。なぜなら、型の 任意の代数に対して 、および任意の関数 に対して 、 一意の準同型 に拡張され 、各項を 対応する値 に単純に評価するからです 。正式には、各 に対して :
あ
{\displaystyle {\mathcal {A}}}
τ
{\displaystyle \tau}
グ
:
バツ
→
あ
{\displaystyle g:X\to {\mathcal {A}}}
グ
{\displaystyle g}
グ
∗
:
T
(
バツ
)
→
あ
{\displaystyle g^{\ast }:{\mathcal {T}}(X)\to {\mathcal {A}}}
t
∈
T
(
バツ
)
{\displaystyle t\in {\mathcal {T}}(X)}
グ
∗
(
t
)
∈
あ
{\displaystyle g^{\ast }(t)\in {\mathcal {A}}}
t
∈
T
(
バツ
)
{\displaystyle t\in {\mathcal {T}}(X)}
もし ならば 。
t
∈
バツ
{\displaystyle t\in X}
グ
∗
(
t
)
=
グ
(
t
)
{\displaystyle g^{\ast }(t)=g(t)}
もし ならば 。
t
=
ふ
∈
τ
0
{\displaystyle t=f\in \tau _{0}}
グ
∗
(
t
)
=
ふ
あ
(
)
{\displaystyle g^{\ast }(t)=f^{\mathcal {A}}()}
かつ で あれば 、 となります 。
t
=
ふ
(
t
1
、
。
。
。
、
t
ん
)
{\displaystyle t=f(t_{1},...,t_{n})}
ふ
∈
τ
ん
{\displaystyle f\in \tau _{n}}
ん
≥
1
{\displaystyle n\geq 1}
グ
∗
(
t
)
=
ふ
あ
(
グ
∗
(
t
1
)
、
。
。
。
、
グ
∗
(
t
ん
)
)
{\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}=\{+,*\}}
τ
私
=
{
}
{\displaystyle \tau _{i}=\{\}}
私
>
2
{\displaystyle i>2}
最もよく知られている 型の代数は、 自然数を 定義域として 持ち 、 、 、 を 通常の方法で解釈します。これを と呼びます 。
τ
{\displaystyle \tau}
0
{\displaystyle 0}
1
{\displaystyle 1}
+
{\displaystyle +}
∗
{\displaystyle *}
あ
ん
1つの
t
{\displaystyle {\mathcal {A}}_{nat}}
例の変数セット について、 上の 型の 項代数を調べます 。
X
=
{
x
,
y
}
{\displaystyle X=\{x,y\}}
T
(
X
)
{\displaystyle {\mathcal {T}}(X)}
τ
{\displaystyle \tau }
X
{\displaystyle X}
まず、型over の項の 集合 について考えます。 そのメンバーは、構文形式が一般的ではないため、認識しにくいため、
赤色で示します。例えば、
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)}
since は 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]
参照
参考文献
^ ウィルフリッド・ホッジス (1997). 短縮モデル理論 . ケンブリッジ大学出版局 . pp. 14. ISBN 0-521-58713-1 。
^ フランツ・バーダー 、 トビアス・ニプコウ (1998)。用語書き換えとそのすべて。 ケンブリッジ大学出版局 。p. 49。ISBN 0-521-77920-0 。
^クラウス・デネケ、シェリー・ L ・ウィスマス(2009年)。普遍代数と余代数。 ワールド・サイエンティフィック 。pp.21–23。ISBN 978-981-283-745-5 。
^ TH Tse ( 2010). 構造化分析および設計モデルの統一フレームワーク: 初期代数意味論とカテゴリー理論を使用したアプローチ 。 ケンブリッジ大学出版局 。pp. 46–47。doi :10.1017/ CBO9780511569890。ISBN 978-0-511-56989-0 。
^ Jean-Yves Béziau (1999)。「論理構文の数学的構造」。Carnielli, Walter Alexandre、 D'Ottaviano, Itala ML (編)。 現代論理学とコンピュータサイエンスの進歩: 1996 年 5 月 6 日~10 日、ブラジル、バイーア州サルバドールで開催された第 11 回ブラジル数学論理会議の議事録 。 アメリカ数学会 。p. 9。ISBN 978-0-8218-1364-5 . 2011年 4月18日 閲覧 。
^ ダーク・ヴァン・ダーレン (2004)。ロジックと構造。 スプリンガー 。 p. 108.ISBN 978-3-540-20879-2 。
^ M. Ben-Ari (2001). コンピュータサイエンスのための数学的論理. Springer . pp. 148–150. ISBN 978-1-85233-319-5 。
^ モンロー・ニューボーン (2001)。自動定理証明:理論と実践。 シュプリンガー 。p. 43。ISBN 978-0-387-95075-4 。
^ スタンレー・バリス、H・P・サンカッパナヴァール(1981年)。『普遍代数の講座』シュプリンガー。pp.68-69, 71。ISBN 978-1-4613-8132-7 。 {{cite book}}: CS1 maint: multiple names: authors list (link)
^ Rogelio Davila. 回答セットプログラミングの概要。
^ Jeanne Ferrante、Charles W. Rackoff ( 1979)。 論理理論の計算複雑性 。Springer 、第8章、定理1.2。
さらに読む
ジョエル・バーマン (2005)。「自由代数の構造」。 オートマトン、半群、普遍代数の構造理論 。 シュプリンガー 。pp. 47–76。MR 2210125 。
外部リンク