2018
DOI: 10.1007/978-3-319-95582-7_20
|View full text |Cite
|
Sign up to set email alerts
|

Modular Verification of Programs with Effects and Effect Handlers in Coq

Abstract: Modern computing systems have grown in complexity, and the attack surface has increased accordingly. Even though system components are generally carefully designed and even verified by different groups of people, the composition of these components is often regarded with less attention. This paves the way for "architectural attacks", a class of security vulnerabilities where the attacker is able to threaten the security of the system even if each of its components continues to act as expected. In this article,… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
1
1
1
1

Citation Types

0
17
0

Year Published

2019
2019
2022
2022

Publication Types

Select...
6
1
1

Relationship

0
8

Authors

Journals

citations
Cited by 14 publications
(17 citation statements)
references
References 16 publications
0
17
0
Order By: Relevance
“…We use interaction trees (ITrees) as a general-purpose structure for specifying such components. ITrees are a Coq adaptation of similar concepts known variously as "freer, " "general, " or "program" monads [Kiselyov and Ishii 2015;Letan et al 2018; McBride 2015]. We defer a deeper comparison until Section 8.…”
Section: Interaction Treesmentioning
confidence: 99%
See 1 more Smart Citation
“…We use interaction trees (ITrees) as a general-purpose structure for specifying such components. ITrees are a Coq adaptation of similar concepts known variously as "freer, " "general, " or "program" monads [Kiselyov and Ishii 2015;Letan et al 2018; McBride 2015]. We defer a deeper comparison until Section 8.…”
Section: Interaction Treesmentioning
confidence: 99%
“…Our coinductively defined interaction trees also support a general (monadic) fixpoint combinator. Letan et al [2018] present the "program monad" to model components of complex computing systems. Like the general monad, it is defined inductively.…”
Section: Related Workmentioning
confidence: 99%
“…The FreeSpec Coq library, implemented by Letan et al [2018], uses what they call the "program monad" to model components of complex computing systems. The program monad is identical to the inductive version of ITrees 10 (without Tau).…”
Section: Effects In Type Theorymentioning
confidence: 99%
“…CoInductive world E : Type := World ( io : ∀ { A : Type } , E A → option ( A * world E ) ) . Letan et al [2018] use a definition essentially identical to this one (without the option) to define their notion of "semantics" for the program monad. Given such a definition, we can define a world that satisfies a certain property (for example, one that never produces 9 as an answer), and use it to constrain the inputs given to the program, by "running" the program under consideration in the given world.…”
Section: Composition With the Environmentmentioning
confidence: 99%
“…Another alternative was to use freer monads introduced by Kiselyov et al [17], whose definition did not need a representation of striclty positive types using containers at all. There were already several encodings to model different kinds of monadic effects using freer monads: McBride [21] defines a General monad to model general recursion as effect, Letan et al [19] use the Program monad initially presented in the operational package known from Haskell 11 to reason about a small imperative language, and Koh et al [18] identify interaction trees as a suitable tool to verify functional correctness of a server implemented in C.…”
Section: :22mentioning
confidence: 99%