束縛変数
[Wikipedia|▼Menu]

数学形式言語に関連する分野(数理論理学計算機科学)において、自由変数(または自由変項、: free variable)は数式論理式で置換が行われる場所を指示する記法である。この考え方はプレースホルダーやワイルドカードにも関連する。

変数x は、例えば次のように書くと 束縛変数(または束縛変項、: bound variable)になる。全ての x {\displaystyle x} について ( x + 1 ) 2 ≥ x 2 + 2 x + 1 {\displaystyle (x+1)^{2}\geq x^{2}+2x+1} が成り立つ。

あるいは x 2 = 2 {\displaystyle x^{2}=2} となるような x {\displaystyle x} が存在する。

これらの命題では、x の代わりに別の文字を使っても論理的には全く変化しない。しかし、複雑な命題で同じ文字を別の意味で再利用すると混乱が生じる。すなわち、自由変数が束縛されると、ある意味ではその後の数式の構成をサポートする作業に関与しなくなる。

プログラミングにおいては、自由変数とは関数の中で参照される局所変数引数以外の変数を意味する。

自由変数と束縛変数を正確に定義する前に、定義をより明確にする例を以下に示す。

次の式 ∑ k = 1 10 f ( k , n ) {\displaystyle \sum _{k=1}^{10}f(k,n)}

において、 n {\displaystyle n} は自由変数、 k {\displaystyle k} は束縛変数である。結果として、この式は n {\displaystyle n} の値によって変化するが k {\displaystyle k} には依存しない。

次の式 ∫ 0 ∞ x y − 1 e − x d x {\displaystyle \int _{0}^{\infty }x^{y-1}e^{-x}\,dx}

において、 y {\displaystyle y} は自由変数、 x {\displaystyle x} は束縛変数である。同様にこの式の値は y {\displaystyle y} の値によって変化するが、 x {\displaystyle x} には依存しない。

次の式 lim h → 0 f ( x + h ) − f ( x ) h {\displaystyle \lim _{h\rightarrow 0}{\frac {f(x+h)-f(x)}{h}}}

において、 x {\displaystyle x} は自由変数、 h {\displaystyle h} は束縛変数である。同様にこの式の値は x {\displaystyle x} の値によって変化するが、 h {\displaystyle h} には依存しない。

次の論理式 ∀ x   ∃ y   φ ( x , y , z ) {\displaystyle \forall x\ \exists y\ \varphi (x,y,z)}

において、 z {\displaystyle z} は自由変項、 x {\displaystyle x} と y {\displaystyle y} は束縛変項である。この論理式の真理値は z {\displaystyle z} の値によって変化するが、 x {\displaystyle x} と y {\displaystyle y} には依存しない。
束縛作用素(演算子)

以下は変数束縛作用素(演算子)である。それぞれ、変数 x {\displaystyle x} を束縛する。 ∑ x ∈ S ∏ x ∈ S ∫ 0 ∞ ⋯ d x lim x → 0 ∀ x ∃ x {\displaystyle \sum _{x\in S}\quad \quad \prod _{x\in S}\quad \quad \int _{0}^{\infty }\cdots \,dx\quad \quad \lim _{x\to 0}\quad \quad \forall x\quad \quad \exists x}
形式的解説

変数束縛機構は数学、論理学、計算機科学など様々な分野で使われるが、いずれの場合もそれらは式と変数についてのその分野における全く統語的な属性である。ここでは式をで表し、その葉ノードに変数、定数、定項などが対応し、葉でないノードに論理演算子が対応するように構成すると考える。変数束縛演算子は論理演算子であり、ほとんど全ての形式言語に存在する。実際、束縛ができない言語は非常に表現能力が低く、使いにくい。束縛演算子 Q {\displaystyle Q} は2つの引数をとる。一つは変数 v {\displaystyle v} 、もう一つは式 P {\displaystyle P} であり、これによって新たな式 Q ( v , P ) {\displaystyle Q(v,P)} が生成される。束縛演算子の意味は、その言語の意味論で提供されるもので、ここでは考慮しない。

変数束縛は三つのものと関連する。一つめは変数 v {\displaystyle v} 、二つめは式内でその変数が現れる場所 a {\displaystyle a} 、三つめは Q ( v , P ) {\displaystyle Q(v,P)} で形成される木の葉でないノード n {\displaystyle n} である。ここでは、変数は葉ノードにあると定義したので、束縛はノード n {\displaystyle n} の下で起きる。

数学における例として、次の関数定義式を考える。 ( x 1 , … , x n ) ↦ t {\displaystyle (x_{1},\ldots ,x_{n})\mapsto \operatorname {t} }

ここで、 t {\displaystyle t} は式である。 t {\displaystyle t} には x 1 , … , x n {\displaystyle x_{1},\dots ,x_{n}} の全部または一部が含まれることがあり、他の変数も含まれることがある。この場合、関数定義が変数 x 1 , … , x n {\displaystyle x_{1},\dots ,x_{n}} を束縛していると言える。

ラムダ計算では、 M = λ x . T {\displaystyle M=\lambda x.T} というラムダ式で、 x {\displaystyle x} は M {\displaystyle M} においては束縛変数、 T {\displaystyle T} においては自由変数である。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:11 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef