Refinement-Types Driven Development: A study
By: Facundo Domínguez, Arnaud Spiwack
Potential Business Impact:
Makes computer programs safer and easier to write.
This paper advocates for the broader application of SMT solvers in everyday programming, challenging the conventional wisdom that these tools are solely for formal methods and verification. We claim that SMT solvers, when seamlessly integrated into a compiler's static checks, significantly enhance the capabilities of ordinary type checkers in program composition. Specifically, we argue that refinement types, as embodied by Liquid Haskell, enable the use of SMT solvers in mundane programming tasks. Through a case study on handling binder scopes in compilers, we envision a future where ordinary programming is made simpler and more enjoyable with the aid of refinement types and SMT solvers. As a secondary contribution, we present a prototype implementation of a theory of finite maps for Liquid Haskell's solver, developed to support our case study.
Similar Papers
Synthesiz3 This: an SMT-Based Approach for Synthesis with Uncomputable Symbols
Logic in Computer Science
Makes computers write code from math problems.
Subtyping in DHOL -- Extended preprint
Logic in Computer Science
Lets computers prove harder math problems.
SMT and Functional Equation Solving over the Reals: Challenges from the IMO
Logic in Computer Science
Lets computers solve hard math competition problems.