You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+18-2Lines changed: 18 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
# Iris Tutorial
2
2
The Iris Tutorial is an introduction to the [Iris separation logic framework](https://iris-project.org/) and how to work with its [Coq formalization](https://gitlab.mpi-sws.org/iris/iris/).
3
3
4
-
The exposition is intended for a broad range of readers from advanced undergraduates to PhD students and researchers. We assume that readers are already motivated to learn Iris and thus present the material in a bottom-up fashion, rather than starting out with cool motivating examples. The tutorial material is intended to be self-contained. No specific background in logic or programming languages is assumed but some familiarity with basic programming languages theory and discrete mathematics will be beneficial, see e.g. [TAPL](https://www.cis.upenn.edu/~bcpierce/tapl/). Additionally, basic knowledge of the Coq proof assistant is assumed. Advanced Coq tactics have been purposefully kept to a minimum, and some proofs are longer than necessary to facilitate learning.
4
+
The exposition is intended for a broad range of readers from advanced undergraduates to PhD students and researchers. We assume that readers are already motivated to learn Iris and thus present the material in a bottom-up fashion, rather than starting out with cool motivating examples. The tutorial material is intended to be self-contained. No specific background in logic or programming languages is assumed but some familiarity with basic programming languages theory and discrete mathematics will be beneficial, see e.g. [TAPL](https://www.cis.upenn.edu/~bcpierce/tapl/). Additionally, basic knowledge of the Coq proof assistant is assumed. Advanced Coq tactics have been purposefully kept to a minimum, and some proofs are longer than necessary to facilitate learning. We demonstrate more advanced tactics in chapter [ticket_lock_advanced](/theories/ticket_lock_advanced.v).
5
5
6
6
The tutorial comes in two versions:
7
7
@@ -57,6 +57,7 @@ Iris makes extensive use of Unicode characters. [This guide](https://gitlab.mpi-
57
57
-[counter](/exercises/counter.v) - The authoritative camera
58
58
-[spin_lock](/exercises/spin_lock.v) - Specification of a spin lock
59
59
-[ticket_lock](/exercises/ticket_lock.v) - Specification of a ticket lock
-[custom_ra](/exercises/custom_ra.v) - Defining resource algebras from scratch
@@ -196,4 +197,19 @@ If you have specific requests or questions about the tutorial, please contact:
196
197
197
198
**Amin Timany**\
198
199
Aarhus University\
199
-
<timany@cs.au.dk>
200
+
<timany@cs.au.dk>
201
+
202
+
### Contributors
203
+
Below is a list of people who have contributed to the tutorial, sorted by last name. If you have contributed to the project, please add yourself to the list.
Copy file name to clipboardExpand all lines: TODO.md
+7-1Lines changed: 7 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,5 +1,11 @@
1
+
# Fixes
2
+
- Clean up proofs in some chapters
3
+
- Reduce use of SSreflect
4
+
- Simplify proofs
5
+
1
6
# Possible future topics
2
-
- Have a file showcasing advanced Coq tactics.
7
+
- Chapter on prophecies
8
+
- Chapter on HOCAP-style specifications
3
9
- Chapters "Linked List", "Arrays", and "Merge Sort" all use list functionality from std++ (e.g. fmap and lookup). These should be introduced beforehand, for example in an appendix, with the chapters referring to the appendix.
4
10
- Consider introducing commands "About", "Locate", "Print", etc. in an introductory chapter.
5
11
- Add example with "Landin's knot" (recursion through the store) to showcase use of dicardable fractions or invariants for sequential programs
0 commit comments