Constructive Galois Connections
Galois connections are a foundational tool for structuring abstraction in semantics, and their use lies at the heart of the theory of abstract interpretation. Yet, mechanization of Galois connections using proof assistants remains limited to restricted modes of use, preventing their general applicat...
Gespeichert in:
Veröffentlicht in: | Journal of functional programming 2019, Vol.29, Article e11 |
---|---|
Hauptverfasser: | , |
Format: | Artikel |
Sprache: | eng |
Schlagworte: | |
Online-Zugang: | Volltext |
Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
container_end_page | |
---|---|
container_issue | |
container_start_page | |
container_title | Journal of functional programming |
container_volume | 29 |
creator | DARAIS, DAVID HORN, DAVID VAN |
description | Galois connections are a foundational tool for structuring abstraction in semantics, and their use lies at the heart of the theory of abstract interpretation. Yet, mechanization of Galois connections using proof assistants remains limited to restricted modes of use, preventing their general application in mechanized metatheory and certified programming. This paper presents
constructive Galois connections
, a variant of Galois connections that is effective both on paper and in proof assistants; is complete with respect to a large subset of classical Galois connections; and enables more general reasoning principles, including the “calculational” style advocated by Cousot. To design constructive Galois connections, we identify a restricted mode of use of classical ones which is both general and amenable to mechanization in dependently typed functional programming languages. Crucial to our metatheory is the addition of monadic structure to Galois connections to control a “specification effect.” Effectful calculations may reason classically, while pure calculations have extractable computational content. Explicitly moving between the worlds of specification and implementation is enabled by our metatheory. To validate our approach, we provide two case studies in mechanizing existing proofs from the literature: the first uses calculational abstract interpretation to design a static analyzer, and the second forms a semantic basis for gradual typing. Both mechanized proofs closely follow their original paper-and-pencil counterparts, employ reasoning principles not captured by previous mechanization approaches, support the extraction of verified algorithms, and are novel. |
doi_str_mv | 10.1017/S0956796819000066 |
format | Article |
fullrecord | <record><control><sourceid>proquest_cross</sourceid><recordid>TN_cdi_proquest_journals_2309689545</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2309689545</sourcerecordid><originalsourceid>FETCH-LOGICAL-c273t-1897b65cf847029333788a05b116a9aa9ec30fae9eb9c3b3c32e5cbcd5fd4d623</originalsourceid><addsrcrecordid>eNplkE9LxDAQxYMoWFc_gCcXPFeTTPNnjlJ0FRY8qOeQpgl0WZs1aQW_vSnrzbkMvN9j5vEIuWb0jlGm7t8oCqlQaoa0jJQnpGKNxFpJAaekWnC98HNykfOuWDQXuiI3bRzzlGY3Dd9-vbH7OOR10UZflIIuyVmw--yv_vaKfDw9vrfP9fZ189I-bGvHFUw106g6KVzQjaIcAUBpbanoGJMWrUXvgAbr0XfooAMH3AvXuV6EvuklhxW5Pd49pPg1-zyZXZzTWF4aDrTkRtGI4mJHl0sx5-SDOaTh06Yfw6hZejD_eoBfZBNOpg</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2309689545</pqid></control><display><type>article</type><title>Constructive Galois Connections</title><source>EZB-FREE-00999 freely available EZB journals</source><creator>DARAIS, DAVID ; HORN, DAVID VAN</creator><creatorcontrib>DARAIS, DAVID ; HORN, DAVID VAN</creatorcontrib><description>Galois connections are a foundational tool for structuring abstraction in semantics, and their use lies at the heart of the theory of abstract interpretation. Yet, mechanization of Galois connections using proof assistants remains limited to restricted modes of use, preventing their general application in mechanized metatheory and certified programming. This paper presents
constructive Galois connections
, a variant of Galois connections that is effective both on paper and in proof assistants; is complete with respect to a large subset of classical Galois connections; and enables more general reasoning principles, including the “calculational” style advocated by Cousot. To design constructive Galois connections, we identify a restricted mode of use of classical ones which is both general and amenable to mechanization in dependently typed functional programming languages. Crucial to our metatheory is the addition of monadic structure to Galois connections to control a “specification effect.” Effectful calculations may reason classically, while pure calculations have extractable computational content. Explicitly moving between the worlds of specification and implementation is enabled by our metatheory. To validate our approach, we provide two case studies in mechanizing existing proofs from the literature: the first uses calculational abstract interpretation to design a static analyzer, and the second forms a semantic basis for gradual typing. Both mechanized proofs closely follow their original paper-and-pencil counterparts, employ reasoning principles not captured by previous mechanization approaches, support the extraction of verified algorithms, and are novel.</description><identifier>ISSN: 0956-7968</identifier><identifier>EISSN: 1469-7653</identifier><identifier>DOI: 10.1017/S0956796819000066</identifier><language>eng</language><publisher>Cambridge: Cambridge University Press</publisher><subject>Algorithms ; Functional programming ; Mathematical analysis ; Mechanization ; Principles ; Programming languages ; Reasoning ; Semantics ; Specifications</subject><ispartof>Journal of functional programming, 2019, Vol.29, Article e11</ispartof><rights>Cambridge University Press 2019</rights><lds50>peer_reviewed</lds50><woscitedreferencessubscribed>false</woscitedreferencessubscribed><citedby>FETCH-LOGICAL-c273t-1897b65cf847029333788a05b116a9aa9ec30fae9eb9c3b3c32e5cbcd5fd4d623</citedby><cites>FETCH-LOGICAL-c273t-1897b65cf847029333788a05b116a9aa9ec30fae9eb9c3b3c32e5cbcd5fd4d623</cites></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><link.rule.ids>314,780,784,4021,27921,27922,27923</link.rule.ids></links><search><creatorcontrib>DARAIS, DAVID</creatorcontrib><creatorcontrib>HORN, DAVID VAN</creatorcontrib><title>Constructive Galois Connections</title><title>Journal of functional programming</title><description>Galois connections are a foundational tool for structuring abstraction in semantics, and their use lies at the heart of the theory of abstract interpretation. Yet, mechanization of Galois connections using proof assistants remains limited to restricted modes of use, preventing their general application in mechanized metatheory and certified programming. This paper presents
constructive Galois connections
, a variant of Galois connections that is effective both on paper and in proof assistants; is complete with respect to a large subset of classical Galois connections; and enables more general reasoning principles, including the “calculational” style advocated by Cousot. To design constructive Galois connections, we identify a restricted mode of use of classical ones which is both general and amenable to mechanization in dependently typed functional programming languages. Crucial to our metatheory is the addition of monadic structure to Galois connections to control a “specification effect.” Effectful calculations may reason classically, while pure calculations have extractable computational content. Explicitly moving between the worlds of specification and implementation is enabled by our metatheory. To validate our approach, we provide two case studies in mechanizing existing proofs from the literature: the first uses calculational abstract interpretation to design a static analyzer, and the second forms a semantic basis for gradual typing. Both mechanized proofs closely follow their original paper-and-pencil counterparts, employ reasoning principles not captured by previous mechanization approaches, support the extraction of verified algorithms, and are novel.</description><subject>Algorithms</subject><subject>Functional programming</subject><subject>Mathematical analysis</subject><subject>Mechanization</subject><subject>Principles</subject><subject>Programming languages</subject><subject>Reasoning</subject><subject>Semantics</subject><subject>Specifications</subject><issn>0956-7968</issn><issn>1469-7653</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2019</creationdate><recordtype>article</recordtype><sourceid>ABUWG</sourceid><sourceid>AFKRA</sourceid><sourceid>AZQEC</sourceid><sourceid>BENPR</sourceid><sourceid>CCPQU</sourceid><sourceid>DWQXO</sourceid><sourceid>GNUQQ</sourceid><recordid>eNplkE9LxDAQxYMoWFc_gCcXPFeTTPNnjlJ0FRY8qOeQpgl0WZs1aQW_vSnrzbkMvN9j5vEIuWb0jlGm7t8oCqlQaoa0jJQnpGKNxFpJAaekWnC98HNykfOuWDQXuiI3bRzzlGY3Dd9-vbH7OOR10UZflIIuyVmw--yv_vaKfDw9vrfP9fZ189I-bGvHFUw106g6KVzQjaIcAUBpbanoGJMWrUXvgAbr0XfooAMH3AvXuV6EvuklhxW5Pd49pPg1-zyZXZzTWF4aDrTkRtGI4mJHl0sx5-SDOaTh06Yfw6hZejD_eoBfZBNOpg</recordid><startdate>2019</startdate><enddate>2019</enddate><creator>DARAIS, DAVID</creator><creator>HORN, DAVID VAN</creator><general>Cambridge University Press</general><scope>AAYXX</scope><scope>CITATION</scope><scope>3V.</scope><scope>7SC</scope><scope>7XB</scope><scope>8AL</scope><scope>8FD</scope><scope>8FE</scope><scope>8FG</scope><scope>8FK</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>ARAPS</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>GNUQQ</scope><scope>HCIFZ</scope><scope>JQ2</scope><scope>K7-</scope><scope>L7M</scope><scope>L~C</scope><scope>L~D</scope><scope>M0N</scope><scope>P5Z</scope><scope>P62</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>Q9U</scope></search><sort><creationdate>2019</creationdate><title>Constructive Galois Connections</title><author>DARAIS, DAVID ; HORN, DAVID VAN</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-LOGICAL-c273t-1897b65cf847029333788a05b116a9aa9ec30fae9eb9c3b3c32e5cbcd5fd4d623</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2019</creationdate><topic>Algorithms</topic><topic>Functional programming</topic><topic>Mathematical analysis</topic><topic>Mechanization</topic><topic>Principles</topic><topic>Programming languages</topic><topic>Reasoning</topic><topic>Semantics</topic><topic>Specifications</topic><toplevel>peer_reviewed</toplevel><toplevel>online_resources</toplevel><creatorcontrib>DARAIS, DAVID</creatorcontrib><creatorcontrib>HORN, DAVID VAN</creatorcontrib><collection>CrossRef</collection><collection>ProQuest Central (Corporate)</collection><collection>Computer and Information Systems Abstracts</collection><collection>ProQuest Central (purchase pre-March 2016)</collection><collection>Computing Database (Alumni Edition)</collection><collection>Technology Research Database</collection><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>ProQuest Central (Alumni) (purchase pre-March 2016)</collection><collection>ProQuest Central (Alumni Edition)</collection><collection>ProQuest Central UK/Ireland</collection><collection>Advanced Technologies & Aerospace Collection</collection><collection>ProQuest Central Essentials</collection><collection>ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>ProQuest Central Student</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Computer Science Collection</collection><collection>Computer Science Database</collection><collection>Advanced Technologies Database with Aerospace</collection><collection>Computer and Information Systems Abstracts Academic</collection><collection>Computer and Information Systems Abstracts Professional</collection><collection>Computing Database</collection><collection>Advanced Technologies & Aerospace Database</collection><collection>ProQuest Advanced Technologies & Aerospace Collection</collection><collection>ProQuest One Academic Eastern Edition (DO NOT USE)</collection><collection>ProQuest One Academic</collection><collection>ProQuest One Academic UKI Edition</collection><collection>ProQuest Central China</collection><collection>ProQuest Central Basic</collection><jtitle>Journal of functional programming</jtitle></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>DARAIS, DAVID</au><au>HORN, DAVID VAN</au><format>journal</format><genre>article</genre><ristype>JOUR</ristype><atitle>Constructive Galois Connections</atitle><jtitle>Journal of functional programming</jtitle><date>2019</date><risdate>2019</risdate><volume>29</volume><artnum>e11</artnum><issn>0956-7968</issn><eissn>1469-7653</eissn><abstract>Galois connections are a foundational tool for structuring abstraction in semantics, and their use lies at the heart of the theory of abstract interpretation. Yet, mechanization of Galois connections using proof assistants remains limited to restricted modes of use, preventing their general application in mechanized metatheory and certified programming. This paper presents
constructive Galois connections
, a variant of Galois connections that is effective both on paper and in proof assistants; is complete with respect to a large subset of classical Galois connections; and enables more general reasoning principles, including the “calculational” style advocated by Cousot. To design constructive Galois connections, we identify a restricted mode of use of classical ones which is both general and amenable to mechanization in dependently typed functional programming languages. Crucial to our metatheory is the addition of monadic structure to Galois connections to control a “specification effect.” Effectful calculations may reason classically, while pure calculations have extractable computational content. Explicitly moving between the worlds of specification and implementation is enabled by our metatheory. To validate our approach, we provide two case studies in mechanizing existing proofs from the literature: the first uses calculational abstract interpretation to design a static analyzer, and the second forms a semantic basis for gradual typing. Both mechanized proofs closely follow their original paper-and-pencil counterparts, employ reasoning principles not captured by previous mechanization approaches, support the extraction of verified algorithms, and are novel.</abstract><cop>Cambridge</cop><pub>Cambridge University Press</pub><doi>10.1017/S0956796819000066</doi></addata></record> |
fulltext | fulltext |
identifier | ISSN: 0956-7968 |
ispartof | Journal of functional programming, 2019, Vol.29, Article e11 |
issn | 0956-7968 1469-7653 |
language | eng |
recordid | cdi_proquest_journals_2309689545 |
source | EZB-FREE-00999 freely available EZB journals |
subjects | Algorithms Functional programming Mathematical analysis Mechanization Principles Programming languages Reasoning Semantics Specifications |
title | Constructive Galois Connections |
url | https://sfx.bib-bvb.de/sfx_tum?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-14T03%3A24%3A12IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest_cross&rft_val_fmt=info:ofi/fmt:kev:mtx:journal&rft.genre=article&rft.atitle=Constructive%20Galois%20Connections&rft.jtitle=Journal%20of%20functional%20programming&rft.au=DARAIS,%20DAVID&rft.date=2019&rft.volume=29&rft.artnum=e11&rft.issn=0956-7968&rft.eissn=1469-7653&rft_id=info:doi/10.1017/S0956796819000066&rft_dat=%3Cproquest_cross%3E2309689545%3C/proquest_cross%3E%3Curl%3E%3C/url%3E&disable_directlink=true&sfx.directlink=off&sfx.report_link=0&rft_id=info:oai/&rft_pqid=2309689545&rft_id=info:pmid/&rfr_iscdi=true |