#programsynthesis#refinementtypes#synquid
"Type-Driven Program Synthesis" by Nadia Polikarpova
88K subscribers • 114 videos on Hallway • Conference channel
- Recommended by 4 people: 2 on Hacker News, 1 in engineering communities and 1 curated list.
- A classic. People kept recommending it from 2018 to 2024.
- Presented by Nadia Polikarpova, Assistant Professor at UC San Diego
Advanced. Deep dive for people who know the field.
14K views8 years ago4 recommendations
Computer scienceProgramming languagesComputation and complexityFunctional programmingLanguage design and type systems
Nadia Polikarpova presents Synquid, a tool that uses refinement types and SMT solvers to automatically synthesize verified recursive functional programs.
A promising approach to improving software quality is to enhance programming languages with declarative constructs, such as logical specifications or examples of desired behavior, and to use program synthesis technology to translate these constructs into efficiently executable code. In order to produce code that provably satisfies a rich specification, the synthesizer needs an advanced program verification mechanism that is sufficiently expressive and fully automatic. In this talk, I will present a program synthesis technique based on refinement type checking: a verification mechanism that supports automatic reasoning about expressive properties through a combination of types and SMT solving. The talk will present two applications of type-driven synthesis. The first one is a tool called Synquid, which creates recursive functional programs from scratch given a refinement type as input. Synquid is the first synthesizer powerful enough to automatically discover programs that manipulate complex data structures, such as balanced trees and propositional formulas. The second application is a language called Lifty, which uses type-driven synthesis to repair information flow leaks. In Lifty, the programmer specifies expressive information flow policies by annotating the sources of sensitive data with refinement types, and the compiler automatically inserts access checks necessary to enforce these policies across the code. Nadia PolikarpovaWhy it's here
4 people recommend thisWhat people say. Recommended as an excellent introduction to program synthesis and how refinement types can be used to generate verified code.
programming-talkscurated list on GitHubRecommends
Under “Program Synthesis”
agentultraon Hacker News • Recommends
On “Keeping CALM: when distributed consistency is easy”
ddellacostaon Hacker News • Recommends
On “Show HN: Fructose – LLM calls as strongly typed functions”
u/mttdin r/ProgrammingLanguages • Mentions
On “Tandoph: A compiler synthesizer for simple languages”
espeedon Hacker News • Mentions
On “Decision Tables”
kilburnon Hacker News • Mentions
On “TDD from the Factorio Team”