2
私はCoqで2008 PHOAS paperセクション2.1から(非公式の)定義を転記しています。PHOAS in Coq:タイプの不一致
Inductive tm' {V : Set} : Set :=
| Var : V -> tm'
| App : tm' -> tm' -> tm'
| Abs : (V -> tm') -> tm'.
Definition tm := forall X, @tm' X.
Fail Example id : tm := Abs Var.
出力:
The term "Abs Var" has type "tm'" while it is expected to have type "tm".
むしろ不愉快です。どのようにしてこのコードタイプチェックを行うことができますか?
Example id : tm := fun _ => Abs Var.
問題は、あなたがラムダ(fun
)なし(タイプforall
の何かを)機能を構築しようとしていたということです。ここで
追加の情報を追加するには、質問の編集リンクを使用してください。回答を投稿するボタンは、質問に対する完全な回答のためだけに使用してください。 - [レビューから](レビュー/低品質の投稿/ 16533671) –
Jason Grossの答えからわかるように、これは本当に完全な答えです。 –