Mtac: A monad for typed tactic programming in Coq

Autores
Ziliani, Luis Francisco; Dreyer, Derek; Krishnaswami, Neelakantan R.; Nanevski, Aleksandar; Vafeiadis, Viktor
Año de publicación
2015
Idioma
inglés
Tipo de recurso
artículo
Estado
versión publicada
Descripción
Effective support for custom proof automation is essential for large-scale interactive proof development. However, existing languages for automation via tactics either (a) provide no way to specify the behavior of tactics within the base logic of the accompanying theorem prover, or (b) rely on advanced type-theoretic machinery that is not easily integrated into established theorem provers. We present Mtac, a lightweight but powerful extension to Coq that supports dependently typed tactic programming. Mtac tactics have access to all the features of ordinary Coq programming, as well as a new set of typed tactical primitives. We avoid the need to touch the trusted kernel typechecker of Coq by encapsulating uses of these new tactical primitives in a monad, and instrumenting Coq so that it executes monadic tactics during type inference.
Fil: Ziliani, Luis Francisco. Max Planck Institute for Software Systems; Alemania. Consejo Nacional de Investigaciones Científicas y Técnicas; Argentina
Fil: Dreyer, Derek. Max Planck Institute for Software Systems; Alemania
Fil: Krishnaswami, Neelakantan R.. University of Birmingham; Reino Unido
Fil: Nanevski, Aleksandar. IMDEA Software Institute; España
Fil: Vafeiadis, Viktor. Max Planck Institute for Software Systems; Alemania
Materia
Interactive Theorem Proving
Custom Proof Automation
Coq
Monads
Typed Meta-Programming
Tactics
Nivel de accesibilidad
acceso abierto
Condiciones de uso
https://creativecommons.org/licenses/by-nc-sa/2.5/ar/
Repositorio
CONICET Digital (CONICET)
Institución
Consejo Nacional de Investigaciones Científicas y Técnicas
OAI Identificador
oai:ri.conicet.gov.ar:11336/69680

