C*: Unifying Programming and Verification in C

Sep 08, 2026 10:56 PM - 6 days ago 3

[Submitted connected 3 Apr 2025]

Authors:Yiyuan Cao, Jiayi Zhuang, Houjin Chen, Jinkai Fan, Wenbo Xu, Zhiyi Wang, Di Wang, Qinxiang Cao, Yingfei Xiong, Haiyan Zhao, Zhenjiang Hu

View PDF HTML (experimental)

Abstract:Ensuring the correct functionality of systems software, fixed its safety-critical and low-level nature, is simply a superior attraction successful general verification investigation and applications. Despite advances successful verification tooling, accepted programmers are seldom progressive successful the verification of their ain code, resulting successful higher improvement and attraction costs for verified software. A cardinal obstruction to programmer information successful verification practices is the disconnect of environments and paradigms betwixt programming and verification practices, which limits accessibility and real-time verification.
We present C*, a proof-integrated connection creation for C programming. C* extends C pinch verification capabilities, powered by a symbolic execution motor and an LCF-style impervious kernel. It enables real-time verification by allowing programmers to embed proof-code blocks alongside implementation code, facilitating interactive updates to the existent impervious state. Its expressive and extensible impervious support allows users to build reusable libraries of logical definitions, theorems, and programmable impervious automation. Crucially, C* unifies implementation and impervious codification improvement by utilizing C arsenic the communal language.
We implemented a prototype of C* and evaluated it connected a typical benchmark of mini C programs and a challenging real-world lawsuit study: the connect usability of pKVM's buddy allocator. Our results show that C* supports the verification of a wide subset of C programming idioms and efficaciously handles analyzable reasoning tasks successful real-world scenarios.

Submission history

From: Yiyuan Cao [view email]
[v1] Thu, 3 Apr 2025 03:22:22 UTC (414 KB)

More