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

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

1
プログラミング言語理論が答えようとしている「質問」とは何ですか?
私はしばらくの間、結合論理、ラムダ計算、関数型プログラミングなどのさまざまなトピックに興味があり、それらを研究してきました。ただし、「計算能力」の質問、つまりさまざまな制約で計算できる/できないものに答えようとする「計算理論」とは異なり、「プログラミング理論」の類似物を見つけるのに苦労しています。 ウィキペディアはそれを次のように説明しています: プログラミング言語理論(PLT)は、プログラミング言語とその個々の機能の設計、実装、分析、特性評価、および分類を扱うコンピュータサイエンスの一分野です。 これは、実際には特定されていない「すべて」を言うようなものです。 トピックの一般的な進行は通常、次のようになります。 組み合わせ論理>ラムダ計算>マーティンロフ型理論>型付きラムダ計算>(ここで何かが起こる)>開発されたプログラミング言語-CL / λとの接続がほとんどないλλ\lambda 私は、CL / λλ\lambda関連する根本的な「数学」と、チャーチ・ロッサーの定理を含む結果として出てくる興味深い証明を見ることができます。しかし、私はこのすべての事業の「最終目標」を理解するのに苦労していますか?あなたがそうするなら、PLT の聖杯は何ですか?今のところ、それは知的なかゆみを掻くだけのようですが、私は実際に研究/理論から実用的なものへの橋を渡ることはできません。 λλ\lambda

1
コンビネータの不完全な基礎
これはこの質問に触発されています。してみましょう 2つのだけバインド変数を持つすべてのコンビネータのコレクションです。であるCは、コンビナトリアルに完全な?CC\mathcal{C}CC\mathcal{C} 答えは否定的だと思いますが、これについての参考文献を見つけることができませんでした。また、コンビネータのセットの組み合わせが不完全であることの証明の参照にも興味があります(バインドされた変数が1つだけのコンビネータで構成されるセットが不完全であるため、これらのセットにはDの要素以外のものが含まれるはずです)。DD\mathcal{D}DD\mathcal{D}

2
削減戦略と評価戦略の違いは何ですか?
ウィキペディアの評価戦略の記事から: ラムダ計算における還元戦略の概念は似ていますが、異なります。 ウィキペディアの削減戦略の記事から: これは、コンピューターサイエンスの評価戦略の概念と似ていますが、微妙に異なります。 これら2つの記事が示唆する評価戦略と削減戦略の微妙な違いは何ですか?それらは、異なるドメインからの2つの類似した概念にすぎませんか?

1
アフィンラムダ計算はPのすべての問題を解決できますか?
型とプログラミング言語の高度なトピックでは、サブ構造型システムの章で、リストの再帰コンビネーターを使用した「注意深く作成された」アフィンラムダ計算は、多項式の実行時間を持つ用語のみを入力できると述べられています。複雑さのために証拠を提示する)。Pのすべての問題も解決できれば、これは非常に興味深いでしょう。Pが完全な問題の解決策を見つけようとする計算を使って解決策を見つけようとしたら、実際に何が証明されるかわかりません。P完全な問題の解決策を使用するために必要なすべての削減を実行できることを意味しているように思えません(確かに可能性があるように見えますが)。 アフィンラムダ計算がPの問題を正確に解決できることが知られていない場合、Pの問題を正確に解決できる既知の計算はありますか?

