|
1 | 1 | # Intro |
2 | 2 |
|
3 | 3 | Guarded Interaction Trees (GITrees) are a framework for providing |
4 | | -semantics for higher-order programming languages with complex effects, |
| 4 | +semantics for higher-order programming languages with complex effects |
5 | 5 | such as concurrency, higher-order store, and I/O. One of the goals of |
6 | 6 | the framework is to provide a direct translation for higher-order |
7 | | -constructions. The intention is to use it as an alternative or |
8 | | -augmentation to providing operational semantics. |
| 7 | +constructions. The intention is to use it as a composable alternative for |
| 8 | +providing operational semantics. |
9 | 9 |
|
10 | | -In this document, we provide a description of the framework and short |
11 | | -descriptions of two case studies. This document also describes an |
| 10 | +In this document, we provide a description of the framework and two short |
| 11 | +case studies. This document also describes an |
12 | 12 | extension for concurrency and reasoning rules about atomic operations |
13 | 13 | in GITrees. |
14 | 14 |
|
15 | | -The document assumes familiarity with the Iris framework and |
16 | | -recommends skimming through Sections 1–6 of [Modular Denotational |
| 15 | +The document assumes familiarity with the Iris framework. We |
| 16 | +recommend skimming through Sections 1–6 of [Modular Denotational |
17 | 17 | Semantics for Effects with Guarded Interaction |
18 | 18 | Trees](https://doi.org/10.1145/3632854). |
19 | 19 |
|
@@ -198,10 +198,10 @@ following languages: |
198 | 198 | ## Program Logic |
199 | 199 |
|
200 | 200 | To reason about GITrees, the framework provides a program logic |
201 | | -(mostly defined in `core/weakestpre.v`), based on internal steps. The |
| 201 | +(mostly defined in `core/weakestpre.v`) based on internal steps. The |
202 | 202 | definition mostly follows the one in Iris and provides standard |
203 | 203 | progress/adequacy lemmas. The program logic is parameterized by the |
204 | | -following `GS`, which includes invariant `GS` (with later credits), |
| 204 | +following `GS`, which includes the invariant `GS` (with later credits), |
205 | 205 | GITrees state `GS` (`stateG`), and some auxiliary parameters: |
206 | 206 |
|
207 | 207 | ```coq |
|
0 commit comments