タグ付けされた質問 「lambda-calculus」

効果的な関数、プログラムとその計算、および証明を表すために、計算可能性、プログラミング言語、および証明理論で使用される教会の正式なシステム。

7
計算理論の分野へのラムダ計算の貢献は何ですか?
私はラムダ計算を読んで「それを知る」だけです。これは、チューリングマシンとは対照的な代替の計算形式と考えています。これは、関数/リダクションを使用して物事を行う興味深い方法です(粗雑に言えば)。いくつかの質問が私をしつこく続けます: ラムダ計算のポイントは何ですか?なぜこれらすべての機能/削減を経るのですか?目的は何ですか? その結果、私は疑問に思っています:ラムダ計算はCSの理論を前進させるために正確に何をしましたか?その存在の必要性を理解する「アハ」の瞬間を持つことができるのは、どのような貢献でしたか? なぜラムダ計算はオートマトン理論のテキストに含まれていないのですか?一般的なルートは、さまざまなオートマトン、文法、チューリングマシン、複雑度クラスを通過することです。ラムダ計算は、SICPスタイルのコースのシラバスにのみ含まれています(おそらくそうではありませんか?)。しかし、私はそれがCSの中核カリキュラムの一部であることはめったにありません。これは、それほど価値がないことを意味しますか?たぶんそうではなく、私はここで何かを見逃しているかもしれません 関数型プログラミング言語はラムダ計算に基づいていることは知っていますが、プログラミング言語ができる前に作成されたため、それを有効な貢献とは考えていません。それでは、理論への応用/貢献について、ラムダ計算を知っている/理解しているポイントは本当に何ですか?


2
実現可能性理論:ラムダ計算とチューリングマシンのパワーの差
関連する3つのサブ質問があり、それらは下の箇条書きで強調されています(いいえ、疑問に思っている場合は分割できません)。Andrej Bauerは、ここで、いくつかの関数はチューリングマシンで実現できるが、ラムダ計算では実現できないと書いています。彼の推論の重要なステップは次のとおりです。 ただし、ラムダ計算を使用する場合、[プログラム] cは、関数fを表すラムダ項からチューリングマシンを表す数値を計算することになっています。これを行うことはできません(別の質問として質問した場合、その理由を説明できます)。 説明/非公式の証拠を見たいです。 ここでライスの定理を適用する方法がわかりません。この述語を同等の用語に適用すると同じ結果が得られるため、「このチューリングマシンTとこのラムダ項Lは同等ですか?」という問題に適用されます。ただし、必要な関数は、異なるが同等のラムダ項に対して異なるが同等のTMを計算する場合があります。 さらに、問題がラムダ項のイントロスペクションにある場合、ラムダ項のGödelエンコーディングを渡すことも受け入れられると思いますか? 一方では、彼の例がラムダ計算で、特定のタスクを完了するためにチューリングマシンが必要とするステップ数を計算することを考えれば、私はあまり驚かない。 しかし、ここではラムダ計算ではチューリングマシン関連の問題を解決できないため、ラムダ計算で同様の問題を定義し、チューリングマシンでは解決できないことを証明できるのか、それとも実際には力の差があるのか​​疑問に思いますチューリングマシン(これには驚かされます)。


3
ラムダ計算によるPおよびNPクラスの説明
導入および説明では、PおよびNP複雑度クラスは、チューリングマシンを介してしばしば与えられます。計算モデルの1つはラムダ計算です。計算のすべてのモデルが同等であることを理解しています(そして、チューリングマシンの用語で何かを導入できるなら、計算のモデルの用語でこれを導入できます)が、ラムダ計算による説明のアイデアPおよびNP複雑度クラスを見たことはありません。チューリングマシンを使用せず、計算モデルとしてラムダ計算のみを使用して、概念PおよびNPの複雑度クラスを誰でも説明できます。

4
停止問題が決定できない非チューリング完全な計算モデルがありますか?
私はそのようなモデルを考えることはできません、おそらく型付きラムダ計算の何らかの形ですか?いくつかの基本的なセルオートマトン? これは、 Wolframの「計算上の等価性の原理」をほぼ反証します。 明らかに単純ではないほとんどすべてのプロセスは、同等の洗練度の計算と見なすことができます

2
ラムダ計算と組み合わせロジックは同じですか?
私は現在、ヒンドリーとセルディンの「ラムダ計算と結合子」を読んでいます。私は専門家ではありませんが、関数型プログラミング(LispとSICPから始まり、現在はRとHaskellに関係している)のため、ラムダ計算に常に関心を持っています。 「バイナリラムダ計算と組み合わせロジック」では、John Trompは次のように述べています。 CLは、ラムダ計算のサブセットと見なすことができます。理論はほとんど同じであり、拡張性の規則が存在する場合は同等になります。 どのような条件下で、ラムダ計算の代わりに組み合わせロジックを使用しますか? すべての参考文献をいただければ幸いです。

