From f803fca1983ff0335b29407a47a9d4e005f6c6a6 Mon Sep 17 00:00:00 2001 From: Robbert Krebbers <mail@robbertkrebbers.nl> Date: Mon, 25 Nov 2019 13:03:41 +0100 Subject: [PATCH] Tweak README. --- README.md | 55 ++++++++++++++++++++++--------------------------------- 1 file changed, 22 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index ffcab1d..dc253bc 100644 --- a/README.md +++ b/README.md @@ -16,14 +16,15 @@ In order to build, install the above dependencies and then run ## Theory of Actris -The theory of Actris (semantics of channels, the CPS model, and the proof rules) +The theory of Actris (semantics of channels, the model, and the proof rules) can be found in the directory [theories/channel](theories/channel). The files correspond to the following parts of the paper: - [theories/channel/channel.v](theories/channel/channel.v): The definitional semantics of bidirectional channels in terms of Iris's HeapLang language. -- [theories/channel/proto_model.v](theories/channel/proto_model.v): The CPS - model of Dependent Separation Protocols over arbitrary BI-logics. +- [theories/channel/proto_model.v](theories/channel/proto_model.v): The + construction of the model of Dependent Separation Protocols as the solution of + a recursive domain equation. - [theories/channel/proto_channel.v](theories/channel/proto_channel.v): The instantiation of protocols with the Iris logic, definition of the connective `↣` for channel endpoint ownership, and lemmas corresponding to the Actris proof rules. @@ -44,28 +45,18 @@ correspond to the following parts of the paper: ## Notation -The notation for Dependent Separation Protocols differ between the -mechanisation and the paper. +The notation for Dependent Separation Protocols differ between the paper and +the Coq mechanization: -The paper uses the following notation: - -- Send: ! x_1 .. x_n < v > { P } . prot -- Recv: ? x_1 .. x_n < v > { P } . prot -- End: end -- Select: prot_1 {Q_1} ⊕ {Q_2} prot_2 -- Branch: prot_1 {Q_1} & {Q_2} prot_2 -- Append: prot_1 · prot_2 -- Dual: An overlined protocol - -The mechanisation uses the following notation: - -- Send: <!> x_1 .. x_n, MSG v {{ P }} ; prot -- Recv: <?> x_1 .. x_n, MSG v {{ P }} ; prot -- End: END -- Select: prot_1 <{Q_1} + {Q_2}> prot_2 -- Branch: prot_1 <{Q_1} & {Q_2}> prot_2 -- Append: prot_1 <++> prot_2 -- Dual: Nothing +| | Paper | Coq mechanization | +|--------|-------------------------------|---------------------------------------| +| Send | `! x_1 .. x_n <v>{ P }. prot` | `<!> x_1 .. x_n, MSG v {{ P }}; prot` | +| Recv | `? x_1 .. x_n <v>{ P }. prot` | `<?> x_1 .. x_n, MSG v {{ P }}; prot` | +| End | `end` | `END` | +| Select | `prot_1 {Q_1}⊕{Q_2} prot_2` | `prot_1 <{Q_1}+{Q_2}> prot_2` | +| Branch | `prot_1 {Q_1}&{Q_2} prot_2` | `prot_1 <{Q_1}&{Q_2}> prot_2` | +| Append | `prot_1 · prot_2` | `prot_1 <++> prot_2` | +| Dual | An overlined protocol | No notation | ## Weakest preconditions and Coq tactics @@ -188,13 +179,11 @@ of Actris and the formalization in Coq, that are briefly discussed here. 2. the higher-order ghost state used for ownership of protocols, and 3. the opening of the protocol invariant. -- **Subtyping relation in c↣ prot** +- **Protocol subtyping** + + The mechanization has introduced the notion of "protocol subtyping", which + allows one to strengthen/weaken the predicates of sends/receives, respectively. + This achieved using the relation `iProto_le p p'`, and the additional rule + `c ↣ p -∗ iProto_le p p' -∗ c ↣ p'`. To support "protocol subtyping", the + definition of `c ↣ p` in the model is changed to be closed under `iProto_le`. - The mechanisation has introduced the notion of subtyping, which allows one to - strengten/weaken the predicates of sends/receives respectively. In particular - this means that the endpoint ownership has been extended with `iProto_le p p'`, - where `p'` is the original protocol used in the ghost state, and `p` is the - protocol denoted by the ownership `c↣ prot`. The effect of this is that the - user can update his own view of the protocol, as long as it is consistent - with the original protocol in the invariant. As such the fundamental aspect of - the ownership still align with that of the paper. \ No newline at end of file -- GitLab