Affiliation:
1. University of Pennsylvania, USA
Abstract
This paper extends the Dijkstra monad framework, designed for writing specifications over effectful programs using monadic effects, to handle termination sensitive specifications over interactive programs. We achieve this by introducing base specification monads for non-terminating programs with uninterpreted events. We model such programs using interaction trees, a coinductive datatype for representing programs with algebraic effects in Coq, which we further develop by adding trace semantics. We show that this approach subsumes typical, simple proof principles. The framework is implemented as an extension of the Interaction Trees Coq library.
Funder
National Science Foundation
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Reference25 articles.
1. Venanzio Capretta. 2005. General Recursion via Coinductive Types. Logical Methods in Computer Science 1 2 ( 2005 ) 1-18. https://doi.org/10.2168/LMCS-1( 2 :1) 2005 10.2168/LMCS-1(2:1)2005 Venanzio Capretta. 2005. General Recursion via Coinductive Types. Logical Methods in Computer Science 1 2 ( 2005 ) 1-18. https://doi.org/10.2168/LMCS-1( 2 :1) 2005 10.2168/LMCS-1(2:1)2005
2. Automated Resource Analysis with Coq Proof Objects
3. Guarded commands, nondeterminacy and formal derivation of programs
4. Assigning meanings to programs
Cited by
7 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Securing Verified IO Programs Against Unverified Code in F*;Proceedings of the ACM on Programming Languages;2024-01-05
2. Algebraic Effects Meet Hoare Logic in Cubical Agda;Proceedings of the ACM on Programming Languages;2024-01-05
3. The Death of Belonging? Interactions between Neo-Medievalism, Security and National Identity;Social Evolution & History;2023
4. How to safely use extensionality in Liquid Haskell;Proceedings of the 15th ACM SIGPLAN International Haskell Symposium;2022-09-06
5. Program adverbs and Tlön embeddings;Proceedings of the ACM on Programming Languages;2022-08-29