Cargando…
Validating Mathematical Structures
Sharing of notations and theories across an inheritance hierarchy of mathematical structures, e.g., groups and rings, is important for productivity when formalizing mathematics in proof assistants. The packed classes methodology is a generic design pattern to define and combine mathematical structur...
Autor principal: | |
---|---|
Formato: | Online Artículo Texto |
Lenguaje: | English |
Publicado: |
2020
|
Materias: | |
Acceso en línea: | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7324068/ http://dx.doi.org/10.1007/978-3-030-51054-1_8 |
_version_ | 1783551874131034112 |
---|---|
author | Sakaguchi, Kazuhiko |
author_facet | Sakaguchi, Kazuhiko |
author_sort | Sakaguchi, Kazuhiko |
collection | PubMed |
description | Sharing of notations and theories across an inheritance hierarchy of mathematical structures, e.g., groups and rings, is important for productivity when formalizing mathematics in proof assistants. The packed classes methodology is a generic design pattern to define and combine mathematical structures in a dependent type theory with records. When combined with mechanisms for implicit coercions and unification hints, packed classes enable automated structure inference and subtyping in hierarchies, e.g., that a ring can be used in place of a group. However, large hierarchies based on packed classes are challenging to implement and maintain. We identify two hierarchy invariants that ensure modularity of reasoning and predictability of inference with packed classes, and propose algorithms to check these invariants. We implement our algorithms as tools for the Coq proof assistant, and show that they significantly improve the development process of Mathematical Components, a library for formalized mathematics. |
format | Online Article Text |
id | pubmed-7324068 |
institution | National Center for Biotechnology Information |
language | English |
publishDate | 2020 |
record_format | MEDLINE/PubMed |
spelling | pubmed-73240682020-06-30 Validating Mathematical Structures Sakaguchi, Kazuhiko Automated Reasoning Article Sharing of notations and theories across an inheritance hierarchy of mathematical structures, e.g., groups and rings, is important for productivity when formalizing mathematics in proof assistants. The packed classes methodology is a generic design pattern to define and combine mathematical structures in a dependent type theory with records. When combined with mechanisms for implicit coercions and unification hints, packed classes enable automated structure inference and subtyping in hierarchies, e.g., that a ring can be used in place of a group. However, large hierarchies based on packed classes are challenging to implement and maintain. We identify two hierarchy invariants that ensure modularity of reasoning and predictability of inference with packed classes, and propose algorithms to check these invariants. We implement our algorithms as tools for the Coq proof assistant, and show that they significantly improve the development process of Mathematical Components, a library for formalized mathematics. 2020-06-06 /pmc/articles/PMC7324068/ http://dx.doi.org/10.1007/978-3-030-51054-1_8 Text en © Springer Nature Switzerland AG 2020 This article is made available via the PMC Open Access Subset for unrestricted research re-use and secondary analysis in any form or by any means with acknowledgement of the original source. These permissions are granted for the duration of the World Health Organization (WHO) declaration of COVID-19 as a global pandemic. |
spellingShingle | Article Sakaguchi, Kazuhiko Validating Mathematical Structures |
title | Validating Mathematical Structures |
title_full | Validating Mathematical Structures |
title_fullStr | Validating Mathematical Structures |
title_full_unstemmed | Validating Mathematical Structures |
title_short | Validating Mathematical Structures |
title_sort | validating mathematical structures |
topic | Article |
url | https://www.ncbi.nlm.nih.gov/pmc/articles/PMC7324068/ http://dx.doi.org/10.1007/978-3-030-51054-1_8 |
work_keys_str_mv | AT sakaguchikazuhiko validatingmathematicalstructures |