Dependent Type Refinements for Futures

09/15/2023
by   Siva Somayyajula, et al.
0

Type refinements combine the compositionality of typechecking with the expressivity of program logics, offering a synergistic approach to program verification. In this paper we apply dependent type refinements to SAX, a futures-based process calculus that arises from the Curry-Howard interpretation of the intuitionistic semi-axiomatic sequent calculus and includes unrestricted recursion both at the level of types and processes. With our type refinement system, we can reason about the partial correctness of SAX programs, complementing prior work on sized type refinements that supports reasoning about termination. Our design regime synthesizes the infinitary proof theory of SAX with that of bidirectional typing and Hoare logic, deriving some standard reasoning principles for data and (co)recursion while enabling information hiding for codata. We prove syntactic type soundness, which entails a notion of partial correctness that respects codata encapsulation. We illustrate our language through a few simple examples.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
10/26/2021

Encoding of Predicate Subtyping with Proof Irrelevance in the λΠ-Calculus Modulo Theory

The λΠ-calculus modulo theory is a logical framework in which various lo...
research
02/15/2023

Verification of Nondeterministic Quantum Programs

Nondeterministic choice is a useful program construct that provides a wa...
research
11/25/2017

Refinement Types for Ruby

Refinement types are a popular way to specify and reason about key progr...
research
04/06/2019

System FR as Foundations for Stainless

We present the design, implementation, and foundation of a verifier for ...
research
12/11/2019

Practical Sized Typing for Coq

Termination of recursive functions and productivity of corecursive funct...
research
09/20/2022

Staged Compilation with Two-Level Type Theory

The aim of staged compilation is to enable metaprogramming in a way such...
research
07/28/2023

Answer Refinement Modification: Refinement Type System for Algebraic Effects and Handlers

Algebraic effects and handlers are a mechanism to structure programs wit...

Please sign up or login with your details

Forgot password? Click here to reset