ロジックの「束縛変数」の排除に関するシェーンフィンケルの研究がなぜそれほど重要なのですか?


15

知る限りでは、高次関数を使用した最初の証拠は、シェーンフィンケルの1924年の論文「数学論理の構築ブロックについて」にまでさかのぼります。

おもしろそうです。しかし、私が彼の仕事について読んでいたすべてのもの(およびカレーの拡張)は、何らかの形で何かを暗示しているようです[高階関数] ...これはバインドされた変数の必要性を排除します...

私が頭を包み込むことができなかったのは-大したことは何ですか?なぜ当時の論理学者や数学者はこれを気にかけていましたか?そして、理論家として、私たちは今日これを気にしますか?バインドされた変数を取り除くことがなぜ「画期的」であり、私たちが知っているように(理論的に)コンピューティングにどのような影響を与えましたか(またはしますか)?

PS:彼の仕事がどのように -calculusの道を開いたか、そして「it」がコンピューティングと関数型プログラミング全般に与える影響を知っています。私の質問は、主にλ -calculus の作成の「前」とシェーンフィンケルの論文の「後」に向けられています。カリーが独立してそのラインの仕事を選んだという事実は、後に「組み合わせ論理」として知られ、シェーンフィンケルの仕事の重要性を暗示しています。λλ


2
シェーンフィンケルの論文はこちらにあります
マーティンバーガー

回答:


17

TL; DR。結合のメタ数学は微妙です:それらは些細なように見えますが、そうではありません-(高階の)論理を扱うか𝜆計算を扱うかは関係ありません。それらは非常に微妙であるため、拘束力のある表現がオープンな研究分野を形成し、数年前に競争POPLmarkチャレンジ)が行われました。バインディングへのアプローチの複雑さについて、この分野の人々による冗談さえあります。

そのため、メタ数学に関心がある場合(ほとんどの数学者はそうではありません)、バインディングに対処する必要があります。しかし、多くの数学者は、バインディングの形式化を「基礎的」問題であるかのように安全に扱うことができます。

もう1つのポイントは、高次関数を持つ言語では、バインディングが唯一の「新しい」問題であったことです。なぜなら、バインディングを持つ言語の理論は、代数(定数)+バインディングにすぎないからです。ミッチェルの「プログラミング言語の基礎」は、実際にこの順序で物事を提示し、むしろ啓発的です。

私は彼の仕事がどのようにλ計算に道を開いたか、そしてそれがコンピューティングと関数型プログラミング全般に与える影響を知っています。私の質問は、主にλ計算の「前」とシェーンフィンケルの論文の「後」に向けられています。

私は何かを見逃しているに違いありませんが、この発言は何の違いももたらさないようです。高階ロジックのバインドとλ計算のバインドは難しいように思われるので、高階ロジックを気にする限り、バインドを処理する必要がありました。型理論(型は式であり、プログラムは証明用語である)を実装するだけでロジックを実装するカリーハワード同型に基づく定理証明器を使用することにより、私は偏見を抱きます。

理由の一つは、彼はそれを公開(なかった)方法で- -一方、IIRCは、一度実際にいくつかがSchönfinkelの仕事を気に論文のほとんどは彼がした調査に基づいて同僚によって書かれた(参照ここでは、4ページ) ; その後、カレーは独自に理論を再発見しました。

警告:私は歴史家ではありませんが、PLの博士課程の学生です。そのため、私のトピックはこのトピックに関する最新の(そして、できれば正確な)視点です。

編集:

結合が微妙な理由、もう少し具体的に

これには2つの側面があります。まず、実装は困難です。第二に、メタ数学は証明操作の数学です。この操作は通常自動であり、つまりアルゴリズムです。したがって、本質的に、実装のすべての困難に直面し、それらについて証明を行います。以下に例を示します。これらの例には現代的な視点があり、実際に形式化された証明に関するものです。ただし、詳細をごまかさない限り、いくつかの困難は正確な手動校正にまで及びます。

これは、シェーンフィンケルがこの問題の最初の解決策を提示しただけであることを示していますが、これは決定的なものではありませんでした。

シャドウイングのため、実装は微妙です

(λf.f 1+f 2)(λx.x)(λx.x) 1+(λx.x) 2(λfx.f(fx)) (λgy.g y) z(λgy.g y) (λgy.g y) z(λy.(λgy.g y) y)  z

λxy.xyλy.yλy.y

さらに悪いことは、単純なアルゴリズムに対する反例は、問題をすでに知っている場合は構築するのが難しく、知らない場合はもちろんです。ほぼ正しいアルゴリズムのバグは、多くの場合検出されないままになります。優秀な学生でさえも、通常はキャプチャ回避の代替の正しい定義を(自分で)思い付かないと聞きます。実際、博士課程の学生(私を含む)と教授はこれらの問題を免除されていません。

これが、一部のプログラミング言語(Benjamin Pierceによる型とプログラミング言語に関する最高の教科書の1つを含む)が名前のない表現を使用する理由の1つです(使用されていても、組み合わせロジックではなく、むしろdeBrujinインデックス)。

それについての証拠は微妙です

前述のように、バインディングに関する証明は実装よりも簡単ではないことがわかります。もちろん、正しいアルゴリズムが存在し、それらについての証明は存在しますが、高度な機械がなければ、バインディングを使用する各言語で証明を繰り返す必要があります。 。

BAABB

次に、「標準定義を形式化しようとするとどうなるか」という私の最良の例を調べました。Russell O'Connor(このサイトにいる)は、最初のGödelの不完全性定理(上記の種類の定理証明者)を定式化した。そして、その定理は、(数値としてコード化された最初のロジック)。彼は紙で使用されている定義を使用し、それらを直接形式化しました。「置換」または「変数」を検索し、問題に関連して表示される頻度をカウントして、印象を取得します。 http://r6.ca/Goedel/goedel1.html

私は自分の仕事でこれらの定義を使用することはありませんが、それぞれの代替アプローチには欠点があります。


カリー・ハワード同型に基づいた定理証明器を使用することで偏見があるので、一度バインディングを扱うだけです-あなたが意味することを詳しく説明していただけますか?
PhD

3
あなたはそれが微妙だと言いますが、それが正確に何がそうなのかを決して言わないでください。それが私が探している視点です。
PhD

あなたの最初のコメントについて:カリー・ハワードとの関係を明示しましたが、ウィキペディアまたは別の質問を参照する必要があります。2番目のコメントに同意します。ラムダ計算に不慣れな人のために詳しく説明します。
ブレイザーブレード


1
トンありがとう!本当に助かりました。このリンクにも興味があります:home.uchicago.edu/~wwtx/Varfreelogic_revised.pdf-バインド変数のない一次ロジック。
PhD
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.