Preface
This volume of
Software Foundations TODO
Setup
For working with this material, you will need to install Coq and the ITrees
Library. To do this, install
opam (OS specific) which is the
OCaml platform
package manager. Add the Coq release distribution to
opam's databased, and then use
opam to install
coq,
coq-itree,
coq-coinduction as shown below:
opam repo add coq-released https://coq.inria.fr/opam/released
opam install coq
opam install coq-itree
opam install coq-coinduction
More detailed instructions about the Interaction Trees library can be found here:
https://github.com/DeepSpec/InteractionTrees/
Once you have installed Coq and the
coq-itree library, you will need to compile the
.v files by
running
make in the source directory. This creates a Coq library called
RIP, which is used for
importing the project code.
make
This material assumes that you have proficiency in Coq up to (and including)
Imp.v and the
Hoare.v files from Software Foundations and Programming Language Foundations, but is self contained otherwise.
Start (if necessary) with a refresher on
Imp.v then try
Monads,
Free,
ITrees,
ImpDenotation,
ImpEquiv, and
Hoare3.
Practicalities
Recommended Citation Format
If you want to refer to this volume in your own writing, please
do so as follows:
@book {Zdancewic:SF7,
author = {Steve Zdancewic and
Yannick Zakowski and
Lef Ioannidis and
Jessica Shi},
editor = {Benjamin C. Pierce},
title = "Reasoning about Interactive Programs",
series = "Software Foundations",
volume = "7",
year = "2024",
publisher = "Electronic textbook",
note = {Version 0.1, \URL{http://softwarefoundations.cis.upenn.edu} },
}
Thanks
Development of the
Software Foundations series has been
supported, in part, by the National Science Foundation under the
NSF Expeditions grant 1521523,
The Science of Deep
Specification. Work on this volume was also supported by TODO