2013
DOI: 10.1007/978-3-642-37036-6_13
|View full text |Cite
|
Sign up to set email alerts
|

Abstract Refinement Types

Abstract: Abstract. We present abstract refinement types which enable quantification over the refinements of data-and function-types. Our key insight is that we can avail of quantification while preserving SMT-based decidability, simply by encoding refinement parameters as uninterpreted propositions within the ground refinement logic. We illustrate how this simple mechanism yields a variety of sophisticated and automatic means for reasoning about programs, including: parametric refinements for reasoning with type classe… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
121
0

Year Published

2014
2014
2021
2021

Publication Types

Select...
8
1

Relationship

0
9

Authors

Journals

citations
Cited by 90 publications
(122 citation statements)
references
References 24 publications
0
121
0
Order By: Relevance
“…Liquid Types [31], followed by Bounded Refinement Types [33,34], and also Set-Theoretic Types [8,9], are all attempts to enrich the type system of functional languages to prove non-trivial properties on higher-order programs. However, these methods are not automatic.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Liquid Types [31], followed by Bounded Refinement Types [33,34], and also Set-Theoretic Types [8,9], are all attempts to enrich the type system of functional languages to prove non-trivial properties on higher-order programs. However, these methods are not automatic.…”
Section: Related Workmentioning
confidence: 99%
“…Higher-order functions are useful for program structuring but pose a challenge when it comes to reasoning about the correctness of programs that employ them. To this end, the correctness-minded software engineer can opt for proving properties interactively with the help of a proof assistant such as Coq [13] or Isabelle/HOL [30], or write a specification in a formalism such as Liquid Types [31] or Bounded Refinement Types [33,34] and ask an SMT solver whether it can prove the verification conditions generated from this specification. This approach requires expertise of the formal method used, and both the proof construction and the annotation phase can be time consuming.…”
Section: Introductionmentioning
confidence: 99%
“…The transformed program only contains primitive types and Objects, and a small set of statements, which simplifies the translation to CHCs; the entire translation takes less than 600 lines of Java code which keeps the risk of introducing bugs and thus unsoundess low. Our encoding as CHCs is inspired by the concept of refinement types [6,21], and uses uninterpreted predicates to represent:…”
Section: Architecture Of Jayhornmentioning
confidence: 99%
“…For convenience, Leon also supports local functions, local mutable variables and while loops, which are expanded into recursive functions [1]. Among related tools to Leon as far as verification functionality is concerned are liquid types [27], though Leon has a real model checking flavor in that it returns only valid counterexamples.…”
Section: Overviewmentioning
confidence: 99%