著者はプログラミング言語のセマンティクスを表すために異なる表記法を使用することを知っています。実際のところ、ガイ・スティールは興味深いビデオでこの問題に取り組んでいます。
主要な回転式改札口のオペレーターが十分に認識されている意味を持っているかどうかを誰かが知っているかどうかを知りたい。たとえば、次の分母の先頭にある先頭の演算子がわかりません。
誰かが私を理解するのを助けることができますか?ありがとう。
type-checking
著者はプログラミング言語のセマンティクスを表すために異なる表記法を使用することを知っています。実際のところ、ガイ・スティールは興味深いビデオでこの問題に取り組んでいます。
主要な回転式改札口のオペレーターが十分に認識されている意味を持っているかどうかを誰かが知っているかどうかを知りたい。たとえば、次の分母の先頭にある先頭の演算子がわかりません。
誰かが私を理解するのを助けることができますか?ありがとう。
type-checking
回答:
回転式改札口の左側に、手元の変数のタイプに関する仮定の有限リストであるローカルコンテキストがあります。
上記、で得られた、ゼロであってもよい⊢ E :T。これは、変数に関する仮定が行われないことを意味します。通常、これは、eが型を持つ(自由変数を含まない)閉項であることを意味します。
多くの場合、あなたが言及するルールはより一般的な形式で書かれており、質問で言及されているものよりも多くの仮説が存在する可能性があります。
ここで、は任意のコンテキストを表し、Γ 、x :T 1は追加の仮説x :T 1をリストΓに追加することによって得られる拡張を表します。拡張が以前の仮定と「競合」しないように、xがΓに現れないことを要求するのが一般的です。
他の回答を補完するものとして、派生の入力には3つのレベルの「含意」があることに注意してください。また、実際には2つの間に対応があるため(カリーハワードの対応と呼ばれる)、論理的な派生についても同じことが言えます。
最初の意味は、式に表示される矢印であり、式(または計算の関数型)の論理的な意味に対応しています。
2番目の意味は、回転式改札機のシンボルによって具体化され、「左側のすべての数式を想定し、右側の数式が保持される」ことを意味します。証明するために:特に、あなたが与えるルールは、1つの意味を証明する必要がありますどのように伝え、次に1が証明しなければならない、Bをという仮定の下でAが保持しています。面ではλ -calculus、ことを証明するためにλ xと。tがタイプA → Bを持ち、xがタイプAの変数であると仮定して、tがタイプBを持っていることを示さなければなりません(対応を参照してください?)。
含意の第3レベルは水平バーによって具体化され、「すべての前提(上部の要素)が成り立つ場合、結論(下部の要素)が成り立つ」ことを意味します。これを、指定した -abstractionの入力規則の解釈にリンクできます(前の段落の説明を参照)。
私が見てきたことをすべての状況では、証明手段があることを Yと仮定Xを 保持しています。X が空の場合、それはY がトートロジーであることを意味します。仮定を必要とせずに証明されます。