SuSLik: Deductive Synthesis of Safe Programs with Pointers - Tutorial 1b
Offered By: Neurosymbolic Programming for Science via YouTube
Course Description
Overview
Explore deductive program synthesis through an introduction to the SuSLik system, focusing on creating provably correct pointer-manipulating programs. Delve into the motivation and core concepts of deductive synthesis, practicing program specification using formal logic. Learn about separation logic (SL) and its application to programs, including SL assertions and example triples. Examine dynamic data structures, with a particular emphasis on linked lists. Engage in hands-on exercises, such as rotating three elements and converting a singly linked list to a doubly linked list. Follow along with demonstrations on swapping elements, disposing of lists, and copying linked lists, gaining practical insights into synthesizing safe programs with pointers.
Syllabus
Intro
follow along
we've come a long way...
program synthesis with guarantees
this tutorial
example: swap
demo: swap
exercise 1: rotate three
separation logic (SL)
programs
SL assertions
example triples
example: dispose
dynamic data structures
the linked list predicate
demo: dispose a list
example: copy
linked list with elements
demo: copy a list
exercise 2: single to double
Taught by
Neurosymbolic Programming for Science
Related Courses
Stanford Seminar - Concepts and Questions as ProgramsStanford University via YouTube DreamCoder- Growing Generalizable, Interpretable Knowledge With Wake-Sleep Bayesian Program Learning
Yannic Kilcher via YouTube A Neural Network Solves and Generates Mathematics Problems by Program Synthesis - Paper Explained
Aleksa Gordić - The AI Epiphany via YouTube EI Seminar - Recent Papers in Embodied Intelligence
Massachusetts Institute of Technology via YouTube Using Program Synthesis to Build Compilers
Simons Institute via YouTube