Scalable Synthesis Brandon Lucia and Todd Mytkowicz Microsoft Research
Synthesizing Circuits Inference problem is undecidable in general – hard problems to solve! Can we leverage existing work to make this scale? There exists some parameters, w, such that all inputs x implement a specification
Neural Networks or… F T F T FF F FT T TF F TT T
Neural Networks 2 layer neural network can approximate any continuous function! or… FF F FT T TF T TT F F T F T
Learning Abstractions with ML First layer learns low level features Each subsequent layer learns higher level features Unsupervised training, layer by layer
Duality of Synthesis and ML Specification is implicit in input/output pairs Machine Learning Synthesis Specification is vector of logical formula
Synthesizing Sudoku Recognizer … … … A0A1A2 B0B1B2 C0C1C2 K0 If A0 is 0 then no other cell in A0’s column 0 no other cell in A0’s row is 0 no other cell in A0’s unit is 0 If A0 is not 0 then one cell in A0’s column must be 0 one cell in A0’s row must be 0 one cell in A0’s unit must be 0
Learning Abstractions in Sudoku First layer learns local implications Each subsequent level combines prior levels. Learns “factorization” of potentially exponential specification! Unsupervised training, layer by layer
Future directions & Questions Flesh out duality into formal details Duality goes both ways: can we help ML methods with our understanding of synthesis / formal verification? CEGIS: Program = Data Structure + Algorithm Learn structure (depth) and algorithm (connectivity) Approximation / Probabilistic need not mean incorrect But it may help scale inference