Skip to content

Commit df4874f

Browse files
committed
intro upd
1 parent ea9b16b commit df4874f

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

INTRO.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -187,6 +187,14 @@ Program Definition interp_load {A} (a : A -n> IT)
187187
λne env, get_ret (λne l, READ l) (a env).
188188
```
189189

190+
We use the equational theory and the induced reduction relation on
191+
GITrees to argue about soundness of denotational semantics for the
192+
following languages:
193+
* Language with I/O;
194+
* Language with call/cc;
195+
* Language with call/cc and I/O;
196+
* Language with delimited continuations;
197+
190198
## Program Logic
191199

192200
To reason about GITrees, the framework provides a program logic
@@ -229,6 +237,19 @@ Context `{!heapG rs R Σ}.
229237
Notation iProp := (iProp Σ).
230238
```
231239

240+
We use program logic to show the following results:
241+
* Type soundness (w.r.t. denotational semantics in GITrees):
242+
* Language with I/O;
243+
* Language with delimited continuations;
244+
* Language with higher-order state combined with delimited continuations language;
245+
* Affine language with higher-order state and preemptive concurrency;
246+
* Affine language with higher-order state and preemptive concurrency combined with I/O language;
247+
* Adequacy (w.r.t. operational semantics given by inductive relation):
248+
* Language with I/O;
249+
* Language with call/cc;
250+
* Language with call/cc and I/O;
251+
* Language with delimited continuations;
252+
232253
## Concurrency extension
233254

234255
To represent effects related to preemptive concurrency, we extend
@@ -253,6 +274,12 @@ the second is an `IT` that gets written to the location. `CAS`,
253274

254275
## Case study: Extending the Affine Language with Concurrency
255276

277+
The purpose of this case study is to investigate soundness (w.r.t.
278+
denotational semantics defined in GITrees) of a lambda calculus that
279+
combines affine type system, higher-order store and preemptive
280+
concurrency with calls to a different lambda calculus that has a
281+
simple type system and I/O operations.
282+
256283
Effects relevant to this case study are located in `effects/store.v`,
257284
`effects/io_tape.v`, and `fork.v`.
258285

@@ -284,6 +311,10 @@ two changes:
284311

285312
## Case study: HeapLang
286313

314+
The purpose of this case study is to define denotational semantics of
315+
HeapLang, and derive program logic rules for it from the functional
316+
provided by the library.
317+
287318
Effects relevant to this case study are located in `effects/store.v` and `fork.v`.
288319

289320
In `examples/heap_lang/`, we provide an interpretation of HeapLang.

0 commit comments

Comments
 (0)