mirror of
https://github.com/achlipala/frap.git
synced 2024-12-01 00:26:18 +00:00
Formal Reasoning About Programs
.gitignore | ||
_CoqProject | ||
AbstractInterpret.v | ||
AbstractInterpretation.v | ||
BasicSyntax.v | ||
BasicSyntax_template.v | ||
DeepAndShallowEmbeddings.v | ||
DeepAndShallowEmbeddings_template.v | ||
DeeperInterp.ml | ||
DeeperWithFailInterp.ml | ||
DeepInterp.ml | ||
Frap.v | ||
frap_book.tex | ||
HoareLogic.v | ||
Imp.v | ||
index.html | ||
Interpreters.v | ||
Interpreters_template.v | ||
Invariant.v | ||
LambdaCalculusAndTypeSoundness.v | ||
LambdaCalculusAndTypeSoundness_template.v | ||
Makefile | ||
Map.v | ||
ModelCheck.v | ||
ModelChecking.v | ||
ModelChecking_template.v | ||
OperationalSemantics.v | ||
OperationalSemantics_template.v | ||
README.md | ||
Relations.v | ||
SeparationLogic.v | ||
SeparationLogic_template.v | ||
SepCancel.v | ||
Sets.v | ||
SharedMemory.v | ||
TransitionSystems.v | ||
TransitionSystems_template.v | ||
TypesAndMutation.v | ||
Var.v |
Formal Reasoning About Programs
This is an in-progress, open-source book by Adam Chlipala simultaneously introducing the Coq proof assistant 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
- Chapter 12:
SeparationLogic.v