2017
DOI: 10.1145/3158100
|View full text |Cite
|
Sign up to set email alerts
|

Relatively complete refinement type system for verification of higher-order non-deterministic programs

Abstract: This paper considers verification of non-deterministic higher-order functional programs. Our contribution is a novel type system in which the types are used to express and verify (conditional) safety, termination, non-safety, and non-termination properties in the presence of ∀-∃ branching behavior due to non-determinism. For instance, the judgement ⊢ e : {u :int | ϕ(u)} ∀∀ says that every evaluation of e either diverges or reduces to some integer u satisfying ϕ(u), whereas ⊢ e : {u :int | ψ (u)} ∃∀ says that t… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
20
0

Year Published

2018
2018
2021
2021

Publication Types

Select...
5
2

Relationship

0
7

Authors

Journals

citations
Cited by 18 publications
(20 citation statements)
references
References 53 publications
0
20
0
Order By: Relevance
“…A notable exception is the recent work of Unno et al [40], which provides a relatively complete type system for the classes of properties discussed in Sect. 5.…”
Section: Related Workmentioning
confidence: 99%
“…A notable exception is the recent work of Unno et al [40], which provides a relatively complete type system for the classes of properties discussed in Sect. 5.…”
Section: Related Workmentioning
confidence: 99%
“…One solution to the problem would be to restrict predicates of refinement types to pure ones, that is, predicates has no nondeterminism. Although the restriction seems reasonable and could be easily accomplished [Unno et al 2018], we avoid such a restriction to give programmers full expressiveness in writing software contracts.…”
Section: Our Workmentioning
confidence: 99%
“…Static verification by using a dependent refinement type system. Although we give only dynamic checking in this paper, there are broad studies on static verification of higher-order functional programs [Cosman and Jhala 2017;Kobayashi et al 2011;Rondon et al 2008;Terauchi 2010;Unno and Kobayashi 2009;Unno et al 2018;Vazou et al 2014;Zhu and Jagannathan 2013]. The main difference from a manifest contract calculus is that predicates of their refinement types are written in logical formulae.…”
Section: Soundness Of the Type Systemmentioning
confidence: 99%
See 1 more Smart Citation
“…Higher-order model-checking has become a successful foundation for verification of higher-order programs. While at first it was restricted to call-by-name purely functional programs, in recent years its scope has been substantially enlarged [1][2][3][4][5].…”
Section: Introductionmentioning
confidence: 99%