Overview
QCP is a C program verification tool developed at Shanghai Jiao Tong University, built upon the foundations of VST and VST-A. It accepts annotated C programs as input, performs symbolic execution based on assertion annotations, and generates Coq proof obligations. Users complete the verification by proving the generated Coq goals. Qide is the web-based interface for QCP.
Methodology
QCP consists of two core components: a symbolic execution engine implemented in C and a proof backend implemented in Coq. The symbolic execution component features an enriched annotation language supporting complex C program syntax, and employs strategies and an SMT solver for automated assertion resolution, significantly reducing the manual proof burden.
Output Artifacts
The verification pipeline produces four structured output files:
xxx_proof_goal
xxx_proof_auto
xxx_proof_manual
xxx_proof_check