id CONICETDig_19b5db5a04ed9d015f48430a7c385d9c
oai_identifier_str oai:ri.conicet.gov.ar:11336/69680
network_acronym_str CONICETDig
repository_id_str 3498
network_name_str CONICET Digital (CONICET)
spelling Mtac: A monad for typed tactic programming in CoqZiliani, Luis FranciscoDreyer, DerekKrishnaswami, Neelakantan R.Nanevski, AleksandarVafeiadis, ViktorInteractive Theorem ProvingCustom Proof AutomationCoqMonadsTyped Meta-ProgrammingTacticshttps://purl.org/becyt/ford/1.2https://purl.org/becyt/ford/1Effective support for custom proof automation is essential for large-scale interactive proof development. However, existing languages for automation via tactics either (a) provide no way to specify the behavior of tactics within the base logic of the accompanying theorem prover, or (b) rely on advanced type-theoretic machinery that is not easily integrated into established theorem provers. We present Mtac, a lightweight but powerful extension to Coq that supports dependently typed tactic programming. Mtac tactics have access to all the features of ordinary Coq programming, as well as a new set of typed tactical primitives. We avoid the need to touch the trusted kernel typechecker of Coq by encapsulating uses of these new tactical primitives in a monad, and instrumenting Coq so that it executes monadic tactics during type inference.Fil: Ziliani, Luis Francisco. Max Planck Institute for Software Systems; Alemania. Consejo Nacional de Investigaciones Científicas y Técnicas; ArgentinaFil: Dreyer, Derek. Max Planck Institute for Software Systems; AlemaniaFil: Krishnaswami, Neelakantan R.. University of Birmingham; Reino UnidoFil: Nanevski, Aleksandar. IMDEA Software Institute; EspañaFil: Vafeiadis, Viktor. Max Planck Institute for Software Systems; AlemaniaCambridge University Press2015-08info:eu-repo/semantics/articleinfo:eu-repo/semantics/publishedVersionhttp://purl.org/coar/resource_type/c_6501info:ar-repo/semantics/articuloapplication/pdfapplication/pdfhttp://hdl.handle.net/11336/69680Ziliani, Luis Francisco; Dreyer, Derek; Krishnaswami, Neelakantan R.; Nanevski, Aleksandar; Vafeiadis, Viktor; Mtac: A monad for typed tactic programming in Coq; Cambridge University Press; Journal Of Functional Programming; 25; 8-2015; 1-54; e120956-7968CONICET DigitalCONICETenginfo:eu-repo/semantics/altIdentifier/doi/10.1017/S0956796815000118info:eu-repo/semantics/altIdentifier/url/https://www.cambridge.org/core/journals/journal-of-functional-programming/article/mtac-a-monad-for-typed-tactic-programming-in-coq/75B49F20037D8A0F718EAB21C662ABA0info:eu-repo/semantics/openAccesshttps://creativecommons.org/licenses/by-nc-sa/2.5/ar/reponame:CONICET Digital (CONICET)instname:Consejo Nacional de Investigaciones Científicas y Técnicas2025-09-29T09:58:42Zoai:ri.conicet.gov.ar:11336/69680instacron:CONICETInstitucionalhttp://ri.conicet.gov.ar/Organismo científico-tecnológicoNo correspondehttp://ri.conicet.gov.ar/oai/requestdasensio@conicet.gov.ar; lcarlino@conicet.gov.arArgentinaNo correspondeNo correspondeNo correspondeopendoar:34982025-09-29 09:58:42.724CONICET Digital (CONICET) - Consejo Nacional de Investigaciones Científicas y Técnicasfalse
dc.title.none.fl_str_mv Mtac: A monad for typed tactic programming in Coq
title Mtac: A monad for typed tactic programming in Coq
spellingShingle Mtac: A monad for typed tactic programming in Coq
Ziliani, Luis Francisco
Interactive Theorem Proving
Custom Proof Automation
Coq
Monads
Typed Meta-Programming
Tactics
title_short Mtac: A monad for typed tactic programming in Coq
title_full Mtac: A monad for typed tactic programming in Coq
title_fullStr Mtac: A monad for typed tactic programming in Coq
title_full_unstemmed Mtac: A monad for typed tactic programming in Coq
title_sort Mtac: A monad for typed tactic programming in Coq
dc.creator.none.fl_str_mv Ziliani, Luis Francisco
Dreyer, Derek
Krishnaswami, Neelakantan R.
Nanevski, Aleksandar
Vafeiadis, Viktor
author Ziliani, Luis Francisco
author_facet Ziliani, Luis Francisco
Dreyer, Derek
Krishnaswami, Neelakantan R.
Nanevski, Aleksandar
Vafeiadis, Viktor
author_role author
author2 Dreyer, Derek
Krishnaswami, Neelakantan R.
Nanevski, Aleksandar
Vafeiadis, Viktor
author2_role author
author
author
author
dc.subject.none.fl_str_mv Interactive Theorem Proving
Custom Proof Automation
Coq
Monads
Typed Meta-Programming
Tactics
topic Interactive Theorem Proving
Custom Proof Automation
Coq
Monads
Typed Meta-Programming
Tactics
purl_subject.fl_str_mv https://purl.org/becyt/ford/1.2
https://purl.org/becyt/ford/1
dc.description.none.fl_txt_mv Effective support for custom proof automation is essential for large-scale interactive proof development. However, existing languages for automation via tactics either (a) provide no way to specify the behavior of tactics within the base logic of the accompanying theorem prover, or (b) rely on advanced type-theoretic machinery that is not easily integrated into established theorem provers. We present Mtac, a lightweight but powerful extension to Coq that supports dependently typed tactic programming. Mtac tactics have access to all the features of ordinary Coq programming, as well as a new set of typed tactical primitives. We avoid the need to touch the trusted kernel typechecker of Coq by encapsulating uses of these new tactical primitives in a monad, and instrumenting Coq so that it executes monadic tactics during type inference.
Fil: Ziliani, Luis Francisco. Max Planck Institute for Software Systems; Alemania. Consejo Nacional de Investigaciones Científicas y Técnicas; Argentina
Fil: Dreyer, Derek. Max Planck Institute for Software Systems; Alemania
Fil: Krishnaswami, Neelakantan R.. University of Birmingham; Reino Unido
Fil: Nanevski, Aleksandar. IMDEA Software Institute; España
Fil: Vafeiadis, Viktor. Max Planck Institute for Software Systems; Alemania
description Effective support for custom proof automation is essential for large-scale interactive proof development. However, existing languages for automation via tactics either (a) provide no way to specify the behavior of tactics within the base logic of the accompanying theorem prover, or (b) rely on advanced type-theoretic machinery that is not easily integrated into established theorem provers. We present Mtac, a lightweight but powerful extension to Coq that supports dependently typed tactic programming. Mtac tactics have access to all the features of ordinary Coq programming, as well as a new set of typed tactical primitives. We avoid the need to touch the trusted kernel typechecker of Coq by encapsulating uses of these new tactical primitives in a monad, and instrumenting Coq so that it executes monadic tactics during type inference.
publishDate 2015
dc.date.none.fl_str_mv 2015-08
dc.type.none.fl_str_mv info:eu-repo/semantics/article
info:eu-repo/semantics/publishedVersion
http://purl.org/coar/resource_type/c_6501
info:ar-repo/semantics/articulo
format article
status_str publishedVersion
dc.identifier.none.fl_str_mv http://hdl.handle.net/11336/69680
Ziliani, Luis Francisco; Dreyer, Derek; Krishnaswami, Neelakantan R.; Nanevski, Aleksandar; Vafeiadis, Viktor; Mtac: A monad for typed tactic programming in Coq; Cambridge University Press; Journal Of Functional Programming; 25; 8-2015; 1-54; e12
0956-7968
CONICET Digital
CONICET
url http://hdl.handle.net/11336/69680
identifier_str_mv Ziliani, Luis Francisco; Dreyer, Derek; Krishnaswami, Neelakantan R.; Nanevski, Aleksandar; Vafeiadis, Viktor; Mtac: A monad for typed tactic programming in Coq; Cambridge University Press; Journal Of Functional Programming; 25; 8-2015; 1-54; e12
0956-7968
CONICET Digital
CONICET
dc.language.none.fl_str_mv eng
language eng
dc.relation.none.fl_str_mv info:eu-repo/semantics/altIdentifier/doi/10.1017/S0956796815000118
info:eu-repo/semantics/altIdentifier/url/https://www.cambridge.org/core/journals/journal-of-functional-programming/article/mtac-a-monad-for-typed-tactic-programming-in-coq/75B49F20037D8A0F718EAB21C662ABA0
dc.rights.none.fl_str_mv info:eu-repo/semantics/openAccess
https://creativecommons.org/licenses/by-nc-sa/2.5/ar/
eu_rights_str_mv openAccess
rights_invalid_str_mv https://creativecommons.org/licenses/by-nc-sa/2.5/ar/
dc.format.none.fl_str_mv application/pdf
application/pdf
dc.publisher.none.fl_str_mv Cambridge University Press
publisher.none.fl_str_mv Cambridge University Press
dc.source.none.fl_str_mv reponame:CONICET Digital (CONICET)
instname:Consejo Nacional de Investigaciones Científicas y Técnicas
reponame_str CONICET Digital (CONICET)
collection CONICET Digital (CONICET)
instname_str Consejo Nacional de Investigaciones Científicas y Técnicas
repository.name.fl_str_mv CONICET Digital (CONICET) - Consejo Nacional de Investigaciones Científicas y Técnicas
repository.mail.fl_str_mv dasensio@conicet.gov.ar; lcarlino@conicet.gov.ar
_version_ 1844613747605241856
score 13.070432