mirror of
https://github.com/achlipala/frap.git
synced 2024-11-28 07:16:20 +00:00
Formal Reasoning About Programs
.gitignore | ||
_CoqProject | ||
AbstractInterpret.v | ||
AbstractInterpretation.v | ||
BasicSyntax.v | ||
BasicSyntax_template.v | ||
ConcurrentSeparationLogic.v | ||
ConcurrentSeparationLogic_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. Alternatively, run `make lib' to build just the book library, not the chapter example files or PDF.
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
- Chapter 13:
SharedMemory.v
- Chapter 14:
ConcurrentSeparationLogic.v