# Formal Reasoning About Programs This is an in-progress, open-source book by [Adam Chlipala](http://adam.chlipala.net/) simultaneously introducing [the Coq proof assistant](http://coq.inria.fr/) and techniques for proving correctness of programs. That is, the game is doing completely rigorous, machine-checked mathematical proofs, showing that programs meet their specifications. Just run `make` here to build everything, including the book `frap.pdf` and the accompanying Coq source modules. # Code associated with the different chapters * Chapter 2: `BasicSyntax.v` * Chapter 3: `Interpreters.v` * Chapter 4: `TransitionSystems.v` * Chapter 5: `ModelChecking.v` * Chapter 6: `OperationalSemantics.v` * Chapter 7: `AbstractInterpretation.v` * Chapter 8: `LambdaCalculusAndTypeSoundness.v` * Chapter 9: `TypesAndMutation.v` * Chapter 10: `HoareLogic.v` * Chapter 11: `DeepAndShallowEmbeddings.v`