Skip to content
0:00 / 0:00

#programsynthesis#refinementtypes#synquid

"Type-Driven Program Synthesis" by Nadia Polikarpova

Strange Loop Conference

88K subscribers • 114 videos on Hallway • Conference channel

YouTube
  • 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 Polikarpova

Why it's here

4 people recommend this

What people say. Recommended as an excellent introduction to program synthesis and how refinement types can be used to generate verified code.

u/gozesin r/haskell • Recommends

Type Driven Program Synthesis with Haskell

programming-talkscurated list on GitHubRecommends

Under “Program Synthesis”

Type-Driven Program Synthesis 00:39:39 by **Nadia Polikarpova** (2018)

agentultraon Hacker News • Recommends

On “Keeping CALM: when distributed consistency is easy”

…self, get into Specifying Systems the text book and bible of TLA+ 3. Program Synthesis has a lot of research in it and is starting to show promising results. I'd say that while the research has been going on for a long time it's still rather new to industrial use... for a motivating talk and explanation on what program synthesis is try this one: link to this video 0 link 1 link 2 link 3 link…

ddellacostaon Hacker News • Recommends

On “Show HN: Fructose – LLM calls as strongly typed functions”

Oh yeah, you just reminded me of this cool talk I saw at Strange Loop a while back. Not about the AI parts but re: program synthesis in Haskell: "Type-Driven Program Synthesis" by Nadia Polikarpova link to this video Links to more projects and papers by Prof. Polikarpova: link I think this is one of the main projects she discusses in the talk: link EDIT: meant to mention this too, which I think has been around a bit longer, not that I've ever used it in production: link

u/mttdin r/ProgrammingLanguages • Mentions

On “Tandoph: A compiler synthesizer for simple languages”

…itbucket.io/papers/program_synthesis_now.pdf - https://www.microsoft.com/en-us/research/publication/program-synthesis/ + Topics in Programming Languages: Program Synthesis (lots of great references!) - https://www.classes.cs.uchicago.edu/archive/2016/spring/32001-1/ + Type-Driven Program Synthesis - Strange Loop 2018; Nadia Polikarpova - link to this video + Program Synthesis: Opportunities for the Next Decade - ICFP 2015 - link to this video * Compilation, Optimization + Bridging the Gap Between General-Purpose and Domain-Specific Compilers with Synthesis - 1st Summit on Advances in Programming Languages (SNAPL 2015) - http://drops.dagstuhl.de/opus/volltexte/2015/5016/ + Future Directions f…

espeedon Hacker News • Mentions

On “Decision Tables”

> Good specifications are often written at a level that generating executable code from them is often undecidable and almost always intractable in practice. What about modern dependently-typed meta languages like Idris and program synthesizers like Nadia Polikarpova's work on Synquid? Type-Driven Program Synthesis, by Nadia Polikarpova (StrangeLoop 2018) link to this video link to this video MIT Comcom: Synquid program synthesizer, and more command-line tools for the web link Idris Software Foundations link

kilburnon Hacker News • Mentions

On “TDD from the Factorio Team”

This is an active field of research. Search for "program synthesis". We are advancing, but the current state is... not mind-blowing yet (albeit somewhat cool!). See 1 for an example interactive demo and 2 for the corresponding presentation. 1 link 2 link to this video