Bidirectional Type Checking for Relational Properties

by   Ezgi Çiçek, et al.

Relational type systems have been designed for several applications including information flow, differential privacy, and cost analysis. In order to achieve the best results, these systems often use relational refinements and relational effects to maximally exploit the similarity in the structure of the two programs being compared. Relational type systems are appealing for relational properties because they deliver simpler and more precise verification than what could be derived from typing the two programs separately. However, relational type systems do not yet achieve the practical appeal of their non-relational counterpart, in part because of the lack of a general foundations for implementing them. In this paper, we take a step in this direction by developing bidirectional relational type checking for systems with relational refinements and effects. Our approach achieves the benefits of bidirectional type checking, in a relational setting. In particular, it significantly reduces the need for typing annotations through the combination of type checking and type inference. In order to highlight the foundational nature of our approach, we develop bidirectional versions of several relational type systems which incrementally combine many different components needed for expressive relational analysis.


page 1

page 2

page 3

page 4


Bidirectional Typing

Bidirectional typing combines two modes of typing: type checking, which ...

Probabilistic Relational Reasoning via Metrics

The Fuzz programming language [Reed and Pierce, 2010] uses an elegant li...

Relational Cost Analysis for Functional-Imperative Programs

Relational cost analysis aims at formally establishing bounds on the dif...

Fast and Precise Type Checking for JavaScript

In this paper we present the design and implementation of Flow, a fast a...

A Geometric-Relational Deep Learning Framework for BIM Object Classification

Interoperability issue is a significant problem in Building Information ...

Composing bidirectional programs monadically (with appendices)

Software frequently converts data from one representation to another and...

Analogy as Nonparametric Bayesian Inference over Relational Systems

Much of human learning and inference can be framed within the computatio...

Please sign up or login with your details

Forgot password? Click here to reset