Tutorial on Deductive Program Synthesis - Part 2: Hands-on Derivation and Advanced Techniques
Offered By: Neurosymbolic Programming for Science via YouTube
Course Description
Overview
Dive into the inner workings of deductive program synthesis in this 42-minute tutorial, the second part of a series focusing on the SuSLik system for creating provably correct pointer-manipulating programs. Explore synthetic separation logic (SSL) and its basic rules through hands-on examples like swapping elements and managing bank accounts. Tackle challenging tasks such as tree flattening, learning how to handle recursion and utilize cyclic proofs. Gain practical experience in deriving programs from specifications step-by-step using deductive rules, and understand the fundamental idea behind deductive synthesis: finding the program by looking for the proof.
Syllabus
this tutorial
synthetic separation logic (SSL)
SSL: basic rules
example: swap
demo: bank account
deposit
demo: deriving dispose
deriving single-to-double
example: tree flattening
this task is challenging!
tree flattening with cyclic proofs
does this goal look familiar?
extracting the auxiliary
deductive synthesis idea: to find the program, look for the proof
Taught by
Neurosymbolic Programming for Science
Related Courses
程序设计实习 / Practice on ProgrammingPeking University via Coursera 程序设计基础
Peking University via edX 算法基础
Peking University via Coursera Principles of Computing (Part 2)
Rice University via Coursera 算法设计与分析 Design and Analysis of Algorithms
Peking University via Coursera