Dijkstra Monads Forever
summary
Extends Dijkstra monads to termination‑sensitive specifications for interactive, possibly nonterminating programs by adding two base spec monads (a delay spec and a trace spec) and a coinductive Interaction Trees trace model. Proves monad laws and verification rules (including a verified loop invariant principle for noninteractive loops), defines itraces as linear ITree executions, and implements the framework as an extension to the Interaction Trees Coq library that produces weakest‑precondition style theta maps and supports coinductive proofs of concrete examples.
AI-written summary · about
