From 716f8844c013da00a08a6a46661174f74e23187c Mon Sep 17 00:00:00 2001
From: jihgfee <jihgfee@gmail.com>
Date: Tue, 22 Sep 2020 15:06:06 +0200
Subject: [PATCH] ADressed napp and list in README

---
 README.md | 28 ++++++++++++++++++----------
 1 file changed, 18 insertions(+), 10 deletions(-)

diff --git a/README.md b/README.md
index e9bfa63..c4b618e 100644
--- a/README.md
+++ b/README.md
@@ -59,14 +59,15 @@ Dependent Separation Protocols:
 
 Semantic Session Types:
 
-|        | CPP21 submission              | Coq mechanization                     |
-|--------|-------------------------------|---------------------------------------|
-| Send   | `!_{X_1 .. X_n} A . S`        | `<!! X_1 .. X_n> TY A ; S`            |
-| Recv   | `?_{X_1 .. X_n} A . S`        | `<?? X_1 .. X_n> TY A ; S`            |
-| End    | `end`                         | `END`                                 |
-| Select | `(+){ Ss }`                   | `lty_choice SEND Ss`                  |
-| Branch | `&{ Ss }`                     | `lty_choice RECV Ss`                  |
-| Dual   | An overlined type             | No notation                           |
+|          | CPP21 submission              | Coq mechanization                     |
+|----------|-------------------------------|---------------------------------------|
+| Send     | `!_{X_1 .. X_n} A . S`        | `<!! X_1 .. X_n> TY A ; S`            |
+| Recv     | `?_{X_1 .. X_n} A . S`        | `<?? X_1 .. X_n> TY A ; S`            |
+| End      | `end`                         | `END`                                 |
+| Select   | `(+){ Ss }`                   | `lty_choice SEND Ss`                  |
+| Branch   | `&{ Ss }`                     | `lty_choice RECV Ss`                  |
+| Dual     | An overlined type             | No notation                           |
+| N-append | `S^n`                         | lty_napp S n                          |
 
 ## Coq tactics
 
@@ -150,18 +151,25 @@ The logical relation is defined across the following files:
 - [theories/logrel/subtyping.v](theories/logrel/subtyping.v):
   Definition of the semantic subtyping relation for both term and session types.
   This file also defines the notion of copyability of types in terms of subtyping.
+- [theories/logrel/subtyping_rules.v](theories/logrel/subtyping_rules.v):
+  Subtyping rules for term types and session types.
 - [theories/logrel/term_typing_rules.v](theories/logrel/term_typing_rules.v):
   Semantic typing lemmas (typing rules) for the semantic term types.
 - [theories/logrel/session_typing_rules.v](theories/logrel/session_typing_rules.v):
   Semantic typing lemmas (typing rules) for the semantic session types.
-- [theories/logrel/subtyping_rules.v](theories/logrel/subtyping_rules.v):
-  Subtyping rules for term types and session types.
+- [theories/logrel/napp.v](theories/logrel/napp.v):
+  Definition of session types iteratively being appended to themselves a finite
+  number of times, with support for swapping e.g. a send over an arbitrary number
+  of receives.
 
 An extension to the basic type system is given in
 [theories/logrel/lib/mutex.v](theories/logrel/lib/mutex.v), which defines
 mutexes as a type-safe abstraction. Mutexes are implemented using spin locks
 and allow one to gain exclusive ownership of resources shared between multiple
 threads.
+An encoding of a list type is found in [theories/logrel/lib/mutex.v](theories/logrel/lib/mutex.v), along with auxillary lemmas, and a weakest precondition for `llength`,
+that converts ownership of a list type into a list reference predicate, with
+the values of the list made explicit.
 
 ## Paper-specific remarks
 
-- 
GitLab