QUICK REVIEW
[論文レビュー] Generic Description of Well-Scoped, Well-Typed Syntaxes
Gergő Érdi|ArXiv.org|Mar 31, 2018
Logic, programming, and type systems参考文献 15被引用数 3
ひとこと要約
この論文は、依存型付き言語における記述を用いたユニバース内に記述することで、一般化された枠組みを導入し、束縛子を含む多様な型付き言語に対して、型保存的リネームと置換を一度に再利用可能なAgdaライブラリとして実装・形式的証明を伴って実現する。これにより、束縛子を含む多様な型付き言語において『一度限り』の解決策が達成される。
ABSTRACT
We adapt the technique of type-generic programming via descriptions pointing into a universe to the domain of typed languages with binders and variables, implementing a notion of "syntax-generic programming" in a dependently typed programming language. We present an Agda library implementation of type-preserving renaming and substitution (including proofs about their behaviour) "once and for all" over all applicable languages using our technique.
研究の動機と目的
- 束縛子を含む異なる型付き言語において、リネームや置換といった型保存的演算を繰り返し実装する問題に対処すること。
- 依存型付き環境下で、すべてのwell-scopedでwell-typedな構文に一様に適用可能な、一般化され再利用可能な枠組みを提供すること。
- リネームと置換の演算の正しさを、特定の言語に依存せずに一度限りで形式的に形式的証明すること。
- ユニバース内の記述が、変数スコープと型安全性を伴う型付き構文の構造を効果的に符号化できることを示すこと。
- 一度の統一された基盤を用いて、言語固有のコンponentsを体系的かつモジュラーに構築することを可能にすること。
提案手法
- 記述のユニバースを用いて、束縛構造を含む構文木を型一般化の方法で表現すること。
- well-scopingとwell-typingの制約を記述フレームワーク内に直接符号化することで、構築段階で型安全性を保証すること。
- 依存型を用いて、記述ベースの構文上で一般化された演算(リネームと置換)を定義すること。
- Agdaの依存型システムを用いて、リネームと置換が型とスコープ条件を保存することを証明すること。
- 帰納的ファミリーと依存型パターンマッチのサポートを活用し、構築段階で正しさを保証すること。
- 言語固有の構文を抽象化し、言語の文法と型ルールの記述をパrameter化することで、フレームワークを言語に依存せずに一般化すること。
実験結果
リサーチクエスチョン
- RQ1一貫した一般化された枠組みが、束縛子を含む多様な型付き言語のwell-scopedでwell-typedな構文を記述できるか?
- RQ2リネームと置換を、すべてのこのような言語にわたって形式的証明を伴い一般化して実装できるか?
- RQ3ユニバース内の記述が、変数と束縛子を含む型付き言語の構造的および型制約をどの程度正確に捉えることができるか?
- RQ4リネームと置換の正しさを、言語ごとに別々に証明するのではなく、一度限りで証明できるか?
- RQ5依存型が、このような一般化され、正しさが保証された実装を可能にする役割は何か?
主な発見
- フレームワークは、ユニバース内の記述を用いてwell-scopedでwell-typedな構文を効果的に符号化し、構築段階で型安全性を保証した。
- リネームと置換は、すべての対応する言語にわたって一般化され、型保存およびスコープ保存の性質について完全な形式的証明が与えられた。
- Agdaライブラリは、これらの演算を一度定義し、複数の言語に再利用可能であることを示した。
- 記述の使用により、構文構造と型制約を分離することで、モジュラーかつ拡張可能な言語記述のアプローチが可能になった。
- 言語固有の詳細を抽象化することで、言語実装におけるボイラープレートやエラーを引き起こしやすいコードの削減が達成された。
- このフレームワークは、束縛子を含む型付き言語を構築するための体系的で再利用可能かつ形式的検証済みの基盤を提供する。
より良い研究を、今すぐ始めましょう
論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。
クレジットカード登録不要
このレビューはAIが作成し、人間の編集者が確認しました。