Affiliation:
1. University of California, San Diego, La Jolla, USA
2. IMDEA Software Institute, Madrid, Spain
Abstract
Practical checkers based on refinement types use the combination of implicit semantic subtyping and parametric polymorphism to simplify the specification and automate the verification of sophisticated properties of programs. However, a formal metatheoretic accounting of the
soundness
of refinement type systems using this combination has proved elusive. We present λ
RF
, a core refinement calculus that combines semantic subtyping and parametric polymorphism. We develop a metatheory for this calculus and prove soundness of the type system. Finally, we give two mechanizations of our metatheory. First, we introduce
data propositions
, a novel feature that enables encoding derivation trees for inductively defined judgments as refined data types, and use them to show that LiquidHaskell’s refinement types can be used
for
mechanization. Second, we mechanize our results in Coq, which comes with stronger soundness guarantees than LiquidHaskell, thereby laying the foundations for mechanizing the metatheory
of
LiquidHaskell.
Funder
NSF
European Research Council
Office of Naval Research
Publisher
Association for Computing Machinery (ACM)
Reference50 articles.
1. V. Astrauskas, A. Bílý, J. Fiala, Z. Grannan, C. Matheja, P. Müller, F. Poli, and A. J. Summers. 2022. The Prusti Project: Formal Verification for Rust (invited). In NASA Formal Methods (14th International Symposium). Springer, 88–108. https://link.springer.com/chapter/10.1007/978-3-031-06773-0_5
2. Mechanized Metatheory for the Masses: The PoplMark Challenge
3. Engineering formal metatheory
4. Polymorphic Contracts
5. Michael H. Borkowski Niki Vazou and Ranjit Jhala. 2023. Artifact for "Mechanizing Refinement Types". https://doi.org/10.5281/zenodo.8425960 10.5281/zenodo.8425960
Cited by
3 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. The Role of 4IR-5IR Leadership-Management in the Adoption of Formal Methods;Systems;2024-08-18
2. Synchronous Programming with Refinement Types;Proceedings of the ACM on Programming Languages;2024-08-15
3. A Semantics of Structures, Unions, and Underspecified Terms for Formal Specification;Proceedings of the 2024 IEEE/ACM 12th International Conference on Formal Methods in Software Engineering (FormaliSE);2024-04-14