Simulating physical reality with a quantum computer

Quantum chemistry for complete beginners

Quantum Computers: Not Just for Breaking RSA There's no denying it, Shor's algorithm was a blockbuster result. The thought of an exotic new computer breaking all widely-used public-key crypto plays well with the public imagination, and so you'd be forgiven for believing quantum computing is ultimately a sort of billions-dollar make-work project for software engineers: forcing our profession to relive a Y2K-like mass upgrade of old systems to new, quantum-safe encryption algorithms. [Read More]

Walking the faster-than-light tightrope

Quantum entanglement and the CHSH game

Measurement and signaling in the nonlocal world Popular understanding of quantum mechanics usually focuses on three learning objectives: At small scales, particle properties (position, momentum, spin, etc.) are in superposition - they don't have a definite value, but instead are “smeared” across multiple possible values. Measuring a superposed particle property makes it collapse probabilistically to a specific value. We don't simply discover the property's pre-existing value; rather the property is forced to take on a definite value by the act of measurement. [Read More]

Checking Firewall Equivalence with Z3

Lessons I've learned from software engineering are uniformly cynical: Abstraction almost always fails; you can't build something on top of a system without understanding how that system works. Bleeding-edge methods are a recipe for disaster Everything good is hype and you'll only ever get a small fraction of the utility being promised. Imagine my surprise, then, when the Z3 constraint solver from Microsoft Research effortlessly dispatched the thorniest technical problem I've been given in my short professional career. [Read More]

Formal Verification, Casually Explained

Written during an interesting time in my life

Why are we here? What guarantees does formal verification provide? This question rests at the apex of a hierarchy of inquiry extending all the way down to how we can know anything at all! What do we mean by software correctness? There are precisely two different ways for a piece of software to be correct: The supreme deity of the universe descends from the heavens and decrees, with all the weight of Objective Truth, that a certain piece of software is correct. [Read More]