Loading…
Design and Implementation of the Andromeda Proof Assistant
Andromeda is an LCF-style proof assistant where the user builds derivable judgments by writing code in a meta-level programming language AML. The only trusted component of Andromeda is a minimalist nucleus (an implementation of the inference rules of an object-level type theory), which controls cons...
Saved in:
Published in: | arXiv.org 2018-02 |
---|---|
Main Authors: | , , , , |
Format: | Article |
Language: | English |
Subjects: | |
Online Access: | Get full text |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
cited_by | |
---|---|
cites | |
container_end_page | |
container_issue | |
container_start_page | |
container_title | arXiv.org |
container_volume | |
creator | Bauer, Andrej Gilbert, Gaëtan Haselwarter, Philipp G Pretnar, Matija Stone, Christopher A |
description | Andromeda is an LCF-style proof assistant where the user builds derivable judgments by writing code in a meta-level programming language AML. The only trusted component of Andromeda is a minimalist nucleus (an implementation of the inference rules of an object-level type theory), which controls construction and decomposition of type-theoretic judgments. Since the nucleus does not perform complex tasks like equality checking beyond syntactic equality, this responsibility is delegated to the user, who implements one or more equality checking procedures in the meta-language. The AML interpreter requests witnesses of equality from user code using the mechanism of algebraic operations and handlers. Dynamic checks in the nucleus guarantee that no invalid object-level derivations can be constructed. %even if the AML code (or interpreter) is untrusted. To demonstrate the flexibility of this system structure, we implemented a nucleus consisting of dependent type theory with equality reflection. Equality reflection provides a very high level of expressiveness, as it allows the user to add new judgmental equalities, but it also destroys desirable meta-theoretic properties of type theory (such as decidability and strong normalization). The power of effects and handlers in AML is demonstrated by a standard library that provides default algorithms for equality checking, computation of normal forms, and implicit argument filling. Users can extend these new algorithms by providing local "hints" or by completely replacing these algorithms for particular developments. We demonstrate the resulting system by showing how to axiomatize and compute with natural numbers, by axiomatizing the untyped \(\lambda\)-calculus, and by implementing a simple automated system for managing a universe of types. |
format | article |
fullrecord | <record><control><sourceid>proquest</sourceid><recordid>TN_cdi_proquest_journals_2071612430</recordid><sourceformat>XML</sourceformat><sourcesystem>PC</sourcesystem><sourcerecordid>2071612430</sourcerecordid><originalsourceid>FETCH-proquest_journals_20716124303</originalsourceid><addsrcrecordid>eNqNissKwjAQAIMgWLT_EPBcSDZ9iLfiA7158F4C3WpLs6nZ9P_twQ_wNDAzK5GAMTo75AAbkTIPSikoKygKk4jjGbl_kbTUyrubRnRI0cbek_SdjG-UNbXBO2ytfAS_uJq552gp7sS6syNj-uNW7K-X5-mWTcF_ZuTYDH4OtKQGVKVLDblR5r_rC6LZNoc</addsrcrecordid><sourcetype>Aggregation Database</sourcetype><iscdi>true</iscdi><recordtype>article</recordtype><pqid>2071612430</pqid></control><display><type>article</type><title>Design and Implementation of the Andromeda Proof Assistant</title><source>Publicly Available Content Database</source><creator>Bauer, Andrej ; Gilbert, Gaëtan ; Haselwarter, Philipp G ; Pretnar, Matija ; Stone, Christopher A</creator><creatorcontrib>Bauer, Andrej ; Gilbert, Gaëtan ; Haselwarter, Philipp G ; Pretnar, Matija ; Stone, Christopher A</creatorcontrib><description>Andromeda is an LCF-style proof assistant where the user builds derivable judgments by writing code in a meta-level programming language AML. The only trusted component of Andromeda is a minimalist nucleus (an implementation of the inference rules of an object-level type theory), which controls construction and decomposition of type-theoretic judgments. Since the nucleus does not perform complex tasks like equality checking beyond syntactic equality, this responsibility is delegated to the user, who implements one or more equality checking procedures in the meta-language. The AML interpreter requests witnesses of equality from user code using the mechanism of algebraic operations and handlers. Dynamic checks in the nucleus guarantee that no invalid object-level derivations can be constructed. %even if the AML code (or interpreter) is untrusted. To demonstrate the flexibility of this system structure, we implemented a nucleus consisting of dependent type theory with equality reflection. Equality reflection provides a very high level of expressiveness, as it allows the user to add new judgmental equalities, but it also destroys desirable meta-theoretic properties of type theory (such as decidability and strong normalization). The power of effects and handlers in AML is demonstrated by a standard library that provides default algorithms for equality checking, computation of normal forms, and implicit argument filling. Users can extend these new algorithms by providing local "hints" or by completely replacing these algorithms for particular developments. We demonstrate the resulting system by showing how to axiomatize and compute with natural numbers, by axiomatizing the untyped \(\lambda\)-calculus, and by implementing a simple automated system for managing a universe of types.</description><identifier>EISSN: 2331-8422</identifier><language>eng</language><publisher>Ithaca: Cornell University Library, arXiv.org</publisher><subject>Algorithms ; Axioms ; Judgments ; Number theory ; Programming languages ; Reflection ; Task complexity ; Universe</subject><ispartof>arXiv.org, 2018-02</ispartof><rights>2018. This work is published under http://arxiv.org/licenses/nonexclusive-distrib/1.0/ (the “License”). Notwithstanding the ProQuest Terms and Conditions, you may use this content in accordance with the terms of the License.</rights><oa>free_for_read</oa><woscitedreferencessubscribed>false</woscitedreferencessubscribed></display><links><openurl>$$Topenurl_article</openurl><openurlfulltext>$$Topenurlfull_article</openurlfulltext><thumbnail>$$Tsyndetics_thumb_exl</thumbnail><linktohtml>$$Uhttps://www.proquest.com/docview/2071612430?pq-origsite=primo$$EHTML$$P50$$Gproquest$$Hfree_for_read</linktohtml><link.rule.ids>780,784,25753,37012,44590</link.rule.ids></links><search><creatorcontrib>Bauer, Andrej</creatorcontrib><creatorcontrib>Gilbert, Gaëtan</creatorcontrib><creatorcontrib>Haselwarter, Philipp G</creatorcontrib><creatorcontrib>Pretnar, Matija</creatorcontrib><creatorcontrib>Stone, Christopher A</creatorcontrib><title>Design and Implementation of the Andromeda Proof Assistant</title><title>arXiv.org</title><description>Andromeda is an LCF-style proof assistant where the user builds derivable judgments by writing code in a meta-level programming language AML. The only trusted component of Andromeda is a minimalist nucleus (an implementation of the inference rules of an object-level type theory), which controls construction and decomposition of type-theoretic judgments. Since the nucleus does not perform complex tasks like equality checking beyond syntactic equality, this responsibility is delegated to the user, who implements one or more equality checking procedures in the meta-language. The AML interpreter requests witnesses of equality from user code using the mechanism of algebraic operations and handlers. Dynamic checks in the nucleus guarantee that no invalid object-level derivations can be constructed. %even if the AML code (or interpreter) is untrusted. To demonstrate the flexibility of this system structure, we implemented a nucleus consisting of dependent type theory with equality reflection. Equality reflection provides a very high level of expressiveness, as it allows the user to add new judgmental equalities, but it also destroys desirable meta-theoretic properties of type theory (such as decidability and strong normalization). The power of effects and handlers in AML is demonstrated by a standard library that provides default algorithms for equality checking, computation of normal forms, and implicit argument filling. Users can extend these new algorithms by providing local "hints" or by completely replacing these algorithms for particular developments. We demonstrate the resulting system by showing how to axiomatize and compute with natural numbers, by axiomatizing the untyped \(\lambda\)-calculus, and by implementing a simple automated system for managing a universe of types.</description><subject>Algorithms</subject><subject>Axioms</subject><subject>Judgments</subject><subject>Number theory</subject><subject>Programming languages</subject><subject>Reflection</subject><subject>Task complexity</subject><subject>Universe</subject><issn>2331-8422</issn><fulltext>true</fulltext><rsrctype>article</rsrctype><creationdate>2018</creationdate><recordtype>article</recordtype><sourceid>PIMPY</sourceid><recordid>eNqNissKwjAQAIMgWLT_EPBcSDZ9iLfiA7158F4C3WpLs6nZ9P_twQ_wNDAzK5GAMTo75AAbkTIPSikoKygKk4jjGbl_kbTUyrubRnRI0cbek_SdjG-UNbXBO2ytfAS_uJq552gp7sS6syNj-uNW7K-X5-mWTcF_ZuTYDH4OtKQGVKVLDblR5r_rC6LZNoc</recordid><startdate>20180217</startdate><enddate>20180217</enddate><creator>Bauer, Andrej</creator><creator>Gilbert, Gaëtan</creator><creator>Haselwarter, Philipp G</creator><creator>Pretnar, Matija</creator><creator>Stone, Christopher A</creator><general>Cornell University Library, arXiv.org</general><scope>8FE</scope><scope>8FG</scope><scope>ABJCF</scope><scope>ABUWG</scope><scope>AFKRA</scope><scope>AZQEC</scope><scope>BENPR</scope><scope>BGLVJ</scope><scope>CCPQU</scope><scope>DWQXO</scope><scope>HCIFZ</scope><scope>L6V</scope><scope>M7S</scope><scope>PIMPY</scope><scope>PQEST</scope><scope>PQQKQ</scope><scope>PQUKI</scope><scope>PRINS</scope><scope>PTHSS</scope></search><sort><creationdate>20180217</creationdate><title>Design and Implementation of the Andromeda Proof Assistant</title><author>Bauer, Andrej ; Gilbert, Gaëtan ; Haselwarter, Philipp G ; Pretnar, Matija ; Stone, Christopher A</author></sort><facets><frbrtype>5</frbrtype><frbrgroupid>cdi_FETCH-proquest_journals_20716124303</frbrgroupid><rsrctype>articles</rsrctype><prefilter>articles</prefilter><language>eng</language><creationdate>2018</creationdate><topic>Algorithms</topic><topic>Axioms</topic><topic>Judgments</topic><topic>Number theory</topic><topic>Programming languages</topic><topic>Reflection</topic><topic>Task complexity</topic><topic>Universe</topic><toplevel>online_resources</toplevel><creatorcontrib>Bauer, Andrej</creatorcontrib><creatorcontrib>Gilbert, Gaëtan</creatorcontrib><creatorcontrib>Haselwarter, Philipp G</creatorcontrib><creatorcontrib>Pretnar, Matija</creatorcontrib><creatorcontrib>Stone, Christopher A</creatorcontrib><collection>ProQuest SciTech Collection</collection><collection>ProQuest Technology Collection</collection><collection>Materials Science & Engineering Collection</collection><collection>ProQuest Central (Alumni)</collection><collection>ProQuest Central</collection><collection>ProQuest Central Essentials</collection><collection>AUTh Library subscriptions: ProQuest Central</collection><collection>Technology Collection</collection><collection>ProQuest One Community College</collection><collection>ProQuest Central Korea</collection><collection>SciTech Premium Collection</collection><collection>ProQuest Engineering Collection</collection><collection>Engineering Database</collection><collection>Publicly Available Content Database</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>Engineering Collection</collection></facets><delivery><delcategory>Remote Search Resource</delcategory><fulltext>fulltext</fulltext></delivery><addata><au>Bauer, Andrej</au><au>Gilbert, Gaëtan</au><au>Haselwarter, Philipp G</au><au>Pretnar, Matija</au><au>Stone, Christopher A</au><format>book</format><genre>document</genre><ristype>GEN</ristype><atitle>Design and Implementation of the Andromeda Proof Assistant</atitle><jtitle>arXiv.org</jtitle><date>2018-02-17</date><risdate>2018</risdate><eissn>2331-8422</eissn><abstract>Andromeda is an LCF-style proof assistant where the user builds derivable judgments by writing code in a meta-level programming language AML. The only trusted component of Andromeda is a minimalist nucleus (an implementation of the inference rules of an object-level type theory), which controls construction and decomposition of type-theoretic judgments. Since the nucleus does not perform complex tasks like equality checking beyond syntactic equality, this responsibility is delegated to the user, who implements one or more equality checking procedures in the meta-language. The AML interpreter requests witnesses of equality from user code using the mechanism of algebraic operations and handlers. Dynamic checks in the nucleus guarantee that no invalid object-level derivations can be constructed. %even if the AML code (or interpreter) is untrusted. To demonstrate the flexibility of this system structure, we implemented a nucleus consisting of dependent type theory with equality reflection. Equality reflection provides a very high level of expressiveness, as it allows the user to add new judgmental equalities, but it also destroys desirable meta-theoretic properties of type theory (such as decidability and strong normalization). The power of effects and handlers in AML is demonstrated by a standard library that provides default algorithms for equality checking, computation of normal forms, and implicit argument filling. Users can extend these new algorithms by providing local "hints" or by completely replacing these algorithms for particular developments. We demonstrate the resulting system by showing how to axiomatize and compute with natural numbers, by axiomatizing the untyped \(\lambda\)-calculus, and by implementing a simple automated system for managing a universe of types.</abstract><cop>Ithaca</cop><pub>Cornell University Library, arXiv.org</pub><oa>free_for_read</oa></addata></record> |
fulltext | fulltext |
identifier | EISSN: 2331-8422 |
ispartof | arXiv.org, 2018-02 |
issn | 2331-8422 |
language | eng |
recordid | cdi_proquest_journals_2071612430 |
source | Publicly Available Content Database |
subjects | Algorithms Axioms Judgments Number theory Programming languages Reflection Task complexity Universe |
title | Design and Implementation of the Andromeda Proof Assistant |
url | http://sfxeu10.hosted.exlibrisgroup.com/loughborough?ctx_ver=Z39.88-2004&ctx_enc=info:ofi/enc:UTF-8&ctx_tim=2025-01-04T05%3A11%3A09IST&url_ver=Z39.88-2004&url_ctx_fmt=infofi/fmt:kev:mtx:ctx&rfr_id=info:sid/primo.exlibrisgroup.com:primo3-Article-proquest&rft_val_fmt=info:ofi/fmt:kev:mtx:book&rft.genre=document&rft.atitle=Design%20and%20Implementation%20of%20the%20Andromeda%20Proof%20Assistant&rft.jtitle=arXiv.org&rft.au=Bauer,%20Andrej&rft.date=2018-02-17&rft.eissn=2331-8422&rft_id=info:doi/&rft_dat=%3Cproquest%3E2071612430%3C/proquest%3E%3Cgrp_id%3Ecdi_FETCH-proquest_journals_20716124303%3C/grp_id%3E%3Coa%3E%3C/oa%3E%3Curl%3E%3C/url%3E&rft_id=info:oai/&rft_pqid=2071612430&rft_id=info:pmid/&rfr_iscdi=true |