CStar: Unifying Programming and Verification in C


Date
Oct 18, 2025 2:11 PM — 2:37 PM
Event
Sponsor Invited Talks, SPLASH 2025

Ensuring the correct functionality of systems software, given its safety-critical and low-level nature, is a primary focus in formal verification research and applications. Despite advances in verification tooling, conventional programmers are rarely involved in the verification of their own code, resulting in higher development and maintenance costs for verified software. A key barrier to programmer participation in verification practices is the disconnect of environments and paradigms between programming and verification practices, which limits accessibility and real-time verification.

We introduce CStar, a proof-integrated language design for C programming. CStar extends C with verification capabilities, powered by a symbolic execution engine and an LCF-style proof kernel. It enables real-time verification by allowing programmers to embed proof-code blocks alongside implementation code, facilitating interactive updates to the current proof state. Its expressive and extensible proof support allows users to build reusable libraries of logical definitions, theorems, and programmable proof automation. Crucially, CStar unifies implementation and proof code development by using C as the common language.

Di Wang
Di Wang
Assistant Professor

My heart is in the Principles of Programming.