Table of Contents
Fetching ...

Separating Sessions Smoothly

Simon Fowler, Wen Kokke, Ornela Dardha, Sam Lindley, J. Garrett Morris

TL;DR

This work introduces Hypersequent GV ($HGV$), a modular core calculus for functional programming with session types that uses hyper-environments to ensure type-preserving structural congruence, enabling a clean operational correspondence with Hypersequent CP ($HCP$). It establishes preservation, progress, and strong normalisation for $HGV$, and shows that well-typed GV configurations embed into $HGV$ configurations and that tree-structured $HGV$ configurations correspond to GV. The authors provide a bidirectional operational correspondence between $HGV$ and $HCP$ through translations, including a refinement to $HGV$-to-$HCP$ via $HGV^*$, and extend the framework with forest-structure extensions (TC-Mix), simplified forwarding, and exceptions (EGV). They also discuss structure-preserving embeddings between GV and $HGV$, and outline further extensions (forests, Mix, exceptions) that preserve deadlock freedom while enabling richer concurrency topologies and fault-handling semantics.

Abstract

This paper introduces Hypersequent GV (HGV), a modular and extensible core calculus for functional programming with session types that enjoys deadlock freedom, confluence, and strong normalisation. HGV exploits hyper-environments, which are collections of type environments, to ensure that structural congruence is type preserving. As a consequence we obtain an operational correspondence between HGV and HCP -- a process calculus based on hypersequents and in a propositions-as-types correspondence with classical linear logic (CLL). Our translations from HGV to HCP and vice-versa both preserve and reflect reduction. HGV scales smoothly to support Girard's Mix rule, a crucial ingredient for channel forwarding and exceptions.

Separating Sessions Smoothly

TL;DR

This work introduces Hypersequent GV (), a modular core calculus for functional programming with session types that uses hyper-environments to ensure type-preserving structural congruence, enabling a clean operational correspondence with Hypersequent CP (). It establishes preservation, progress, and strong normalisation for , and shows that well-typed GV configurations embed into configurations and that tree-structured configurations correspond to GV. The authors provide a bidirectional operational correspondence between and through translations, including a refinement to -to- via , and extend the framework with forest-structure extensions (TC-Mix), simplified forwarding, and exceptions (EGV). They also discuss structure-preserving embeddings between GV and , and outline further extensions (forests, Mix, exceptions) that preserve deadlock freedom while enabling richer concurrency topologies and fault-handling semantics.

Abstract

This paper introduces Hypersequent GV (HGV), a modular and extensible core calculus for functional programming with session types that enjoys deadlock freedom, confluence, and strong normalisation. HGV exploits hyper-environments, which are collections of type environments, to ensure that structural congruence is type preserving. As a consequence we obtain an operational correspondence between HGV and HCP -- a process calculus based on hypersequents and in a propositions-as-types correspondence with classical linear logic (CLL). Our translations from HGV to HCP and vice-versa both preserve and reflect reduction. HGV scales smoothly to support Girard's Mix rule, a crucial ingredient for channel forwarding and exceptions.

Paper Structure

This paper contains 52 sections, 38 theorems, 68 equations, 10 figures.

Key Result

Theorem 3.3

Figures (10)

  • Figure 1: Vending machine and customer as a GV program.
  • Figure 2: Process structure of \ref{['fig:example1a']}.
  • Figure 4: HGV, duality and typing rules for terms.
  • Figure 5: HGV, typing rules for configurations.
  • Figure 6: HGV, operational semantics.
  • ...and 5 more figures

Theorems & Definitions (95)

  • Example 2.1
  • Remark 3.1
  • Remark 3.2
  • Theorem 3.3: Preservation
  • proof
  • Example 3.4
  • Example 3.5
  • Definition 3.6: Undirected Multigraph
  • Definition 3.7: Leaf
  • Lemma 3.8
  • ...and 85 more