2
ラムダ計算の作成の当初の意図は何でしたか?
私は最初に、チャーチが彼の「論理の仮説」論文の一部として -calculusを提案したことを読みました(これは密な読みです)。しかし、クリーンは彼の「システム」の矛盾を証明し、その後、教会は「効果的な計算可能性」に関する彼の研究に関連するものを抽出し、論理に関する彼の以前の研究を放棄した。λλ\lambda 私が理解しているように、システムとその表記法は、ロジックに関係する何かの一部として形を取りました。後に彼が分岐したことを達成しようとしていた教会は何でしたか?\ lambda -calculus を作成した最初の理由は何ですか?λλ\lambdaλλ\lambda

2
Lambda Cubeの他のポイントからどのように構築の計算を取得しますか?
CoCは、ラムダキューブの3つの次元すべての集大成と言われています。これは私にはまったく明らかではありません。私は個々の次元を理解していると思いますし、任意の2つの組み合わせは比較的単純な結合をもたらすようです(おそらく何かが足りないのでしょうか?)。しかし、CoCを見ると、3つすべての組み合わせのように見えるのではなく、まったく異なるもののように見えます。タイプ、プロップ、スモール/ラージタイプはどの次元からのものですか?依存製品はどこに消えましたか?そして、なぜ型とプログラムではなく命題と証明に焦点が当てられているのですか?型とプログラムに焦点を合わせた同等のものはありますか? 編集:明確でない場合、CoCがどのようにLambda Cubeディメンションの単純な結合と同等であるかの説明を求めています。そして、私が研究できるどこかで3つすべての実際の結合がありますか(つまり、証明と命題ではなくプログラムとタイプの面で)?これは、質問に対するコメントに対するものであり、現在の回答に対するものではありません。

3
型付きラムダ計算は、与えられた複雑さ以下の*すべて*アルゴリズムを表現できますか?
Yコンビネータプリミティブのない型付きラムダ計算のほとんどの種類の複雑さは制限されています。つまり、制限された複雑さの関数のみを表現でき、型システムの表現力が大きくなると制限が大きくなります。例えば、構築の計算は、せいぜい二重に指数関数的な複雑さを表現できることを思い出します。 私の質問は、型付きラムダ計算が特定の複雑さの限界以下のすべてのアルゴリズムを表現できるのか、それとも一部のみを表現できるのかということです。たとえば、ラムダキューブの形式では表現できない指数時間アルゴリズムはありますか?Cubeの異なる頂点で完全に覆われている複雑な空間の「形状」とは何ですか?

