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

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

1
終了しない
私はこれらの質問について考えてきました: 一貫性がありチューリング完全な型付きラムダ計算がありますか? /cs/65003/if-%CE%BB-xxx-has-a-type-then-is-the-type-system-inconsistent 型付けされていない設定では、関連する質問に答えるのが難しいものがすでにあります!より具体的には、次の方法で非終端からチューリング完全性を回復できるかどうか知りたいです。 質問:(純粋)指定されたλλ\lambda -term tttでない弱いヘッド正規形、そこず常に不動点コンビネータ存在するYtYtY_tように Yt (λx.x)=tYt (λx.x)=t Y_t\ (\lambda x.x) = t 等式は、すべての剰余取らされていますβηβη\beta\eta。 私は実際に質問すべきこのバージョンの疑い偽 1がに質問を緩和することができるので、コンビネータをループループコンビネータ、YYYすべてのためのように用語と定義されfff Y "をここでもループコンビネータである必要があります。もちろん、これは通常どおり再帰関数を定義するのに十分です。Y f=f (Y′ f)Y f=f (Y′ f) Y\ f=f\ (Y'\ f)Y′Y′Y' より一般的には、上記の式が満たされない場合でも、非終端tttからループコンビネータに進む「自然な」方法を見つけることに興味があります。 私はまた、上記の質問の弱いバージョンに興味がある、例えばアプリケーションであると解釈することができるT ≡ トン1 トン2 ... T nはそれぞれにT I正規形で(私は本当に役立つことはよく分からないが)。tttt≡t1 t2…tnt≡t1 t2…tnt\equiv t_1\ t_2\ldots t_ntitit_i これまでのところ、自然なアプローチは、例えばfのと "pepper"アプリケーションを全体に適用することです。例えばtttfff Ω:=(λx.x x)(λx.x x)Ω:=(λx.x x)(λx.x …

1
ラムダ計算の拡張におけるη変換対拡張性
私はしばしば、η変換と拡張性の関係に混乱しています。 編集:コメントによると、外延的等価性と観察的等価性の関係についても混乱しているようです。しかし、少なくとも、関数の拡張等式(仮定として)、および単純に型付けされたラムダ計算(完全に抽象的なセマンティクスを持っていますが、私が間違っていない場合)のAgdaでは、表示的等価は観測的等価と同じです。コメントや回答を自由に修正してください。これらの問題について体系的な教育を受けたことはありません。 型付けされていないラムダ計算では、eta-ruleは、Barendregtによって証明されているように、拡張性ルールと同じ証明システムを提供します(この質問への回答で引用)。私は、イータルールを備えた証明システムが観測的同等性のために完全であることを理解しています(他の回答から、ξルールルール、つまりバインダーIIUCの下での削減が必要です;そのルールを追加しても問題ありません) 。 ただし、型付き計算に切り替えて、この計算を追加の基本型と対応する導入および消去形式で拡張すると、どうなりますか?観測的等価性の完全な証明システムをまだ書くことはできますか?証明システムについては、ミッチェルのプログラミング言語の基礎(FPL)に従って公理セマンティクスの形式で説明します。証明システム/公理的意味論は、プログラムの等価性を定義します。 質問1:バレンドレグの定理はSTLCに拡張されますか?η等価性は、その文脈での拡張性と同等ですか? 私はFPLのPCFに関する議論を閲覧しています(しかし、まだセクションは終了していません)。ペアを追加すると、拡張性には追加のルール、つまり全射ペアリングが必要になるようですpair (Proj1 P, Proj2 P) = P。興味深いことに、このルールは、ηルールが関数の導入と削除に関連するのとまったく同じように、ペアの導入と削除に関連しています。 質問2:ペアをもつ単純型付きλ計算の拡張性を証明するために、全射ペアリング公理を追加するだけで十分ですか?編集:質問2b:この論文で言及されたη法則のように、私が言及した構造的類似性のために、全射対はη法則ですか? さあ、PCFに行きましょう。私が見た外延的平等の説明は、外延性が帰納法による証明の規則を暗示していることを証明しているが、それで十分かどうかは述べていない。PCFはチューリング完全であるため、拡張等式は決定不能です。ただし、プルーフの長さには制限がないため、完全なプルーフシステムがないことを意味するものではありません。さらに関連して、そのような証明システムは、ゲーデルの不完全性定理と矛盾する可能性があります。そして、その議論はfix、なしのPCF と、ゲーデルのシステムTにも当てはまるかもしれません。 質問3:PCFの観測的同等性の完全な証明システムはありますか?なしのPCFはfixどうですか? 更新:完全な抽象化 ここでは、完全な抽象化に関するコメントについて回答します。PCFには2種類の問題があると思います。非修正(修正による)があり、完全な抽象化が失われますが、自然数もあります。両方の問題により、観察の等価性を扱いにくくしていますが、私は互いに独立していると考えています。 一方では、PCFは並列またはセマンティックドメインに住んでいるため完全な抽象化を失い(Plotkin 1977)、それは非終了に関係しているようです。Ralph Loader(2000、「初期PCFは決定不能」)は、最終PCF(ナチュラルなし、ただし終端なし)が既に決定不能であることを示しています。したがって、(私が正しく要約すれば)完全に抽象的なセマンティックは、計算可能な操作を持つドメインに制限できません。 一方、終端なしのゲーデルのシステムTを使用します。(完全に抽象的なセマンティクスを持っているかどうかはわかりませんが、問題はPCFについてのみ言及されているため、はい推測しています。ドメインには高次のプリミティブな再帰関数が含まれている必要があります)。Harperの「プログラミング言語の実践的基礎」では、この言語の観察的同等性について説明しています。秒 47.4は「いくつかの平等の法則」と題されており、観測的等価性に関するいくつかの許容可能な証明規則を示しています。証明システムが完全であるかどうかはどこにも書かれていないので、そうではないと思いますが、それが完了できるかどうかについても議論されていません。私の最良の推測は、ゲーデルの不完全性の定理にリンクしています。

