2013
DOI: 10.1145/2499370.2491978
|View full text |Cite
|
Sign up to set email alerts
|

Verifying higher-order programs with the dijkstra monad

Abstract: Modern programming languages, ranging from Haskell and ML, to JavaScript, C# and Java, all make extensive use of higher-order state. This paper advocates a new verification methodology for higher-order stateful programs, based on a new monad of predicate transformers called the Dijkstra monad.Using the Dijkstra monad has a number of benefits. First, the monad naturally yields a weakest pre-condition calculus. Second, the computed specifications are structurally simpler in several ways, e.g., single-state post-… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
68
0

Year Published

2013
2013
2021
2021

Publication Types

Select...
5
2

Relationship

1
6

Authors

Journals

citations
Cited by 48 publications
(68 citation statements)
references
References 48 publications
0
68
0
Order By: Relevance
“…Hoare reasoning through dependent types Related systems that employ Hoare-style specification via types are HTT [30] and F * [44]. HTT is a direct precursor of HTTcc, but does not include the control operators.…”
Section: Discussion and Related Workmentioning
confidence: 99%
“…Hoare reasoning through dependent types Related systems that employ Hoare-style specification via types are HTT [30] and F * [44]. HTT is a direct precursor of HTTcc, but does not include the control operators.…”
Section: Discussion and Related Workmentioning
confidence: 99%
“…In [30] the 'Dijkstra' monad is introduced, as a variant of the 'Hoare' monad from [27]. It captures weakest precondition computations for the state monad X → (S × X) S , where S is a fixed collection of states (the heap).…”
Section: Dijkstra Monad Examplesmentioning
confidence: 99%
“…For the powerset monad P, a first version of the Dijkstra monad, following the description in [30], yields D P : Sets → Sets defined as:…”
Section: Dijkstra Monad Examplesmentioning
confidence: 99%
See 2 more Smart Citations