Using a theorem prover to implement a compiler Mike Gordon Computer Laboratory The University of Cambridge Mike.Gordon@cl.cam.ac.uk The use of theorem proving to construct implementations has a long history starting with Green, Waldinger and others in 1969. The use of raw logic as a software/hardware description language is also an old idea (especially propositional logic for hardware circuits). I will discuss why it is still worth investigating formal logic for specification, and theorem proving to synthesise implementations. To illustrate this general theme I will provide some concrete illustrations and modern motivation from a new project (involving the universities of Oxford, Cambridge and Utah) that is attempting to use theorem proving to automatically compile correct-by-construction implementations of cryptographic hardware and software directly from mathematical specifications of algorithms.