56 research outputs found
Computing with Classical Real Numbers
There are two incompatible Coq libraries that have a theory of the real
numbers; the Coq standard library gives an axiomatic treatment of classical
real numbers, while the CoRN library from Nijmegen defines constructively valid
real numbers. Unfortunately, this means results about one structure cannot
easily be used in the other structure. We present a way interfacing these two
libraries by showing that their real number structures are isomorphic assuming
the classical axioms already present in the standard library reals. This allows
us to use O'Connor's decision procedure for solving ground inequalities present
in CoRN to solve inequalities about the reals from the Coq standard library,
and it allows theorems from the Coq standard library to apply to problem about
the CoRN reals
Machine Learning of Coq Proof Guidance: First Experiments
We report the results of the first experiments with learning proof
dependencies from the formalizations done with the Coq system. We explain the
process of obtaining the dependencies from the Coq proofs, the characterization
of formulas that is used for the learning, and the evaluation method. Various
machine learning methods are compared on a dataset of 5021 toplevel Coq proofs
coming from the CoRN repository. The best resulting method covers on average
75% of the needed proof dependencies among the first 100 predictions, which is
a comparable performance of such initial experiments on other large-theory
corpora
Type classes for efficient exact real arithmetic in Coq
Floating point operations are fast, but require continuous effort on the part
of the user in order to ensure that the results are correct. This burden can be
shifted away from the user by providing a library of exact analysis in which
the computer handles the error estimates. Previously, we [Krebbers/Spitters
2011] provided a fast implementation of the exact real numbers in the Coq proof
assistant. Our implementation improved on an earlier implementation by O'Connor
by using type classes to describe an abstract specification of the underlying
dense set from which the real numbers are built. In particular, we used dyadic
rationals built from Coq's machine integers to obtain a 100 times speed up of
the basic operations already. This article is a substantially expanded version
of [Krebbers/Spitters 2011] in which the implementation is extended in the
various ways. First, we implement and verify the sine and cosine function.
Secondly, we create an additional implementation of the dense set based on
Coq's fast rational numbers. Thirdly, we extend the hierarchy to capture order
on undecidable structures, while it was limited to decidable structures before.
This hierarchy, based on type classes, allows us to share theory on the
naturals, integers, rationals, dyadics, and reals in a convenient way. Finally,
we obtain another dramatic speed-up by avoiding evaluation of termination
proofs at runtime.Comment: arXiv admin note: text overlap with arXiv:1105.275
Certified Exact Transcendental Real Number Computation in Coq
Reasoning about real number expressions in a proof assistant is challenging.
Several problems in theorem proving can be solved by using exact real number
computation. I have implemented a library for reasoning and computing with
complete metric spaces in the Coq proof assistant and used this library to
build a constructive real number implementation including elementary real
number functions and proofs of correctness. Using this library, I have created
a tactic that automatically proves strict inequalities over closed elementary
real number expressions by computation.Comment: This paper is to be part of the proceedings of the 21st International
Conference on Theorem Proving in Higher Order Logics (TPHOLs 2008
Affine functions and series with co-inductive real numbers
We extend the work of A. Ciaffaglione and P. Di Gianantonio on mechanical
verification of algorithms for exact computation on real numbers, using
infinite streams of digits implemented as co-inductive types. Four aspects are
studied: the first aspect concerns the proof that digit streams can be related
to the axiomatized real numbers that are already axiomatized in the proof
system (axiomatized, but with no fixed representation). The second aspect
re-visits the definition of an addition function, looking at techniques to let
the proof search mechanism perform the effective construction of an algorithm
that is correct by construction. The third aspect concerns the definition of a
function to compute affine formulas with positive rational coefficients. This
should be understood as a testbed to describe a technique to combine
co-recursion and recursion to obtain a model for an algorithm that appears at
first sight to be outside the expressive power allowed by the proof system. The
fourth aspect concerns the definition of a function to compute series, with an
application on the series that is used to compute Euler's number e. All these
experiments should be reproducible in any proof system that supports
co-inductive types, co-recursion and general forms of terminating recursion,
but we performed with the Coq system [12, 3, 14]
Web Interfaces for Proof Assistants
AbstractThis article describes an architecture for creating responsive web interfaces for proof assistants. The architecture combines current web development technologies with the functionality of local prover interfaces, to create an interface that is available completely within a web browser, but resembles and behaves like a local one. Security, availability and efficiency issues of the proposed solution are described. A prototype implementation of a web interface for the Coq proof assistant [Coq Development Team, “The Coq Proof Assistant Reference Manual Version 8.0,” INRIA-Rocquencourt (2005), URL: http://coq.inria.fr/doc-eng.html] created according to our architecture is presented. Access to the prototype is available on http://hair-dryer.cs.ru.nl:1024/
A Computer Verified Theory of Compact Sets
Compact sets in constructive mathematics capture our intuition of what
computable subsets of the plane (or any other complete metric space) ought to
be. A good representation of compact sets provides an efficient means of
creating and displaying images with a computer. In this paper, I build upon
existing work about complete metric spaces to define compact sets as the
completion of the space of finite sets under the Hausdorff metric. This
definition allowed me to quickly develop a computer verified theory of compact
sets. I applied this theory to compute provably correct plots of uniformly
continuous functions.Comment: This paper is to be part of the proceedings of the Symbolic
Computation in Software Science Austrian-Japanese Workshop (SCSS 2008
Case Studies in Proof Checking
The aim of computer proof checking is not to find proofs, but to verify them. This is different from automated deduction, which is the use of computers to find proofs that humans have not devised first. Currently, checking a proof by computer is done by taking a known mathematical proof and entering it into the special language recognized by a proof verifier program, and then running the verifier to hopefully obtain no errors. Of course, if the proof checker approves the proof, there are considerations of whether or not the proof checker is correct, and this has been complicated by the fact that so many systems have sprung into being. The two main challenges in using a proof checker today are the time needed to learn the syntax and general usage of the system and the time needed to formalize a proof in the system even when the user is already proficient with it. As mathematicians are not yet using proof checkers regularly, we wanted to evaluate the validity of this reluctance by analyzing these main obstacles. Judging by Dr. Wiedijk’s Formalizing 100 Theorems list, which gives an overview of the headway various proof systems have made in mathematics, Coq and Mizar are two of the most successful systems in use today (Wiedijk, 2007). I simultaneously formalized two fairly involved theorems in these two systems while I was at approximately the same level of familiarity with each. I kept track of my experiences with learning the systems and analyzed their comparative strengths and weaknesses. The analysis and summary of experiences should also give a general idea of the current state of computer-aided proof checking
Dependencies in Formal Mathematics: Applications and Extraction for Coq and Mizar
Two methods for extracting detailed formal dependencies from the Coq and
Mizar system are presented and compared. The methods are used for dependency
extraction from two large mathematical repositories: the Coq Repository at
Nijmegen and the Mizar Mathematical Library. Several applications of the
detailed dependency analysis are described and proposed. Motivated by the
different applications, we discuss the various kinds of dependencies that we
are interested in,and the suitability of various dependency extraction methods
- …