DeepAI
Log In Sign Up

Bidirectional Type Checking for Relational Properties

12/12/2018
by   Ezgi Çiçek, et al.
0

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.

READ FULL TEXT

page 1

page 2

page 3

page 4

08/16/2019

Bidirectional Typing

Bidirectional typing combines two modes of typing: type checking, which ...
07/13/2018

Probabilistic Relational Reasoning via Metrics

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

Relational Cost Analysis for Functional-Imperative Programs

Relational cost analysis aims at formally establishing bounds on the dif...
08/26/2017

Fast and Precise Type Checking for JavaScript

In this paper we present the design and implementation of Flow, a fast a...
02/19/2019

Composing bidirectional programs monadically (with appendices)

Software frequently converts data from one representation to another and...
06/07/2020

Analogy as Nonparametric Bayesian Inference over Relational Systems

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