Qualified C Programming

About QCP

QCP (Qualified C Programming) is a C program verification tool. Its core functionality allows users to verify that a C program runs safely and behaves as expected under all permitted conditions. When using QCP, users add specification annotations (such as function pre/post-conditions and loop invariants) to their C code. QCP then uses symbolic execution and separation logic reasoning to transform the program's safety and functional correctness verification into a set of Verification Conditions (VCs). For most simple VCs, QCP uses its built-in solver to complete verification. For parts that cannot be automatically solved, QCP generates Rocq (formerly Coq) proof files, allowing users to manually complete proofs in a theorem prover.

Unlike traditional program verification tools, QCP provides a dedicated IDE suite. Users can use QCP through a VSCode plugin or the QCP web IDE. With QCP's IDE support, users can view the assertions satisfied by the current program state (i.e., intermediate results of symbolic execution) at any time while writing code, without needing to complete an entire function before verification.

QCP 2.0 Beta introduces AI-assisted verification. Users can now add annotations and complete Rocq proofs with AI assistance. QCP 2.0 makes verification smarter and more automated!

QCP Interface

Latest updates

News

Second online preliminary of the second theorem proving competition's human–AI collaboration track

The second online preliminary on October 10 featured five problems. Across both tracks, 26 participants submitted solutions and 12 solved all five.

Latest release

QCP-v2.1.4

QCP v2.1.4 expands Lean verification coverage, adds floating-point conversion support in Rocq, and improves proof generation and build compatibility across platforms.