Affiliation:
1. University of California at San Diego, USA
Abstract
We introduce the FUSION algorithm for local refinement type inference, yielding a new SMT-based method for verifying programs with polymorphic data types and higher-order functions. FUSION is concise as the programmer need only write signatures for (externally exported) top-level functions and places with cyclic (recursive) dependencies, after which FUSION can predictably synthesize the most precise refinement types for all intermediate terms (expressible in the decidable refinement logic), thereby checking the program without false alarms. We have implemented FUSION and evaluated it on the benchmarks from the LiquidHaskell suite totalling about 12KLOC. FUSION checks an existing safety benchmark suite using about half as many templates as previously required and nearly 2 × faster. In a new set of theorem proving benchmarks FUSION is both 10 — 50 × faster and, by synthesizing the most precise types, avoids false alarms to make verification possible.
Funder
National Science Foundation
Microsoft Research
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
10 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Towards a Dynabook for verified VM construction;Journal of Computer Languages;2024-08
2. Mechanizing Refinement Types;Proceedings of the ACM on Programming Languages;2024-01-05
3. Flux: Liquid Types for Rust;Proceedings of the ACM on Programming Languages;2023-06-06
4. Grammar Inference for Ad Hoc Parsers;Companion Proceedings of the 2022 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity;2022-11-29
5. Refinement Types: A Tutorial;Foundations and Trends® in Programming Languages;2021