@@ -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
192200To reason about GITrees, the framework provides a program logic
@@ -229,6 +237,19 @@ Context `{!heapG rs R Σ}.
229237Notation 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
234255To 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+
256283Effects 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+
287318Effects relevant to this case study are located in ` effects/store.v ` and ` fork.v ` .
288319
289320In ` examples/heap_lang/ ` , we provide an interpretation of HeapLang.
0 commit comments