DragonLab is a semester-long workshop on Formal Methods. Its curriculum is a selection of core concepts from the Software Foundations series.
-
Install Rocq. If you install opam, this can be done with
make setup-env source activate_switchThis repository assumes the user
- Has set up Rocq via opam
- Is running in a Unix-like environment
- Is using either VSRocq or RocqIDE
These are not strict requirements, and we will help you work around them if you have e.g. a Windows setup, or if you prefer to follow the book's recommendation to run Rocq in a Docker environment.
-
Clone this repo
git clone https://github.com/utdcsg/DragonLab/ dragonlab cd dragonlab -
Try compiling the book files
make -j
If this runs with no errors, you're ready to begin the course!
Students should obtain working knowledge of the following upon completion of all units:
- Basic syntax, data types, patterns, and proof strategies for the Rocq proof system
- The Curry-Howard Isomorphism as it relates to program verification
- Basic reasoning strategies for imperative programs, primarily
- Large- and small-step operational semantics
- Hoare logic and Separation logic
- The simply-typed lambda calculus and its derivatives
- The Verified Software Toolchain
See the syllabus for more details.
