自由変数と束縛変数

ウィキペディアから、無料の百科事典
ナビゲーションにジャンプ 検索にジャンプ

数学、および理論理学コンピューターサイエンスを含む正式な言語を含む他の分野では自由変数は、式の中で置換が行われる可能性のある場所を指定する表記記号)であり、この式または任意のコンテナー式のパラメーターではありません。一部の古い本では、自由変数と束縛変数にそれぞれ実変数見かけの変数という用語を使用しています。アイデアは、プレースホルダー後で何らかの値に置き換えられる記号)、または不特定の記号を表す ワイルドカード文字。

コンピュータープログラミングでは、フリー変数という用語は、ローカル変数でもその関数のパラメーターでもない、関数で使用される変数を指します。非ローカル変数という用語は、この文脈ではしばしば同義語です。

対照的に、束縛変数は、論議領界または宇宙の領域内の特定の値または値の範囲に束縛された変数です。これは、論理数量詞、変数バインディング演算子、または変数に許可された値の明示的なステートメント( "…whereなど)を使用することで実現できます。は正の整数です。)例を次のセクションに示します。ただし、その値が真理値であるか、aの数値結果であるかにかかわらず、変数は式の値が依存する独立変数ではなくなります。計算、またはより一般的には、関数のイメージセットの要素。多くのコンテキストでの談話のドメインは理解されていますが、バインドされた変数の値の明示的な範囲が指定されていない場合は、次のことが必要になる場合があります。式を適切に評価するためにドメインを指定します。たとえば、両方の変数が論理数量詞によってバインドされている次の式について考えてみます。

この式は、のドメインは実数ですが、定義域が複素数の場合は 真です。

「ダミー変数」という用語は、バインドされた変数(コンピュータサイエンスよりも一般的な数学で一般的)にも使用されることがありますが、統計で使用される同じ名前の無関係なダミー変数の概念と混同しないでください。回帰分析。

自由変数束縛変数の正確な定義を述べる前に、以下は、おそらくこれら2つの概念を定義よりも明確にするいくつかの例です。

式で

nは自由変数で、kは束縛変数です。したがって、この式の値はnの値に依存しますが、依存できるkと呼ばれるものはありません

式で

yは自由変数で、xは束縛変数です。したがって、この式の値はyの値に依存しますが、依存できるxと呼ばれるものはありません

式で

xは自由変数で、hは束縛変数です。したがって、この式の値はxの値に依存しますが、依存できるhと呼ばれるものはありません

式で

zは自由変数であり、xyは束縛変数であり、論理量化子に関連付けられています。したがって、この式の論理値はzの値に依存しますが、依存できるxまたはyと呼ばれるものはありません

より広く、ほとんどの証明では、束縛変数を使用します。たとえば、次の証明は、偶数の整数のすべての二乗がで割り切れることを示しています。

させて正の偶数である。次に整数がありますそのような以来、 我々は持っていますで割り切れる

証明では、 kだけでなくnも全体として束縛変数として使用されています。

変数バインディング演算子

以下

いくつかの一般的な変数バインディング演算子です。それらのそれぞれは、いくつかのセットSの変数xをバインドします

これらの多くは、束縛変数の関数に作用する演算子であることに注意してください。より複雑なコンテキストでは、そのような表記は厄介で混乱を招く可能性があります。バインディングを明示的にする表記に切り替えると便利な場合があります。

合計または

差別化のために。

正式な説明

式の構文を要約したツリー

変数結合メカニズムは、数学、論理学、コンピューターサイエンスのさまざまな状況で発生します。ただし、すべての場合において、それらは式と変数の純粋な構文プロパティです。このセクションでは、リーフノードが変数、定数、関数定数、または述語定数であり、非リーフノードが論理演算子であるツリーを使用して式を識別することにより、構文を要約できます。この式は、ツリーを順番にトラバースすることで決定できます。変数バインディング演算子は、ほとんどすべての形式言語で発生する論理演算子です。バインディング演算子Qは、変数vと式Pの2つの引数を取ります。、およびその引数に適用されると、新しい式Q(vP)が生成されます。バインディング演算子の意味は、言語のセマンティクスによって提供され、ここでは関係ありません。

変数バインディングは、変数v、式内のその変数の位置a 、およびQ(vP )形式の非リーフノードnの3つに関連しています。注:式の場所は、構文ツリーのリーフノードとして定義します。変数バインディングは、その場所がノードnの下にあるときに発生します。

ラムダ計算ではxは項の束縛変数であり、項M = λx. Tの自由変数ですTxでバインドされM、無料であると言いTます。Tサブタームが含まれているλx. U場合xこのタームでリバウンドされます。このネストされた内部バインディングはx、外部バインディングを「シャドウ」すると言われます。xinの発生Uは、新しいの無料発生ですx[1]

プログラムのトップレベルでバインドされた変数は、バインドされた用語内で技術的に自由変数ですが、固定アドレスとしてコンパイルできるため、特別に扱われることがよくあります。同様に、再帰関数にバインドされた識別子も、技術的にはそれ自体の本体内の自由変数ですが、特別に扱われます。

閉じた項、自由変数を含まない項です。

関数式

数学の例をあげるために、関数を定義する式を考えてみましょう。

ここで、tは式です。tには、 x 1、…、x nの一部、すべて、またはまったく含まれていない場合があり、他の変数が含まれている場合があります。この場合、関数定義は変数x 1、…、xnをバインドすると言います

このように、上記の種類の関数定義式は、ラムダ計算のラムダ式に類似し変数バインディング演算子と考えることができます。総和記号のような他のバインディング演算子は、関数に適用される高階関数と考えることができます。だから、例えば、式

の表記として扱うことができます

どこは、2つのパラメーターを持つ演算子です。1つのパラメーター関数と、その関数を評価するためのセットです。上記の他の演算子も同様の方法で表現できます。たとえば、全称記号 (おそらく無限の)集合Sに適用されたブール値関数Pの論理積を評価する演算子と考えることができます

自然言語

正式なセマンティクスで分析すると、自然言語には自由変数と束縛変数があることがわかります。英語では、彼女彼らなどの人称代名詞は自由変数として機能することができます。

リサは自分の本を見つけまし

上記の文では、所有代名詞herは自由変数です。前述のリサまたは他の女性を指す場合があります。言い換えれば、彼女の本はリサの本(共参照のインスタンスまたは別の女性に属する本(ジェーンの本など)を参照している可能性があります。彼女の指示対象誰であるかは、状況的(すなわち、語用論的)な文脈に従って確立することができます。指示対象のIDは、共索引付けの添え字を使用して示すことができます。ここで、iは1つの指示対象を示し、 jは2番目の指示対象を示します(iとは異なります)。)。したがって、リサが彼女の本を見つけた文は、次のように解釈されます。

リサは彼女の本を見つけまし(解釈#1:彼女=リサの)
リサは彼女のj本を見つけました。(解釈#2:彼女=リサではない女性の)

一部の言語は実際には彼女のi彼女のjの形式が異なるため、この区別は純粋に学術的な関心事ではありません。たとえば、ノルウェー語スウェーデン語は、相互参照の彼女のiとして、非参照の彼女のjヘンネスとして翻訳します。

英語では共参照を指定できますが、前の例の両方の解釈が有効であるため、オプションです(非文法的な解釈はアスタリスクで示されます)。

リサ私は自分の本を見つけました(解釈#1:彼女=リサの)
*リサは彼女のj自身の本を見つけました。(解釈#2:彼女=リサではない女性の)

ただし、自分自身自分自身自分自身などの反射代名詞、および相互の相互代名詞は、束縛変数として機能します。次のような文で:

ジェーンは自分を傷つけた

反射的な自分は、前述の前身、この場合はジェーンのみを参照でき、別の女性を参照することはできません。この例では、変数自身が主語の位置で発生する名詞Janeにバインドされています。共索引付けを示すと、ジェーン彼女自身が共索引付けされた最初の解釈は許容されますが、それらが共索引付けされていない他の解釈は文法的ではありませ

ジェーンは自分自身を傷つけまし(解釈#1:彼女自身=ジェーン
*ジェーンは自分自身を傷つけたj(解釈#2:彼女自身=ジェーンではない女性)

共参照バインディングは、前の正式な説明のセクションで説明したように、ラムダ式を使用して表すことができることに注意してください。反射的な文は次のように表すことができます

λx。xhurt x ジェーン_ _

ここで、Janeはサブジェクトの指示対象引数であり、λx.xhurtxは述語関数(ラムダ抽象化)であり、ラムダ表記とxは、文のセマンティックサブジェクトとセマンティックオブジェクトの両方がバインドされていることを示します。これは、 JANEが同じ人物である JANEを​​傷つける意味解釈を返します。

代名詞も異なる方法で動作する可能性があります。以下の文章で

アシュリーは彼女を殴った。

彼女の代名詞は、アシュリーではない女性だけを指すことができます。これは、アシュリーが自分自身を打ったのと同等の反射的な意味を持つことは決してできないことを意味します。文法的および非文法的な解釈は次のとおりです。

*アシュリー私は彼女を殴った(解釈#1:彼女=アシュリー
アシュリー私は彼女のjを打った(解釈#2:彼女=アシュリーではない女性)

最初の解釈は不可能です。文法では、2番目の解釈のみが許可されています。

したがって、反射代名詞と逆数は束縛変数(技術的には照応として知られています)であり、真の代名詞は一部の文法構造では自由変数ですが、他の文法構造では束縛できない変数であることがわかります。自然言語に見られる束縛現象は、統率束縛理論と束縛理論にとって特に重要でした(「束縛(言語学)」も参照)。

も参照してください

参考文献

  1. ^ Thompson 1991、p。33。
  • トンプソン、サイモン(1991)。型理論と関数型プログラミングイギリス、ウォーキンガム:アディソン-ウェスリー。ISBN 0201416670OCLC23287456 _