Circular Proofs as Processes: Type-Based Termination via Arithmetic Refinements

05/13/2021
by   Siva Somayyajula, et al.
0

Type systems for concurrent programs guarantee such desirable properties as communication safety and type refinements facilitate the verification of program invariants. Yet, type-based termination of recursive concurrent programs has been largely unexplored. On the other hand, sized types enable termination checking of functional programs with complex patterns of recursion in the presence of mixed inductive and coinductive types. In this paper, we adapt sized types to the concurrent setting. In particular, we extend a core language for persistent shared memory concurrency based on the semi-axiomatic sequent calculus with recursive types and arithmetic refinements to express size indexing. To prove termination of program reduction, we first define a novel semantic model that reflects persistence in the type system and admits a straightforward generalization to substructural typing. We then develop a compositional validity condition for recursive concurrent programs viewed as circular proofs that guarantees termination.

READ FULL TEXT
POST COMMENT

Comments

There are no comments yet.

Authors

page 1

page 9

page 11

page 15

page 17

12/11/2019

Practical Sized Typing for Coq

Termination of recursive functions and productivity of corecursive funct...
10/29/2018

To Memory Safety through Proofs

We present a type system capable of guaranteeing the memory safety of pr...
04/15/2021

Sized Types with Usages for Parallel Complexity of Pi-Calculus Processes

We address the problem of analysing the complexity of concurrent program...
12/28/2020

A circular version of Gödel's T and its abstraction complexity

Circular and non-wellfounded proofs have become an increasingly popular ...
03/06/2020

Diamonds are not forever: Liveness in reactive programming with guarded recursion

When designing languages for functional reactive programming (FRP) the m...
10/27/2016

Fencing off Go: Liveness and Safety for Channel-based Programming (extended version)

Go is a production-level statically typed programming language whose des...
12/31/2017

A Light Modality for Recursion

We investigate the interplay between a modality for controlling the beha...
This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.