Litcius/Paper detail

Generating Proof Certificates for a Language-Agnostic Deductive Program Verifier

Zhengyao Lin, Xiaohong Chen, Minh-Thai Trinh, John Wang, Grigore Roşu

2023Proceedings of the ACM on Programming Languages10 citationsDOIOpen Access PDF

Abstract

Previous work on rewriting and reachability logic establishes a vision for a language-agnostic program verifier, which takes three inputs: a program, its formal specification, and the formal semantics of the programming language in which the program is written. The verifier then uses a language-agnostic verification algorithm to prove the program correct with respect to the specification and the formal language semantics. Such a complex verifier can easily have bugs. This paper proposes a method to certify the correctness of each successful verification run by generating a proof certificate. The proof certificate can be checked by a small proof checker. The preliminary experiments apply the method to generate proof certificates for program verification in an imperative language, a functional language, and an assembly language, showing that the proposed method is language-agnostic.

Topics & Concepts

Programming languageComputer scienceCorrectnessProof assistantRewritingOperational semanticsProgramming language specificationSpecification languageObject languageSemantics (computer science)Formal methodsMathematical proofProgramming paradigmNatural languageMathematicsNatural language processingGeometryInductive programmingProgramming domainLogic, programming, and type systemsFormal Methods in VerificationSoftware Testing and Debugging Techniques
Generating Proof Certificates for a Language-Agnostic Deductive Program Verifier | Litcius