1
構造計算の強力な正規化の証明を理解する
構造計算の強力な正規化の証明を理解するのは難しい。Herman Geuversの論文「構造の微積分のための強力な正規化の短くて柔軟な証明」の証明に従うようにしています。 私は推論のメインラインをしっかりと追跡できます。各タイプTTTの解釈のガイバー構成[[ T]]ξ[[T]]ξ[\![T]\!]_\xi型変数のいくつかの評価に基づいて、ξ(α )ξ(α)\xi(\alpha)。そして、彼はいくつかの用語解釈を構築します(| M|)ρ(|M|)ρ(\!|M|\!)_\rho項変数ρ (x )ρ(x)\rho(x)いくつかの評価に基づく ρであり、有効な評価ではアサーション(| M|)ρ∈ [[ T]]ξ(|M|)ρ∈[[T]]ξ(\!|M|\!)_\rho \in [\![T]\!]_\xiすべてのためのΓ ⊢ M:TΓ⊢M:T\Gamma\vdash M:T成り立ちます。 私の問題:簡単な型(システムF型など)の場合、型の解釈[[T]]ξ[[T]]ξ[\![T]\!]_\xi本当に用語のセット、そう主張です(|M|)ρ∈[[T]]ξ(|M|)ρ∈[[T]]ξ(\!|M|\!)_\rho \in [\![T]\!]_\xi理にかなっています。しかし、より複雑な型については、解釈[[T]]ξ[[T]]ξ[\![T]\!]_\xi用語のセットが、いくつかの適切な関数空間の関数のセットではありません。関数空間の構成はほぼ理解できたと思いますが、(|M|)ρ∈[[T]]ξ(|M|)ρ∈[[T]]ξ(\!|M|\!)_\rho \in [\![T]\!]_\xiより複雑な型TTT。 誰かが証明のいくつかのより理解しやすいプレゼンテーションへの説明またはリンクを与えることができますか? 編集:質問をより明確にするようにしましょう。コンテキストΓΓ\Gamma型変数の宣言があるα:Aα:A\alpha:Aとオブジェクト変数を。タイプの評価は、有効であれば、すべてのための(α:A)∈Γ(α:A)∈Γ(\alpha:A) \in \GammaとΓ⊢A:□Γ⊢A:◻\Gamma\vdash A:\squareその後、ξ(α)∈ν(A)ξ(α)∈ν(A)\xi(\alpha) \in \nu(A)有効です。しかし、ν(A)ν(A)\nu(A)の要素とすることができる(SAT)∗(SAT)∗(SAT)^*だけでなくSATSATSAT。したがって、有効な項の評価はρ(α)ρ(α)\rho(\alpha)に対して定義できません。ρ(α)ρ(α)\rho(\alpha)は、関数空間の関数ではなく、項でなければなりません。 編集2:機能しない例 [][α:∗][α:∗][][β:Πα:∗.∗]⊢⊢⊢⊢⊢∗:□α:∗∗:□(Πα:∗.∗):□β:(Πα:∗.∗)axiomvariable introductionweakenproduct formationvariable introduction[]⊢∗:◻axiom[α:∗]⊢α:∗variable introduction[α:∗]⊢∗:◻weaken[]⊢(Πα:∗.∗):◻product formation[β:Πα:∗.∗]⊢β:(Πα:∗.∗)variable introduction \begin{array}{llll} [] &\vdash & *:\square &\text{axiom} \\ [\alpha:*] &\vdash& \alpha:* &\text{variable introduction} \\ …

1
ゲーデルの第2不完全性定理とチャーチロッサーのCICの特性との間に矛盾はありますか?
一方では、ゲーデルの第2不完全性定理は、基本的な算術ステートメントを表現するのに十分強力な一貫した形式理論は、それ自体の一貫性を証明できないと述べています。一方、正式な(書き換え)システムのChurch-Rosserの特性は、すべての方程式が導出可能であるとは限らないという意味で、一貫していることを示しています。たとえば、K Iは、同じ法線を持たないためです。形。≠≠\neq 次に、帰納的構造の微積分(CIC)は、両方の条件を明確に示します。(実際に、算術提案を表現するために十分な強さである -calculusだけでは、すでに教会の数字をコード化し、すべての原始再帰関数を表現することができます)。さらに、CICには合流点またはChurch-Rosserプロパティもあります。だが:λ βηλβη\lambda\beta\eta CICは、第2不完全性定理によって独自の一貫性を証明できないのではないでしょうか。 または、CICがシステム内での独自の一貫性を証明できないと述べているだけで、合流特性はメタ定理ですか?あるいは、CICの合流特性がその一貫性を保証していないのでしょうか? 誰かがこれらの問題に光を当てていただければ幸いです。 ありがとう!


