We’re going to write a quantum circuit interpreter (or simulator ) using just 27 lines of Python! To understand this post, you don’t need to know anything about quantum computing. All you need to know is matrix multiplication! I’ll walk you through the rest! We’re going to treat the operations of a quantum computer as yet another programming language for which we want to build an interpreter. So…
The unexpected rise of SAT and SMT solvers has revolutionized software verification, both the automated and deductive flavors. Simply, you encode program semantics as logical circuits and ask the SMT solver questions about them. How elegant. But what happens when your program is randomized? Good luck! The first-order world of SMT solvers does not have the ingredients to sustain your stochastic…
So deep learning has taken the world by storm. Frameworks for training deep neural networks, like TensorFlow , allow you to construct so-called differentiable programs . The idea is that one can compute the derivative of some program (usually some neural net), and then use that to optimize its parameters. I wrote this post to introduce researchers in the verification and programming languages…
My colleague Somesh Jha recently asked me to give a lecture on program synthesis to his class. As I prepared my notes, I realized that a single lecture is long enough to formally define the problem and code up some cool examples that demonstrate the process. This post contains the notes and code I used in class. I go through two simple examples in this post; the full code is on GitHub . What is…