RustHorn: CHC-based Verification for Rust Programs

被引:19
|
作者
Matsushita, Yusuke [1 ]
Tsukada, Takeshi [2 ]
Kobayashi, Naoki [1 ]
机构
[1] Univ Tokyo, Tokyo, Japan
[2] Chiba Univ, Chiba, Japan
关键词
Rust; permission; ownership; pointer; CHC; automated verification; INVARIANTS;
D O I
10.1145/3462205
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Reduction to satisfiability of constrained Horn clauses (CHCs) is a widely studied approach to automated program verification. Current CHC-based methods, however, do not work very well for pointer-manipulating programs, especially those with dynamic memory allocation. This article presents a novel reduction of pointer-manipulating Rust programs into CHCs, which clears away pointers and memory states by leveraging Rust's guarantees on permission. We formalize our reduction for a simplified core of Rust and prove its soundness and completeness. We have implemented a prototype verifier for a subset of Rust and confirmed the effectiveness of our method.
引用
收藏
页数:54
相关论文
共 50 条
  • [1] RustHorn: CHC-based Verification for Rust Programs
    Matsushita, Yusuke
    Tsukada, Takeshi
    Kobayashi, Naoki
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS ( ESOP 2020): 29TH EUROPEAN SYMPOSIUM ON PROGRAMMING, 2020, 12075 : 484 - 514
  • [2] CHC-Based Algorithms for the Dynamic Traveling Salesman Problem
    Simoes, Anabela
    Costa, Ernesto
    [J]. APPLICATIONS OF EVOLUTIONARY COMPUTATION, PT I, 2011, 6624 : 354 - +
  • [3] SOLTG: A CHC-Based Solidity Test Case Generator
    Britikov, Konstantin
    Zlatkin, Ilia
    Fedyukovich, Grigory
    Alt, Leonardo
    Sharygina, Natasha
    [J]. COMPUTER AIDED VERIFICATION, PT I, CAV 2024, 2024, 14681 : 466 - 479
  • [4] No Panic! Verification of Rust Programs by Symbolic Execution
    Lindner, Marcus
    Aparicius, Jorge
    Lindgren, Per
    [J]. 2018 IEEE 16TH INTERNATIONAL CONFERENCE ON INDUSTRIAL INFORMATICS (INDIN), 2018, : 108 - 114
  • [5] What Does the WISC-IV Measure? Validation of the Scoring and CHC-based Interpretative Approaches
    Chen, Hsin-Yi
    Chen, Yung-Hwa
    Keith, Timothy Z.
    Chang, Ben-Sheng
    [J]. JOURNAL OF RESEARCH IN EDUCATION SCIENCES, 2009, 54 (03): : 85 - 107
  • [6] RustHornBelt: A Semantic Foundation for Functional Verification of Rust Programs with Unsafe Code
    Matsushita, Yusuke
    Denis, Xavier
    Jourdan, Jacques-Henri
    Dreyer, Derek
    [J]. PROCEEDINGS OF THE 43RD ACM SIGPLAN INTERNATIONAL CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION (PLDI '22), 2022, : 841 - 856
  • [7] RefinedRust: A Type System for High-Assurance Verification of Rust Programs
    Gaeher, Lennard
    Sammler, Michael
    Jung, Ralf
    Krebbers, Robbert
    Dreyer, Derek
    [J]. PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (PLDI): : 1115 - 1139
  • [8] Hyperproperty Verification as CHC Satisfiability
    Itzhaky, Shachar
    Shoham, Sharon
    Vizel, Yakir
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, PT II, ESOP 2024, 2024, 14577 : 212 - 241
  • [9] Virtual Balint Groups During COVID-19: Exploring Race and Equity in a CHC-Based Family Medicine Residency Program
    De La Rosa, Kathryn
    Somers, Jennifer
    Valdini, Anthony
    [J]. INTERNATIONAL JOURNAL OF PSYCHIATRY IN MEDICINE, 2022, 57 (06): : 547 - 553
  • [10] Pattern-Based Verification for Multithreaded Programs
    Esparza, Javier
    Ganty, Pierre
    Poch, Tomas
    [J]. ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 36 (03):