Verified CNF Encodings

Boolean satisfiability, or SAT, is a classic computational problem: given a Boolean formula, determine whether there exists an assignment to the variables that satisfies the formula. SAT is NP-complete, meaning all problems in the complexity class NP can be (efficiently) translat…

Correctness of Compilation

Compilation is the process of converting a human-comprehensible, mathematically rich programming language into a machine-readable, operationally explicit target language, often involving multiple sequential phases. Compilation correctness ensures that the original program supplie…

Formal Foundations for Intermittent Concurrency

Imagine that you program satellites for NASA that orbit the moon. These satellites are programmed remotely from Earth as the inaccessibility of space makes manual device maintenance (e.g. regular battery replacement) infeasible. Instead of batteries, these satellites are equipped…