2013
DOI: 10.1145/2499370.2462160
|View full text |Cite
|
Sign up to set email alerts
|

Rely-guarantee references for refinement types over aliased mutable data

Abstract: Reasoning about side effects and aliasing is the heart of verifying imperative programs. Unrestricted side effects through one reference can invalidate assumptions about an alias. We present a new type system approach to reasoning about safe assumptions in the presence of aliasing and side effects, unifying ideas from reference immutability type systems and rely-guarantee program logics. Our approach, rely-guarantee references, treats multiple references to shared objects similarly to multiple threads in rely-… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

0
9
0

Year Published

2013
2013
2022
2022

Publication Types

Select...
3
2
1

Relationship

1
5

Authors

Journals

citations
Cited by 8 publications
(9 citation statements)
references
References 48 publications
0
9
0
Order By: Relevance
“…Gordon et al [14] treat references to shared objects like threads in relyguarantee logics, and so multiple aliases to an object are allowed only if the guarantee condition of each alias implies the rely condition for all other aliases. Their approach allows refinement types over mutable data, but resolving their proof obligations depends on theorem-proving, which hinders automation.…”
Section: Analyzing Typescript Feldthaus Et Al Present a Hybrid Analymentioning
confidence: 99%
“…Gordon et al [14] treat references to shared objects like threads in relyguarantee logics, and so multiple aliases to an object are allowed only if the guarantee condition of each alias implies the rely condition for all other aliases. Their approach allows refinement types over mutable data, but resolving their proof obligations depends on theorem-proving, which hinders automation.…”
Section: Analyzing Typescript Feldthaus Et Al Present a Hybrid Analymentioning
confidence: 99%
“…Interference due to aliasing is analogous to the interference caused by thread interleaving [15,32]. This occurs because mutable state may be shared by aliases in unknown or non-local program contexts.…”
Section: Approach In a Nutshellmentioning
confidence: 99%
“…Our protocol paradigm is able to scale by modeling sharing interactions both at the reference level and also at the abstract state level. Therefore, sharing does not need to be embedded in an ADT [18], but can also work at the ADT level without requiring a wrapper reference [15];…”
Section: Approach In a Nutshellmentioning
confidence: 99%
See 1 more Smart Citation
“…Not shown: standard recursors for naturals, booleans, pairs, identity types [25]. Also not shown: standard well-formed contexts, most of (pure) expression/type conversion (Γ τ τ) (see our technical report [23]). action within the used reference's guarantee.…”
Section: Soundness Sketchmentioning
confidence: 99%