Proceedings of the 40th ACM SIGPLAN Conference on Programming Language Design and Implementation 2019
DOI: 10.1145/3314221.3314603
|View full text |Cite
|
Sign up to set email alerts
|

Bidirectional type checking for relational properties

Abstract: 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 se… Show more

Help me understand this report
View preprint versions

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
11
0

Year Published

2019
2019
2021
2021

Publication Types

Select...
4
2

Relationship

2
4

Authors

Journals

citations
Cited by 14 publications
(11 citation statements)
references
References 44 publications
0
11
0
Order By: Relevance
“…Following the initial work on linear typing for differential privacy [44], a parallel line of work [6,8] leverages relational refinement types aided by SMT solvers in order to support type-level dependency of privacy parameters (à la DFuzz [29]) in addition to more powerful variants of differential privacy such as (ϵ, δ )-differential privacy. These approaches support (ϵ, δ )-differential privacy, but did not support usable type inference until a recently proposed heuristic bi-directional type system [19]. Although a direct case study of bidirectional type inference for relational refinement types has not yet been applied to differential privacy, the possibility of such a system appears promising.…”
Section: Related Workmentioning
confidence: 99%
“…Following the initial work on linear typing for differential privacy [44], a parallel line of work [6,8] leverages relational refinement types aided by SMT solvers in order to support type-level dependency of privacy parameters (à la DFuzz [29]) in addition to more powerful variants of differential privacy such as (ϵ, δ )-differential privacy. These approaches support (ϵ, δ )-differential privacy, but did not support usable type inference until a recently proposed heuristic bi-directional type system [19]. Although a direct case study of bidirectional type inference for relational refinement types has not yet been applied to differential privacy, the possibility of such a system appears promising.…”
Section: Related Workmentioning
confidence: 99%
“…ś Relational comprises all the cost analysis examples from [Aguirre et al 2017;Çiçek et al 2017;Radiček et al 2018]. These examples compare the resource usage of the same function on different inputs, for instance, constant-time comparison from section 2.2, or different functions on the same input, for instance, the memory allocation case study compares the memory required by the standard and tail recursive implementations of the length function.…”
Section: Summary Of Examplesmentioning
confidence: 99%
“…Unfortunately, however, performance bugs are as difficult to detect as they are common [Jin et al 2012]. As a result, the problem of statically analysing the resource usage, or execution cost, of programs has been subject to much research in which a broad range of techniques have been studied, including resource-aware type systems [Çiçek et al 2017;Hoffmann et al 2012;Hofmann and Jost 2003;Jost et al 2017;Wang et al 2017], program and separation logics [Aspinall et al 2007;Atkey 2010], and sized types [Vasconcelos 2008].…”
Section: Introductionmentioning
confidence: 99%
“…Intuitively, we think of P as being a subtype of the unit type 1, as one can always discard "an atom of potential". From this, it follows that P k <∶ P when ≤ k. More potential can always be used in place of less 10 . Note the contravariance in this subtyping rule: the ordering in amounts of potential is the opposite of the ordering on numbers.…”
Section: Cost and Potentialmentioning
confidence: 91%
“…To simplify some of the boilerplate involved in implementing the functions corresponding to each algorithmic judgment, we introduce a monadic discipline inspired by the implementation of BiRelCost [10]. We use a combined state/error monad called 'a checker to simultaneously handle the four fully structural contexts and the substructural one via the I/O method (hence state, not reader), as well as managing type errors.…”
Section: Ast Freshening Passmentioning
confidence: 99%