From 9f126450eeddeb788713934ad1846de12c70852a Mon Sep 17 00:00:00 2001
From: Ralf Jung <jung@mpi-sws.org>
Date: Fri, 1 Jun 2018 10:19:36 +0200
Subject: [PATCH] improve README structure

---
 README.md | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/README.md b/README.md
index 9453e1e25..99bde15e5 100644
--- a/README.md
+++ b/README.md
@@ -3,7 +3,9 @@
 This is the Coq development of the [Iris Project](http://iris-project.org), in
 the MoSeL version.
 
-## Prerequisites
+## Building Iris
+
+### Prerequisites
 
 This version is known to compile with:
 
@@ -15,7 +17,7 @@ For a version compatible with Coq 8.6, have a look at the
 If you need to work with Coq 8.5, please check out the
 [iris-3.0 branch](https://gitlab.mpi-sws.org/FP/iris-coq/tree/iris-3.0).
 
-## Installing via opam
+### Installing via opam
 
 To obtain the latest stable release via opam (1.2.2 or newer), you have to add
 the Coq opam repository:
@@ -28,7 +30,7 @@ To obtain a development version, add the Iris opam repository:
 
     opam repo add iris-dev https://gitlab.mpi-sws.org/FP/opam-dev.git
 
-## Building from source
+### Building from source
 
 When building Iris from source, we recommend to use opam (1.2.2 or newer) for
 installing Iris's dependencies.  This requires the following two repositories:
@@ -98,7 +100,9 @@ that should be compatible with this version:
 * [Iris Atomic](https://gitlab.mpi-sws.org/FP/iris-atomic/) is an experimental
   formalization of logically atomic triples in Iris.
 
-## For Developers: How to update the std++ dependency
+## Notes for Iris Developers
+
+### How to update the std++ dependency
 
 * Do the change in std++, push it.
 * Wait for CI to publish a new std++ version on the opam archive, then run
@@ -107,3 +111,13 @@ that should be compatible with this version:
 * Run `make build-dep` (in Iris) to install the new version of std++.
   You may have to do `make clean` as Coq will likely complain about .vo file
   mismatches.
+
+### How to write/update test cases
+
+The files in `tests/` are test cases.  Each of the `.v` files comes with a
+matching `.ref` file containing the expected output of `coqc`.  Adding `Show.`
+in selected places in the proofs makes `coqc` print the current goal state.
+This is used to make sure the proof mode prints goals and reduces terms the way
+we expect it to.  You can run `make ref` to re-generate all the `.ref` files;
+this is useful after adding or removing `Show.` from a test.  If you do this,
+make sure to check the diff for any unexpected changes in the output!
-- 
GitLab