1,136 research outputs found
Formalizing Program Equivalences in Dependent Type Theory
This brief note summarizes our formalization in a dependently typed setting of the meta-theory of several notions of program equivalences in higher-order programming languages
Formalizing Mathematical Knowledge as a Biform Theory Graph: A Case Study
A biform theory is a combination of an axiomatic theory and an algorithmic
theory that supports the integration of reasoning and computation. These are
ideal for formalizing algorithms that manipulate mathematical expressions. A
theory graph is a network of theories connected by meaning-preserving theory
morphisms that map the formulas of one theory to the formulas of another
theory. Theory graphs are in turn well suited for formalizing mathematical
knowledge at the most convenient level of abstraction using the most convenient
vocabulary. We are interested in the problem of whether a body of mathematical
knowledge can be effectively formalized as a theory graph of biform theories.
As a test case, we look at the graph of theories encoding natural number
arithmetic. We used two different formalisms to do this, which we describe and
compare. The first is realized in , a version of Church's
type theory with quotation and evaluation, and the second is realized in Agda,
a dependently typed programming language.Comment: 43 pages; published without appendices in: H. Geuvers et al., eds,
Intelligent Computer Mathematics (CICM 2017), Lecture Notes in Computer
Science, Vol. 10383, pp. 9-24, Springer, 201
Experience Implementing a Performant Category-Theory Library in Coq
We describe our experience implementing a broad category-theory library in
Coq. Category theory and computational performance are not usually mentioned in
the same breath, but we have needed substantial engineering effort to teach Coq
to cope with large categorical constructions without slowing proof script
processing unacceptably. In this paper, we share the lessons we have learned
about how to represent very abstract mathematical objects and arguments in Coq
and how future proof assistants might be designed to better support such
reasoning. One particular encoding trick to which we draw attention allows
category-theoretic arguments involving duality to be internalized in Coq's
logic with definitional equality. Ours may be the largest Coq development to
date that uses the relatively new Coq version developed by homotopy type
theorists, and we reflect on which new features were especially helpful.Comment: The final publication will be available at link.springer.com. This
version includes a full bibliography which does not fit in the Springer
version; other than the more complete references, this is the version
submitted as a final copy to ITP 201
Trocq: Proof Transfer for Free, With or Without Univalence
Libraries of formalized mathematics use a possibly broad range of different
representations for a same mathematical concept. Yet light to major manual
input from users remains most often required for obtaining the corresponding
variants of theorems, when such obvious replacements are typically left
implicit on paper. This article presents Trocq, a new proof transfer framework
for dependent type theory. Trocq is based on a novel formulation of type
equivalence, used to generalize the univalent parametricity translation. This
framework takes care of avoiding dependency on the axiom of univalence when
possible, and may be used with more relations than just equivalences. We have
implemented a corresponding plugin for the Coq proof assistant, in the CoqElpi
meta-language. We use this plugin on a gallery of representative examples of
proof transfer issues in interactive theorem proving, and illustrate how Trocq
covers the spectrum of several existing tools, used in program verification as
well as in formalized mathematics in the broad sense
- …