2017
DOI: 10.1145/3093333.3009878
|View full text |Cite
|
Sign up to set email alerts
|

Dijkstra monads for free

Abstract: Dijkstra monads enable a dependent type theory to be enhanced with support for specifying and verifying effectful code via weakest preconditions. Together with their closely related counterparts, Hoare monads , they provide the basis on which verification tools like F*, Hoare Type Theory (HTT), and Ynot are built. We show that Dijkstra monads can be derived "for free" by applying a continuation-passing style (CPS) translation to the standard monadic definitions of the underl… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
10
0

Year Published

2017
2017
2022
2022

Publication Types

Select...
3
3

Relationship

4
2

Authors

Journals

citations
Cited by 11 publications
(10 citation statements)
references
References 41 publications
0
10
0
Order By: Relevance
“…Functions can also be annotated with other effects, e.g., to indicate stateful operations affecting the heap, or a function that handles program IO. F relies on SMT-based automation to prove properties about programs using a weakest-precondition calculus [8], and it also includes a tactic system [55] to allow the programmer greater control over how proofs are discharged.…”
Section: A Background On Evercryptmentioning
confidence: 99%
“…Functions can also be annotated with other effects, e.g., to indicate stateful operations affecting the heap, or a function that handles program IO. F relies on SMT-based automation to prove properties about programs using a weakest-precondition calculus [8], and it also includes a tactic system [55] to allow the programmer greater control over how proofs are discharged.…”
Section: A Background On Evercryptmentioning
confidence: 99%
“…Rule Lam places the abstract variable in the context with the declared erasure annotation , while McBride [2016] and QTT [Atkey 2018] would place : ∧ in the context here. We use a different application and substitution rule instead.…”
Section: Typing Rulesmentioning
confidence: 99%
“…'. Like EPTS [Mishra-Linger 2008] and TT ★ , McBride's calculus [2016] introduces quantities on binders. Unlike TT ★ , the calculus allows an extra łlinearž quantity in addition to łerasedž and łunerasedž, thus unifying erasure and linear types in a single dependently typed framework.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…Specifically, in a total correctness setting, being able to assign the type T A wp to a stateful computation M guarantees that if M is executed in a state V S that satisfies wp V Q V S (for some postcondition V Q ), then the execution of M produces a value V and a state V ′ S that satisfy V Q V V ′ S . In a recent joint work by the author and Hrit ¸cu et al [10], F* has been extended with a means for representing computational effects and their combinations using monads defined in a simply typed definition language, with the corresponding predicate transformers and Dijkstra monads derived automatically using a selective CPS-transformation; this includes global state, exceptions, and continuations, but currently excludes I/O and probability.…”
Section: F*mentioning
confidence: 99%