Affiliation:
1. Queen’s University, Canada
2. University of Cambridge, United Kingdom
Abstract
We present a logically principled foundation for systematizing, in a way that works with any computational effect and evaluation order, SMT constraint generation seen in refinement type systems for functional programming languages. By carefully combining a focalized variant of call-by-push-value, bidirectional typing, and our novel technique of value-determined indexes, our system generates solvable SMT constraints without existential (unification) variables. We design a polarized subtyping relation allowing us to prove our logically focused typing algorithm is sound, complete, and decidable. We prove type soundness of our declarative system with respect to an elementary domain-theoretic denotational semantics. Type soundness implies, relatively simply, the total correctness and logical consistency of our system. The relative ease with which we obtain both algorithmic and semantic results ultimately stems from the proof-theoretic technique of focalization.
Funder
Natural Sciences and Engineering Research Council of Canada through Discovery
European Research Council (ERC) Consolidator
European Union’s Horizon 2020 Framework Programme
Publisher
Association for Computing Machinery (ACM)
Reference90 articles.
1. Verifying a Semantic βη-Conversion Test for Martin-Löf Type Theory
2. Logic Programming with Focusing Proofs in Linear Logic
3. Refining Inductive Types
4. Lennart Augustsson. 1998. Cayenne—A language with dependent types. In ACM SIGPLAN International Conference on Functional Programming (ICFP’98). 239–250.
5. Ondrej Baranovič. 2023. LTR. Retrieved from https://github.com/nulano/LTR
Cited by
1 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Flux: Liquid Types for Rust;Proceedings of the ACM on Programming Languages;2023-06-06