Skip to main content
QUICK REVIEW

[論文レビュー] Subtyping on Nested Polymorphic Session Types

Ankush Das, Henry DeYoung|arXiv (Cornell University)|Mar 28, 2021
Logic, programming, and type systems参考文献 37被引用数 5
ひとこと要約

この論文は、共帰的型解釈を伴うネストされた、再帰的で多相的なセッション型のシステムにおけるサブタイプの性質を調査し、内部選択と単項再帰型コンストラクタのみを含む最小限の断片ですら、サブタイプが決定不能であることを証明している。この決定不能性にもかかわらず、著者らは、プログラマーがサブタイプ宣言を提供することで完全性を向上させられる、健全で不完全なサブタイプアルゴリズムを提示し、Rast言語に実装した。その結果、強力な実験的性能が得られている。

ABSTRACT

The importance of subtyping to enable a wider range of well-typed programs is undeniable. However, the interaction between subtyping, recursion, and polymorphism is not completely understood yet. In this work, we explore subtyping in a system of nested, recursive, and polymorphic types with a coinductive interpretation, and we prove that this problem is undecidable. Our results will be broadly applicable, but to keep our study grounded in a concrete setting, we work with an extension of session types with explicit polymorphism, parametric type constructors, and nested types. We prove that subtyping is undecidable even for the fragment with only internal choices and nested unary recursive type constructors. Despite this negative result, we present a subtyping algorithm for our system and prove its soundness. We minimize the impact of the inescapable incompleteness by enabling the programmer to seed the algorithm with subtyping declarations (that are validated by the algorithm). We have implemented the proposed algorithm in Rast and it showed to be efficient in various example programs.

研究の動機と目的

  • 共帰的解釈型の型システムにおけるサブタイプ、再帰、多相性の相互作用を調査すること。
  • ネストされた再帰的型コンストラクタと明示的多相性を有する状況下でも、サブタイプが決定可能であるかどうかを特定すること。
  • 一般には決定不能であるにもかかわらず、実用的で健全かつ拡張可能なサブタイプアルゴリズムを設計すること。
  • Rastのような並行的・線形的・セッション型付き言語における、効率的かつ正しい型チェックをサブタイプを通じて可能にすること。
  • プログラマーが提供するサブタイプ宣言を統合することで、アルゴリズムの完全性を向上させる可能性を検討すること。

提案手法

  • 著者らは、等再帰的で構造的かつ共帰的に解釈されるネストされた再帰的型、明示的多相性、パラメトリック型コンストラクタを備えた型システムを形式化した。
  • 内部選択と単項再帰のみを含む最小限の断片において、BPAオートマトンの言語包含問題への還元を通じて、サブタイプの決定不能性を証明した。
  • 提案されたサブタイプアルゴリズムは、GayとHoleのセッション型用シミュレーション技法に基づき、コンストラクタの変種解析と循環的証明構築を拡張して実装された。
  • アルゴリズムは、プログラマーが提供するサブタイプ宣言(アルゴリズムによって検証されたもの)を通じて段階的に拡張可能であり、サブタイプシミュレーションの起点として機能し、完全性を向上させる。
  • アルゴリズムは、双方向型チェックと明示的多相性を備えたRast言語に実装されており、型チェックをサブタイプへの直接還元可能である。
  • システムは共帰的仮定を用い、観察可能な通信動作に基づいて型を等価化することで、セッション型の意味論と整合している。

実験結果

リサーチクエスチョン

  • RQ1ネストされた再帰的型、明示的多相性、共帰的型解釈を組み合わせたシステムにおいて、サブタイプは決定可能か?
  • RQ2ネストと単項再帰が、多相性を伴う状況下でのサブタイプの決定可能性に与える影響は何か?
  • RQ3一般には決定不能であるにもかかわらず、健全で実用的なサブタイプアルゴリズムを設計できるか?
  • RQ4プログラマーが提供する宣言を効果的に統合することで、アルゴリズムの完全性を向上させられるか?
  • RQ5アルゴリズムは、混合帰納的/共帰的サブタイプや暗黙的多相性に対応して適応可能か?

主な発見

  • 内部選択とネストされた単項再帰的型コンストラクタのみを含む断片において、関数型や積型が存在しない状況でも、サブタイプは決定不能である。
  • 決定不能性の結果は共帰的解釈下でも成立し、BPAオートマトンの言語包含問題への還元に依存している。
  • 提案されたサブタイプアルゴリズムは健全であり、Rast言語の多数の例題プログラムを効率的に処理できる。
  • アルゴリズムの完全性は、プログラマーが提供する宣言によって段階的に向上させられ、それらは検証されサブタイプシミュレーションに統合される。
  • 型が帰納的に解釈されても、アルゴリズムは健全であり続けるが、一部の空型同定が見逃される可能性がある。
  • システムは、セッション型付き並行プログラムにおけるサブタイプの実用的応用が可能であることを示しており、Rast実装における強い実験的性能を示している。

より良い研究を、今すぐ始めましょう

論文の読解から最終レビューまで、研究時間を劇的に削減しましょう。

クレジットカード登録不要

このレビューはAIが作成し、人間の編集者が確認しました。