1
デカルト閉カテゴリの矢印と指数オブジェクトの違いは何ですか?
直交クローズカテゴリ(CCC)、いわゆる存在冪対象に書かれた、。CCCが単純に型付けされたλ計算のモデルと見なされる場合、B Aのような指数オブジェクトは、型Aから型Bまでの関数空間を特徴付けます。指数オブジェクトはc u r r yと呼ばれる矢印によって導入されます:(A × B → C )→ (A → C BBABAB^Aλλ\lambdaBABAB^AAAABBB矢印によって除去と呼ばれる P のP LのY :C B × B → C残念ながらと呼ばれる(例えばV Lカテゴリ理論に最もテキストでの)。ここでの私の質問は、指数オブジェクト C Bと矢印 B → Cに違いはありますか?C U R R Y:(A × B → C)→ (A → CB)curry:(A×B→C)→(A→CB)curry : (A \times B \rightarrow C) \rightarrow (A \rightarrow …

2
一貫性がありチューリング完全な型付きラムダ計算がありますか?
カリー-ハワード対応下の対応するロジックが一貫しており、すべての計算可能な関数に型指定可能なラムダ式がある型付きラムダ計算がありますか? これは明らかに「不正確な質問」であり、「型付きラムダ計算」の正確な定義が欠けています。私は基本的に、(a)これの既知の例があるのか​​、(b)この領域の何かに対する既知の不可能性の証拠があるのか​​疑問に思っています。 編集:@codyは、以下の回答でこの質問の正確なバージョンを提供します:一貫性があり、チューリング完全な(以下に定義する意味で)論理的純粋型システム(LPTS)はありますか?

1
スコットの確率的ラムダ計算
最近、Dana Scottは確率的ラムダ計算を提案しました。これは、グラフモデルと呼ばれるセマンティクスに基づいて確率型要素を(型なし)ラムダ計算に導入する試みです。彼のスライドは、たとえばここでオンラインで見つけることができ、彼の論文はJournal of Applied Logic、vol。12(2014)。 しかし、Webで簡単に検索したところ、たとえばHindley-Milner型システムに関する同様の以前の研究が見つかりました。確率論的なセマンティクスを導入する方法は、スコットのものに似ています(前者ではモナドを使用し、後者ではスコットは継続渡しスタイルを使用します)。 スコットの研究は、理論自体またはそれらの可能な応用の点で、利用可能な以前の研究とどのように異なりますか?

1
可逆(r-Turing計算可能)関数のラムダ計算
この質問は、理論上のコンピューターサイエンススタック交換で回答できるため、コンピューターサイエンススタック交換から移行されました。 5年前に移行され ました。 Axelsen andGlück(2011)で定義されている「r-Turing completeness」の概念に興味があります。システムは、「ガベージ」データを生成せずに、リバーシブルチューリングマシンと同じ関数セットを計算できる場合、rチューリングが完了しています。これは、(a)計算可能、および(b)単射の両方であるすべての関数を計算できることと同じです。 計算可能な単射関数の空間を計算的に探索したいと思います。これを行うために、「最小の」リバーシブルプログラミング言語を探しています。ラムダ計算がチューリングの計算可能性に果たすr-Turing計算可能性と同等の役割を果たすことができるものです。 r-Turingが完全であると人々が開発し、証明した多くの可逆言語があることを知っています。ただし、これらは実用的なアプリケーションを念頭に置いて開発されているため、作成者は最小限にするのではなく、表現力豊かな機能を提供することに集中しています。 そのような最小限の可逆言語が記述されているかどうか、またはそのような方向に研究があるかどうか誰もが知っていますか?私はこのトピックに関する文献はかなり新しいので、簡単に見逃してしまう可能性があります。あるいは、そのような言語がどのように作成されるかについての洞察は誰にもありますか? 以下は私が探しているものの要約です。ラムダ計算自体を変更することで作成できるのか、まったく異なる種類の言語を使用する必要があるのか​​はわかりません。 r-Turing完全言語-計算可能なすべての可逆関数を計算し、可逆関数のみを計算できます 可能な限り最小限の構文とセマンティクス。(たとえば、ラムダ計算には関数定義とアプリケーションのみがあり、他には何もありません。) プログラム=データ。つまり、プログラムは他の種類のデータではなく式で動作します。これにより、プログラムの出力を常にプログラムとして解釈できることが保証されます。これはおそらく、命令型の言語ではなく機能的な言語でなければならないことを意味します。 プログラムをその逆に変換するための体系的な方法がいくつかありますが、逆の計算を実際に実行する場合よりも実質的に多くの計算を必要としません。(すべての可逆言語にこのプロパティがあるわけではありませんが、一部の言語にはあります。) リバーシブルコンピューティングに対するAxelsenとGlückのアプローチは、Bennettによるよく知られているアプローチとはまったく異なることを強調しておく必要があります。r-Turing完全性とは、追加の出力なしで単射関数を計算できることです。「可逆ラムダ計算」のバリエーションと呼ばれるものがいくつかあり、それらはベネットの意味で可逆です-私が探しているものではありません。

2
System F(または別の正規化された型付きλ計算)内で等価を決定することは可能ですか?
型付けされていないラムダ計算の等価性を決定することは不可能であることを知っています。HPの引用Barendregt、HP The Lambda Calculus:its Syntax and Semantics。北オランダ、アムステルダム(1984)。:ββ\beta AとBが互いに等しくない、等式の下で閉じられている空でないラムダ項のセットである場合、AとBは再帰的に分離できません。Aが等式で閉じられたラムダ項の自明でないセットである場合、Aは再帰的ではありません。したがって、問題「M = x?」を決定することはできません。特定のMについても同様です。また、Lambdaには再帰モデルがありません。 System Fなどの正規化システムがある場合、与えられた2つの用語を減らし、それらの正規形が同じであるかどうかを比較することにより、「外部から」等価を決定できます。ただし、「内部から」実行できますか?システム-Fコンビネータがあり 2つのコンビネータのためにこのようなことをと我々が持っている場合はと同じ標準形を持っている、とそうでありませんか?または、少なくともいくつかのに対してこれを行うことができますか?場合、が真になるようにコンビを構築するにはE M N E M N = 真の M N E M N = falseを M E M E M N N ≡ β Mββ\betaEEEMMMNNNEMN= trueEMN=trueE M N = \mbox{true}MMMNNNEMN= falseEMN=falseE M N = \mbox{false}MMMEMEME_MEMNEMNE_M NN≡βMN≡βMN\equiv_\beta M?そうでない場合、なぜですか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.