St Andrews Research Repository

St Andrews University Home
View Item 
  •   St Andrews Research Repository
  • University of St Andrews Research
  • University of St Andrews Research
  • University of St Andrews Research
  • View Item
  •   St Andrews Research Repository
  • University of St Andrews Research
  • University of St Andrews Research
  • University of St Andrews Research
  • View Item
  •   St Andrews Research Repository
  • University of St Andrews Research
  • University of St Andrews Research
  • University of St Andrews Research
  • View Item
  • Login
JavaScript is disabled for your browser. Some features of this site may not work without it.

Automatically proving equivalence by type-safe reflection

Thumbnail
View/Open
Slama_2017_Automatically_proving_CICM2017_AAM.pdf (265.5Kb)
Date
2017
Author
Slama, Franck
Brady, Edwin Charles
Keywords
Proof automation
Equivalence
Equality
Proof by reflection
Correct-by-construction software
Type-driven development
QA75 Electronic computers. Computer science
QA76 Computer software
TA Engineering (General). Civil engineering (General)
T-NDAS
BDC
R2C
Metadata
Show full item record
Abstract
One difficulty with reasoning and programming with dependent types is that proof obligations arise naturally once programs become even moderately sized. For example, implementing an adder for binary numbers indexed over their natural number equivalents naturally leads to proof obligations for equalities of expressions over natural numbers. The need for these equality proofs comes, in intensional type theories, from the fact that the propositional equality enables us to prove as equal terms that are not judgementally equal, which means that the typechecker can’t always obtain equalities by reduction. As far as possible, we would like to solve such proof obligations automatically. In this paper, we show one way to automate these proofs by reflection in the dependently typed programming language Idris. We show how defining reflected terms indexed by the original Idris expression allows us to construct and manipulate proofs. We build a hierarchy of tactics for proving equivalences in semi-groups, monoids, commutative monoids, groups, commutative groups, semi-rings and rings. We also show how each tactic reuses those from simpler structures, thus avoiding duplication of code and proofs.
Citation
Slama , F & Brady , E C 2017 , Automatically proving equivalence by type-safe reflection . in H Geuvers , M England , O Hasan , F Rabe & O Teschke (eds) , Intelligent Computer Mathematics : 10th International Conference, CICM 2017, Edinburgh, UK, July 17-21, 2017, Proceedings . Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence) , vol. 10383 (LNCS) , Springer , Cham , pp. 40-55 , 10th Conference on Intelligent Computer Mathematics (CICM 2017) , Edinburgh , United Kingdom , 17/07/17 . https://doi.org/10.1007/978-3-319-62075-6_4
 
conference
 
Publication
Intelligent Computer Mathematics
DOI
https://doi.org/10.1007/978-3-319-62075-6_4
ISSN
0302-9743
Type
Conference item
Rights
Copyright © 2017, Springer. This work has been made available online in accordance with the publisher’s policies. This is the author created, accepted version manuscript following peer review and may differ slightly from the final published version. The final published version of this work is available at https://doi.org/https://doi.org/10.1007/978-3-319-62075-6_4
Description
We are also grateful for the support of the Scottish Informatics and Computer Science Alliance (SICSA) and EPSRC grant EP/N024222/1.
Collections
  • University of St Andrews Research
URI
http://hdl.handle.net/10023/11247

Items in the St Andrews Research Repository are protected by copyright, with all rights reserved, unless otherwise indicated.

Advanced Search

Browse

All of RepositoryCommunities & CollectionsBy Issue DateNamesTitlesSubjectsClassificationTypeFunderThis CollectionBy Issue DateNamesTitlesSubjectsClassificationTypeFunder

My Account

Login

Open Access

To find out how you can benefit from open access to research, see our library web pages and Open Access blog. For open access help contact: openaccess@st-andrews.ac.uk.

Accessibility

Read our Accessibility statement.

How to submit research papers

The full text of research papers can be submitted to the repository via Pure, the University's research information system. For help see our guide: How to deposit in Pure.

Electronic thesis deposit

Help with deposit.

Repository help

For repository help contact: Digital-Repository@st-andrews.ac.uk.

Give Feedback

Cookie policy

This site may use cookies. Please see Terms and Conditions.

Usage statistics

COUNTER-compliant statistics on downloads from the repository are available from the IRUS-UK Service. Contact us for information.

© University of St Andrews Library

University of St Andrews is a charity registered in Scotland, No SC013532.

  • Facebook
  • Twitter