This document roughly maps the lecture notes and exercises to the Coq development.
This document roughly maps the lecture notes and exercises to the Coq development.
## Basic structure
Chapters 1-4 are included in the `theories/type_systems` folder.
Chapters 5-10 are included in the `theories/program_logics` folder.
All of the paths given below are to be understood relative to these folders.
## Chapter 1
## Chapter 1
* The `warmup` folder contains a quick reminder of some concepts of Coq as well as an introduction to some features of `stdpp`.
* The `warmup` folder contains a quick reminder of some concepts of Coq as well as an introduction to some features of `stdpp`.
* The `stlc` folder contains an implementation of the untyped lambda-calculus and the simply-typed lambda-calculus, with different reduction semantics, including syntactic and semantic type safety proofs.
* The `stlc` folder contains an implementation of the untyped lambda-calculus and the simply-typed lambda-calculus, with different reduction semantics, including syntactic and semantic type safety proofs.
...
@@ -81,15 +86,15 @@ Special notes on some exercises:
...
@@ -81,15 +86,15 @@ Special notes on some exercises:
* Exercise 56 is not present in the Coq development.
* Exercise 56 is not present in the Coq development.
## Chapter 5
## Chapter 5
* The development for Chapter 5 can be found in the file `axiomatic/hoare.v`.
* The development for Chapter 5 can be found in the file `hoare.v`.
* Exercises are provided in-line with the material.
* Exercises are provided in-line with the material.
## Chapter 6
## Chapter 6
* The development for Chapter 6 can be found in the file `axiomatic/ipm.v`.
* The development for Chapter 6 can be found in the file `ipm.v`.
* Exercises are provided in-line with the material.
* Exercises are provided in-line with the material.
## Chapter 7
## Chapter 7
* The development for Chapter 7 can be found in the folder `axiomatic/logrel.v`, in files:
* The development for Chapter 7 can be found in the folder `logrel.v`, in files:
+`syntactic.v` defines a syntactic type system for our language.
+`syntactic.v` defines a syntactic type system for our language.
+`logrel.v` defines the logical relation and proves the fundamental theorem.
+`logrel.v` defines the logical relation and proves the fundamental theorem.
+`adequacy.v` proves adequacy of the logical relation.
+`adequacy.v` proves adequacy of the logical relation.
...
@@ -101,19 +106,19 @@ Special notes on some exercises:
...
@@ -101,19 +106,19 @@ Special notes on some exercises: