Mostrar el registro sencillo del ítem
dc.contributor.author
Maillard, Kenji
dc.contributor.author
Ahman, Danel
dc.contributor.author
Atkey, Robert
dc.contributor.author
Martínez, Guido
dc.contributor.author
Hritcu, Catalin
dc.contributor.author
Rivas, Exequiel
dc.contributor.author
Tanter, Éric
dc.date.available
2022-03-16T01:22:47Z
dc.date.issued
2019-09
dc.identifier.citation
Maillard, Kenji; Ahman, Danel; Atkey, Robert; Martínez, Guido; Hritcu, Catalin; et al.; Dijkstra monads for all; Association for Computing Machinery; Proceedings of the ACM on Programming Languages; 3; 104; 9-2019; 1-29
dc.identifier.issn
2475-1421
dc.identifier.uri
http://hdl.handle.net/11336/153411
dc.description.abstract
This paper proposes a general semantic framework for verifying programs with arbitrary monadic side-effects using Dijkstra monads, which we define as monad-like structures indexed by a specification monad. We prove that any monad morphism between a computational monad and a specification monad gives rise to a Dijkstra monad, which provides great flexibility for obtaining Dijkstra monads tailored to the verification task at hand. We moreover show that a large variety of specification monads can be obtained by applying monad transformers to various base specification monads, including predicate transformers and Hoare-style pre- and postconditions. For defining correct monad transformers, we propose a language inspired by Moggi's monadic metalanguage that is parameterized by a dependent type theory. We also develop a notion of algebraic operations for Dijkstra monads, and start to investigate two ways of also accommodating effect handlers. We implement our framework in both Coq and F, and illustrate that it supports a wide variety of verification styles for effects such as exceptions, nondeterminism, state, input-output, and general recursion.
dc.format
application/pdf
dc.language.iso
eng
dc.publisher
Association for Computing Machinery
dc.rights
info:eu-repo/semantics/openAccess
dc.rights.uri
https://creativecommons.org/licenses/by/2.5/ar/
dc.subject
PROGRAM VERIFICATION
dc.subject
SIDE-EFFECTS
dc.subject
MONADS
dc.subject
DEPENDENT TYPES
dc.subject
FOUNDATIONS
dc.subject.classification
Ciencias de la Computación
dc.subject.classification
Ciencias de la Computación e Información
dc.subject.classification
CIENCIAS NATURALES Y EXACTAS
dc.title
Dijkstra monads for all
dc.type
info:eu-repo/semantics/article
dc.type
info:ar-repo/semantics/artículo
dc.type
info:eu-repo/semantics/publishedVersion
dc.date.updated
2020-08-05T16:43:00Z
dc.journal.volume
3
dc.journal.number
104
dc.journal.pagination
1-29
dc.journal.pais
Estados Unidos
dc.journal.ciudad
Nueva York
dc.description.fil
Fil: Maillard, Kenji. Institut National de Recherche en Informatique et en Automatique; Francia. Ecole Normale Supérieure; Francia
dc.description.fil
Fil: Ahman, Danel. University of Ljubljana; Eslovaquia
dc.description.fil
Fil: Atkey, Robert. University of Strathclyde; Reino Unido
dc.description.fil
Fil: Martínez, Guido. Consejo Nacional de Investigaciones Científicas y Técnicas. Centro Científico Tecnológico Conicet - Rosario. Centro Internacional Franco Argentino de Ciencias de la Información y de Sistemas. Universidad Nacional de Rosario. Centro Internacional Franco Argentino de Ciencias de la Información y de Sistemas; Argentina
dc.description.fil
Fil: Hritcu, Catalin. Institut National de Recherche en Informatique et en Automatique; Francia
dc.description.fil
Fil: Rivas, Exequiel. Institut National de Recherche en Informatique et en Automatique; Francia
dc.description.fil
Fil: Tanter, Éric. Universidad de Chile; Chile. Institut National de Recherche en Informatique et en Automatique; Francia
dc.journal.title
Proceedings of the ACM on Programming Languages
dc.relation.alternativeid
info:eu-repo/semantics/altIdentifier/url/https://dl.acm.org/citation.cfm?id=3341708
dc.relation.alternativeid
info:eu-repo/semantics/altIdentifier/doi/http://dx.doi.org/10.1145/3341708
Archivos asociados