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

page 1

page 9

page 11

page 15

page 17

research
07/20/2023

Automated Termination Proofs for C Programs with Lists (Short WST Version)

There are many techniques and tools for termination of C programs, but u...
research
12/11/2019

Practical Sized Typing for Coq

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

To Memory Safety through Proofs

We present a type system capable of guaranteeing the memory safety of pr...
research
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...
research
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 ...
research
12/31/2017

A Light Modality for Recursion

We investigate the interplay between a modality for controlling the beha...
research
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...

Please sign up or login with your details

Forgot password? Click here to reset