2
Krivineの表記法の利点は何ですか?
-calculusの構文を提示するときに、関数の適用にKrivineの表記法を使用している人がいるのを見ました。例えば、λ -term λ F 。λ X 。λ Y 。F X 、Y(それが実際に意味するように、通常の慣例左に機能アプリケーション関連付けることと、λ fは。λ X 。λ Y 。((F X )Y ))が書き込まれるλ fは。λ X 。λ yのλλ\lambdaλλ\lambdaλ F。λ X 。λ yの。f x y λf.λx.λy.f x y\lambda f . \lambda x . \lambda y . f\ x\ yλ F。λ X 。λ yの。((f x )y )λf.λx.λy.((f …

1
システムF(中typabilityの決定可能性という単純な証拠
typabilityと型チェックの両方がシステムFに決定不能であることを、我々は1994年からジョー・B. Wellsの結果を知っていないと仮定(AKA )。Barendregtの型付きLambda計算(1992)で、私はMalecki 1989による型チェックが型の可能性を意味するという証明を見つけました。それの訳はλ2λ2\lambda 2 存在その結果、M :σをσσ\sigmaM:σM:σM:\sigma に相当 (λxy.y)M:(α→α)(λxy.y)M:(α→α)(\lambda xy.y)M : (\alpha\rightarrow\alpha) (これは、用語がシステムFで入力可能である場合、そのすべてのサブ用語が入力可能であるためです。) 逆の簡単な証明はありますか?つまり、タイプ可能性がシステムFでのタイプチェックを意味するという証拠ですか

1
二色構造計算の役割は何ですか?
だから、私は詳細について、特に2色の構造の計算に基づくアルゴリズムについて少し読んでいますが、少し混乱しています。目的が正確に理解できません。関数の暗黙的引数と明示的引数に違いがあることを除いて、C Cと同じように見えます。特に、どのように書けるかわかりません(i dCCb iCCbiCC^{bi}CCCCCC(i dの代わりに(私はd0 )(id0)(id\; 0)。グローバル定義のシステムを想定すると、(idN0)(idN0)(id\; \mathbb{N}\; 0) id:(ΠA|Type.(Πx:A.A))id:(ΠA|Type.(Πx:A.A))id : (\Pi A\; |\; \mathsf{Type}\; . (\Pi x : A\; . A)) そして 。id=(λA|Type.(λx:A.x))id=(λA|Type.(λx:A.x))id = (\lambda A\; |\; \mathsf{Type}\; . (\lambda x : A . x)) ルールで本当に許可されているか?もちろん構文にはありますが、型付けの関係ではわかりません。何か不足していますか?C C b iの役割を正しく理解していますか?(id0)(id0)(id\; 0)CCbiCCbiCC^{bi} また、合流性は失われないのでは?私の問題は、これまでにについてあまり読んだことがなく、詳細について読んでいることだと思います。それとそれだけを紹介する良い紙は何ですか?CCbiCCbiCC^{bi} 編集:より具体的に言うと、私はは(i d(id0)(id0)(id\; 0)場合の両方明示的および暗黙のための規則 Πのアプリケーションは、同一のモジュロsytnaxあります。:と |の間に違いはありません。両方のルールは同じように見えます。(idN0)(idN0)(id\; \mathbb{N}\; 0)ΠΠ\Pi:::||| 編集:私はImplicit …

2
数百の還元ステップが多すぎて、Y fac⌜3⌝の通常の形を得ることができませんか?
最近、λ計算の基礎を教えているので、Common Lispに単純なλ計算エバリュエーターを実装しました。の正規形のY fac 3正規次数削減を求めると、619ステップかかります。 もちろん、紙で同様の削減を行うたびに、型なしのλ計算を使用することはありませんでしたが、それらに作用する数と関数を追加しました。この場合、facは次のように定義されます。 fac = λfac.λn.if (= n 0) 1 (* n (fac (- n 1))) この場合、考慮=、*および-関数をカリー化など、それだけで取得するには、およそ50のステップを取るY fac 3その正規形に6。 しかし、私の評価者では、以下を使用しました。 true = λx.λy.x false = λx.λy.y ⌜0⌝ = λf.λx.x succ = λn.λf.λx.f n f x ⌜n+1⌝ = succ ⌜n⌝ zero? = λn.n (λx.false) true mult = λm.λn.λf.m (n …

2
ラムダ計算自体のエンコーディングの妥当性をどのように述べるのですか?
┌M┐⌜M⌝\ulcorner M \urcornerMMMMMMEE\mathsf E E┌M┐=βM.E⌜M⌝=βM.\mathsf E \ulcorner M \urcorner =_\beta M. 自然数を使用するKleeneのようなさまざまなエンコーディングがあり、最も効率的な最新のエンコーディングはMogensenによる高次構文です。別の可能な(自明な)エンコーディングは恒等関数であり、インタプリタも恒等関数です。 些細なエンコーディングを禁止する「適切なエンコーディング」の合理的な概念はありますか? この質問は、チューリングマシンではなくラムダ計算に適用される停止問題を検討するときに発生しました。自明なエンコーディングの観点から言えば、引用されたラムダ項では本質的に何もできないという自明な理由があります。 言い換えると、引用されたラムダ項で計算できると期待できる関数のセットは何ですか? 私はいくつかのようなものをリストすることができます:用語の深さを数え、サブ用語を取り、用語のルートノードがラムダまたはアプリケーションであるかどうかを伝えます...しかし、分類された関数をリストするだけで「適切なエンコーディング」を定義するのをためらいますそれが頭に浮かんだ。

1
システムの書き換えに関するリストを読んでいますか?
私は、1年目の博士課程の学生として、書き換えシステムを研究するのは初めてです。リライティング理論に関する特別なトピックのコースを提案したいと思います。私は、元のソースを除外しないようにしたいと思います。 私は教科書のソースとしてBarendregtとTereseのコピーを持っています。元の論文について:私は、終了の証明に関するダーショウィッツの研究、合流性に関するヒュートの論文、減少する図に関するヴァンオーストロムの論文、合流性のモジュロ等価に関するオーレブッシュの論文、モジュール性に関する富山の研究を見てきました。私は、古典的なものと最近の影響力のある論文の両方が散らばってしまうことを願っています。また、代数的トポロジー、カテゴリー理論、リライティング理論の間のリンクについての良い論文を誰かが推薦できれば、私もそれを感謝します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.