English

Borrowable Fractional Ownership Types for Verification

Programming Languages 2023-11-01 v1

Abstract

Automated verification of functional correctness of imperative programs with references (a.k.a. pointers) is challenging because of reference aliasing. Ownership types have recently been applied to address this issue, but the existing approaches were limited in that they are effective only for a class of programs whose reference usage follows a certain style. To relax the limitation, we combine the approaches of ConSORT (based on fractional ownership) and RustHorn (based on borrowable ownership), two recent approaches to automated program verification based on ownership types, and propose the notion of borrowable fractional ownership types. We formalize a new type system based on the borrowable fractional ownership types and show how we can use it to automatically reduce the program verification problem for imperative programs with references to that for functional programs without references. We also show the soundness of our type system and the translation, and conduct experiments to confirm the effectiveness of our approach.

Keywords

Cite

@article{arxiv.2310.20430,
  title  = {Borrowable Fractional Ownership Types for Verification},
  author = {Takashi Nakayama and Yusuke Matsushita and Ken Sakayori and Ryosuke Sato and Naoki Kobayashi},
  journal= {arXiv preprint arXiv:2310.20430},
  year   = {2023}
}

Comments

An extended version of the paper to appear in Proceedings of VMCAI 2024

R2 v1 2026-06-28T13:07:22.274Z