1
型付けされていないλ計算で最も内側の縮小は永続的ですか?
(私はすでにMathOverflowでこれを尋ねましたが、そこには答えがありませんでした。) バックグラウンド 型なしラムダ計算では、この用語は一つ(例えば、乱暴に異なる結果を生成することが低減するかについて多くのredexes、異なる選択肢を含んでいてもよいここで1ステップ(β-)はyまたはそれ自体に減少します)。削減する場所の異なる(一連の)選択は、削減戦略と呼ばれます。用語Tがあると言われている正規もたらす削減戦略が存在する場合、Tは(λ X 。Y)((λ X 。X X )λ X 。X 、X )(λバツ。y)((λバツ。バツバツ)λバツ。バツバツ)(\lambda x.y)((\lambda x.xx)\lambda x.xx)ββ\betayyytttttt通常の形に。すべての縮小戦略がtを標準形に持ってくる場合、用語は強く正規化されていると言われます。(私はどちらを心配していませんが、合流性は複数の可能性があることを保証します。)tttttt 縮小戦略は、tが正規形を持っている場合はいつでも、それが最終的なものになる場合、正規化すると言われています(ある意味では可能な限り最良です)。最左端の戦略は正規化です。ttt スペクトルのもう一方の端では、項tから無限のリダクションシーケンスが存在する場合は常に、ストラテジがそのようなシーケンスを見つける場合、リダクションストラテジは永続的である(ある意味では最悪の可能性がある)と言われます。正規化に失敗する可能性があります。ttt 私は永久削減戦略を知っているとFのBのkはによってそれぞれ与えられる: F B K(C [ (λ X 。S )T ] )= Cを[ S [ T / X ] ] 場合 tは 強く正規化されFのBのK(C [ (λ X 。S )T ] )= C [F∞F∞F_\inftyFb kFbkF_{bk} …

1
コンフルエントな書き換えルールによる不可視の等価性の特徴づけ
別の質問、ラムダ計算のベータ理論の拡張に応えて、Evgenijは答えを提供しました: ベータ+ルール{s = t | sとtは閉じられた解決不可能な用語です} 長期どこMが解けるである私たちは、そのようなことを用語のシーケンスを見つけることができればMそれらへの応用がに等しいI。 Evgenijの答えは、ラムダ計算に関する等式理論を提供しますが、縮約システム、つまりコンフルエントで再帰的な書き換えルールのセットによって特徴付けられるものではありません。 ラムダ計算の理論上の不可視の等価性を呼び出しましょう。これは、閉じられた解けないラムダ項の自明でないセットを同等にするが、解ける項を含む新しい方程式を追加しない縮約システムです。 ラムダ計算のベータ理論に対して目に見えない等価性はありますか? Postscript目に見えない同等性を特徴付ける例ですが、コンフルエントではありません。LET M =(λx.xx)及びN =(λx.xxx)二解けない用語。NNを書き換えるルールをMMに追加すると、MM = NNを含む不可視の等価性が誘導されますが、NNがMMとMMNの両方に減少する悪いクリティカルペアがあり、それぞれに1つの書き換えがあり、それ自体に書き換えます。

3
公理でCICを拡張することの負の結果は何ですか?
公理をCICに追加すると、定義や定理の計算内容に悪影響を与える可能性があるのは本当ですか?私がもしあれば、閉じた用語はその標準的な正規形、例えばに削減する、理論の通常の動作では、それを理解、その後、真であるN形の用語に削減しなければならない(S U C C 。。。(S U c c (0 )))。しかし、公理を仮定するとき-関数の拡張性公理と言う-システムに新しい定数を追加するだけですn :Nn:Nn : \mathbb{N}nnn( S U C C 。。。(S U C C (0 )))(sあなたはcc。。。(sあなたはcc(0)))(succ ... (succ (0)))funext fu n e x t :Πx :Af(x )= g(x )→ f= gfあなたはneバツt:Πバツ:Af(バツ)=g(バツ)→f=g funext : \Pi_{x : A} f (x) = g (x) \to f …

2
依存型付きラムダ計算のチャーチロッサープロパティ?
Church-Rosserプロパティが、単純に型指定されたラムダ計算で -reductionを保持することはよく知られています。これは、 -terms を含むすべての方程式が導出可能ではないという意味で、計算が一貫していることを意味します。たとえば、K Iは、同じ正規形を共有しないためです。βηβη\beta \etaλλ\lambda≠≠\neq 製品タイプに対応するペアに結果を拡張できることも知られています。 しかし、(おそらく)多相型、たとえばCalculus of Constructionsを使用して、依存型付きラムダ計算の結果をさらに拡張できるのだろうか。 どんな参考文献も素晴らしいでしょう! ありがとう

1
自分自身に還元されるラムダ計算
ラムダ計算を学習しようとする私の継続的な探求において、Hindley&Seldinの「Lambda-Calculus and Combinators an Introduction」では、次の論文(Bruce Lercherによる)が言及されています。である:。(λx.xx)(λx.xx)(λx.xx)(λx.xx)(\lambda x.xx)(\lambda x.xx) 私は結果を信じていますが、私は議論にまったく従いません。 非常に短い(1段落未満)。どんな説明でも大歓迎です。 おかげで、 チャーリー

2
ゼロ型の方程式の法則は何ですか?
免責事項:私は型理論を気にしているが、自分自身を型理論の専門家とは考えていない。 単純に型付けされたラムダ計算では、ゼロ型にはコンストラクターと一意のエリミネーターがありません。 Γ⊢M:0Γ⊢initial(M):AΓ⊢M:0Γ⊢initial(M):A\frac{\Gamma \vdash M \colon 0}{\Gamma \vdash initial (M) \colon A} 表示の観点から、式 は明らかです(型が意味をなす場合)。initial(M1)=initial(M2)initial(M1)=initial(M2)initial (M_1) = initial(M_2) ただし、その観点から、場合、推定することもできます。この演ductionはより強いように見えますが、それを示す特定のモデルは私を避けます。M,M′:0M,M′:0M,M' \colon 0M=M′M=M′M = M' (しかし、いくつかの証明理論的な直観があります:住民を獲得するためにどの矛盾を使用しても構いませんが、異なる矛盾証明があるかもしれません。) だから私の質問は: ゼロ型の標準方程式は何ですか? それらのいずれかが法または法に分類されていますか?ηη\etaββ\beta

2
Lambda Calculusは特定のタイプの用語作成システムですか?
これで、教会 が単に型付きラムダ計算に関連付けられていたことがわかります。確かに、ラムダ計算についての誤解を減らすために、単純型付きラムダ計算を説明したようです。 ジョンマッカーシーがLispを作成したとき、彼はそれをラムダ計算に基づいていました。これは、「シンボリック式の再帰関数とその機械による計算、パートI」を発表したときの彼自身の承認によるものです。ここで読むことができます。 今、私たちはのコアであることを知っているのMathematicaでのLispライクなシステムが、その代わりにラムダ計算に純粋に基づいているの、それがされ用語書き換えシステムに基づきます。 ここで著者は次のように述べています: Mathematicaは基本的に用語書き換えシステムです... Lispの背後にあるラムダ計算よりも一般的な概念です。 ラムダ計算は、はるかに一般的なカテゴリのごく一部であるようです。(これは基本的な概念であると考えられていたので、かなり目を見張るものがあります)。私はこれについてもっと読むことを試みています。 私の質問は次のとおりです。LambdaCalculusは特定のタイプの用語作成システムですか。

1
パターンラムダ計算におけるイータ展開
Klop、van Oostrom、およびde Vrijerには、パターンを含むラムダ計算に関する論文があります。 http://www.sciencedirect.com/science/article/pii/S0304397508000571 ある意味では、パターンは変数のツリーです。ただし、たとえば((x、y)、z)、(t、s))のように、変数のネストされたタプルと考えています。 論文では、パターン内の変数が繰り返されないという意味で、パターンが線形である場合、ルール (\p . m) n = m [n/p] ここで、pは可変パターンで、nはpとまったく同じ形状の用語のタプルで、コンフルエントです。 パターンと追加のイータルール(拡張、縮小、または単なる平等)を備えたラムダ計算の文献に同様の開発があるかどうか、私は興味があります。 特に、イータでは、 m = \lambda p . m p より直接的に、このようなラムダ計算がどのような特性を持つのか興味があります。たとえば、コンフルエントですか? 次のプロパティを強制するため、分類カテゴリを強制的に閉じます。 m p = n p implies m = n 間に\ xi-ruleを使用します。しかし、おそらく何かがうまくいかないのでしょうか?

2
ラムダ計算は、計算可能性の直感的な概念をどの程度正確にキャプチャしますか?
私は何を、なぜ、どのように -calculusに巻き込もうとしていましたが、「なぜそれが機能するのか」を理解することができませんか?λλ\lambda 「直感的に」Turing Machines(TM)の計算可能モデルを取得します。しかし、この -abstractionは、私を混乱させます。λλ\lambda TMが存在しないと仮定しましょう-そして、計算可能性のこの概念をキャプチャする -calculusの能力について、どのようにして「直感的に」納得させることができますか。すべての機能とその構成可能性のために多数の機能を持つことは、どのように計算可能性を意味しますか?ここで何が欠けていますか?私はそのことについてアロンゾ教会の論文を読んでいますが、私はまだ混乱しており、同じものについてより「くすんだ」理解を探しています。λλ\lambda

1
Schemeのcall / ccは、既知のすべての制御フロー構造を実装できますか?
「高度なスキーム:いたずらなビット」ページには次のように記載されています。 継続は、他のほぼすべての制御フロー構造[...]の派生元となる強力な制御 フロー構造です。 Scheme call/ccがPeter LandinのJ演算子に関連(*)しているため、既知の制御フロー構造を実装するために使用できると思いましたか? 「制御フロー構造」では、例外、コルーチン、グリーンスレッドなど、Wikipediaのそれらの記述について具体的に考えています。 具体的には、を使用して実装できない制御フロー構造の例はありますcall/ccか? (*)call/ccJオペレーターほど強力な論文を作成することはできませんでした。 Felleisenの論文(私は読んでおらず、明らかにそれを完全に理解するのに問題がある)はこれを調査し、それらが異なる複雑さのクラスにあるにもかかわらず、形式的に同等であると結論付けているようです。 (以下のコメントに基づいて質問を更新したことにも注意してください) 更新 以下の@Neelの優れた回答に基づいて、区切られたおよび区切られていない継続についてコメントしているサイトを見ましたが、実際には、区切られていcall/ccないだけでは十分ではないようです。一方、一流の区切られた継続(などshift/reset)を使用して、制御フロー構造を表現することができます。

6
ラムダ計算を入力した関数は計算できません
型付きラムダ計算ではなく型なしラムダ計算で計算できる関数の例をいくつか知りたいだけです。 私は初心者なので、背景情報を何度か繰り返していただければ幸いです。 ありがとう。 編集:型付きラムダ計算により、System Fと単純型付きラムダ計算について知るつもりでした。関数とは、チューリング計算可能な関数を意味します。

1
以下のための主題削減のBarendregtの証明
Barendregtのサブジェクト削減の証明に問題を発見しました(型のあるラムダ計算の Thm 4.2.5 )。 証明の最後のステップ(60ページ)では、次のように述べています。 「したがって、補題4.1.19(1)によって、 「。Γ,x:ρ⊢P:σ′Γ,x:ρ⊢P:σ′\quad\Gamma,x:\rho\vdash P:\sigma' しかし、補題4.1.19(1)によれば、それがあるべきである置換全体のコンテキストになるので、のみならず、X :ρ '。Γ[α⃗ :=τ⃗ ],x:ρ⊢P:σ′Γ[α→:=τ→],x:ρ⊢P:σ′\Gamma[\vec{\alpha}:=\vec{\tau}],x:\rho\vdash P:\sigma'x:ρ′x:ρ′x:\rho' 私は、標準溶液は何とかことを証明することであってもよいと思いますが、私は方法がわからないです。α⃗ ∉FV(Γ)α→∉FV(Γ)\vec{\alpha}\notin FV(\Gamma) 抽象化の生成補題を緩和することでそれを簡素化する証明がありましたが、最近、間違いがあり、私の証明が間違っていることがわかりました。そのため、この問題を解決する方法がわかりません。 誰か、ここで何が欠けているのか教えてください。

1
最小の通常のラムダ項が最速ではない例
してみましょうsizesizesizeのλλ\lambda次のように定義され-terms: size(x)=1size(x)=1size(x) = 1、 size(λx.t)=size(t)+1size(λx.t)=size(t)+1size(λx.t) = size(t) + 1、 size(ts)=size(t)+size(s)+1size(ts)=size(t)+size(s)+1size(t s) = size(t) + size(s) + 1。 λλ\lambda -term tの複雑さを、txからその正規形へのttt並列ベータ削減の数として定義する(Levyの意味で最適な評価を使用)。txtxt x 私は同じ関数に対して2つの通常の λλ\lambda -termsの例を探しています。ここで、より大きな用語はより複雑ではありません。 ... 明確にするために編集する 私が尋ねていることは明らかではないように思えるので、堅実な例を挙げようとします。多くの場合、関数の「単純な」/「最も単純な」定義は遅く、最適ではないという考えがあります。データ構造や数式などを追加する必要があるため、パフォーマンスが向上すると用語の複雑さが増します。優れた例はfibonacci、「単純」に次のように定義できます。 -- The fixed fibonacci definition fib_rec fib n = if (is_zero x) then 1 else fib (n - 1) + f (n - …

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