Higher-Order Weakest Precondition Transformers via a CPS Transformation
Satoshi Kura

TL;DR
This paper establishes a syntactic relationship between weakest precondition transformers and CPS transformations for higher-order functional languages, enabling effectful program verification to be reduced to pure program verification.
Contribution
It introduces a novel syntactic framework linking weakest precondition transformers with CPS transformations, facilitating verification of effectful higher-order programs.
Findings
Reduces effectful program verification to pure program verification
Captures existing verification methods as instances of the framework
Extends weakest precondition transformers to higher-order probabilistic programs
Abstract
Weakest preconditions are a useful notion for program verification as they reduce a problem of program verification to a problem of constraint solving. Category-theoretic generalisations of weakest preconditions have been studied to capture various computational effects and various properties in a unified framework. In this paper, we propose a novel and general relationship between weakest precondition transformers and CPS transformations for higher-order functional languages with general computational effects and recursion. Technically, this gives a syntactic counterpart of the categorically-defined generic weakest precondition transformer in [Aguirre & Katsumata, 2020]. The usefulness of our results is threefold. (1) Since CPS transformations purify effectful programs, various verification problems for effectful programs can be reduced to verification problems for pure programs. This…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsFormal Methods in Verification · Software Engineering Research · Software Testing and Debugging Techniques
