Results 1  10
of
61
How to make ad hoc proof automation less ad hoc
 In ICFP
, 2011
"... Most interactive theorem provers provide support for some form of usercustomizable proof automation. In a number of popular systems, such as Coq and Isabelle, this automation is achieved primarily through tactics, which are programmed in a separate language from that of the prover’s base logic. Whi ..."
Abstract

Cited by 28 (7 self)
 Add to MetaCart
(Show Context)
Most interactive theorem provers provide support for some form of usercustomizable proof automation. In a number of popular systems, such as Coq and Isabelle, this automation is achieved primarily through tactics, which are programmed in a separate language from that of the prover’s base logic. While tactics are clearly useful in practice, they can be difficult to maintain and compose because, unlike lemmas, their behavior cannot be specified within the expressive type system of the prover itself. We propose a novel approach to proof automation in Coq that allows the user to specify the behavior of custom automated routines in terms of Coq’s own type system. Our approach involves a sophisticated application of Coq’s canonical structures, which generalize Haskell type classes and facilitate a flexible style of dependentlytyped logic programming. Specifically, just as Haskell type classes are used to infer the canonical implementation of an overloaded term at a given type, canonical structures can be used to infer the canonical proof of an overloaded lemma for a given instantiation of its parameters. We present a series of design patterns for canonical structure programming that enable one to carefully and predictably coax Coq’s type inference engine into triggering the execution of usersupplied algorithms during unification, and we illustrate these patterns through several realistic examples drawn from Hoare Type Theory. We assume no prior knowledge of Coq and describe the relevant aspects of Coq type inference from first principles.
An introduction to small scale reflection in Coq
 Journal of Formalized Reasoning
"... Georges Gonthier, Assia Mahboubi. An introduction to small scale reflection in Coq. Journal ..."
Abstract

Cited by 19 (7 self)
 Add to MetaCart
Georges Gonthier, Assia Mahboubi. An introduction to small scale reflection in Coq. Journal
Floatingpoint arithmetic in the Coq system
"... The process of proving some mathematical theorems can be greatly reduced by relying on numericallyintensive computations with a certified arithmetic. This article presents a formalization of floatingpoint arithmetic that makes it possible to efficiently compute inside the proofs of the Coq system. T ..."
Abstract

Cited by 11 (0 self)
 Add to MetaCart
(Show Context)
The process of proving some mathematical theorems can be greatly reduced by relying on numericallyintensive computations with a certified arithmetic. This article presents a formalization of floatingpoint arithmetic that makes it possible to efficiently compute inside the proofs of the Coq system. This certified library is a multiradix and multiprecision implementation free from underflow and overflow. It provides the basic arithmetic operators and a few elementary functions. 1
Formal Verification of Coalescing GraphColoring Register Allocation
, 2010
"... Iterated Register Coalescing (IRC) is a widely used heuristic for performing register allocation via graph coloring. Many implementations in existing compilers follow (more or less faithfully) the imperative algorithm published in 1996. Several mistakes have been found in some of these implementati ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
(Show Context)
Iterated Register Coalescing (IRC) is a widely used heuristic for performing register allocation via graph coloring. Many implementations in existing compilers follow (more or less faithfully) the imperative algorithm published in 1996. Several mistakes have been found in some of these implementations. In this paper, we present a formal verification (in Coq) of the whole IRC algorithm. We detail a specification that can be used as a reference for IRC. We also define the theory of registerinterference graphs; we implement a purely functional version of the IRC algorithm, and we prove the total correctness of our implementation. The automatic extraction of our IRC algorithm into Caml yields a program with competitive performance. This work has been integrated into the CompCert verified compiler.
Some considerations on the usability of Interactive Provers
"... Abstract. In spite of the remarkable achievements recently obtained in the field of mechanization of formal reasoning, the overall usability of interactive provers does not seem to be sensibly improved since the advent of the “second generation ” of systems, in the mid of the eighties. We try to ana ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
(Show Context)
Abstract. In spite of the remarkable achievements recently obtained in the field of mechanization of formal reasoning, the overall usability of interactive provers does not seem to be sensibly improved since the advent of the “second generation ” of systems, in the mid of the eighties. We try to analyze the reasons of such a slow progress, pointing out the main problems and suggesting some possible research directions. 1
Social Processes, Program Verification and All That
 UNDER CONSIDERATION FOR PUBLICATION IN MATH. STRUCT. IN COMP. SCIENCE
, 2009
"... ... mostly motivating their position by an analogy with proofs in mathematics, and in particular with the impracticality of a strictly formalist approach to this discipline. The recent, impressive achievements in the field of interactive theorem proving provide an interesting ground for a critical r ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
... mostly motivating their position by an analogy with proofs in mathematics, and in particular with the impracticality of a strictly formalist approach to this discipline. The recent, impressive achievements in the field of interactive theorem proving provide an interesting ground for a critical revisiting of those theses. We believe that the social nature of proof and program development is uncontroversial and ineluctable but formal verification is not antithetical to it. Formal verification should strive not only to cope, but to ease and enhance the collaborative, organic nature of this process, eventually helping to master the growing complexity of scientific knowledge.
Recycling Proof Patterns in Coq: Case Studies
 Journal Mathematics in Computer Science, accepted
, 2014
"... Abstract. Development of Interactive Theorem Provers has led to the creation of big libraries and varied infrastructures for formal proofs. However, despite (or perhaps due to) their sophistication, the reuse of libraries by nonexperts or across domains is a challenge. In this paper, we provide de ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
(Show Context)
Abstract. Development of Interactive Theorem Provers has led to the creation of big libraries and varied infrastructures for formal proofs. However, despite (or perhaps due to) their sophistication, the reuse of libraries by nonexperts or across domains is a challenge. In this paper, we provide detailed case studies and evaluate the machinelearning tool ML4PG built to interactively datamine the electronic libraries of proofs, and to provide user guidance on the basis of proof patterns found in the existing libraries.
Fingerprint Databases for Theorems
, 2013
"... “Fingerprint, in the anatomical sense, is a mark made by the pattern of ridges on the pad of a human finger. The term has been extended by metaphor to anything that can uniquely distinguish a person or object from another ” [26]. S uppose thatM is a mathematician and that M has just proved theorem T ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
(Show Context)
“Fingerprint, in the anatomical sense, is a mark made by the pattern of ridges on the pad of a human finger. The term has been extended by metaphor to anything that can uniquely distinguish a person or object from another ” [26]. S uppose thatM is a mathematician and that M has just proved theorem T. How isM to know if her result is truly new, or if T (or perhaps some equivalent reformulation of T) already exists in the literature? In general, answering this question is a nontrivial feat, and mistakes sometimes occur. Certain mathematical results have canonical representations, or fingerprints, and some families of fingerprints have been collected into searchable databases. If T is such a theorem, then M ’s search will be greatly simplified. Note that the searchable nature of a database is important here. An analogue of “alphabetical order ” does not exist for all structures, and so it is important that M be able to query the fingerprint of T instead of needing to browse through all existing catalogued results. Sara C. Billey is professor of mathematics at the University of Washington in Seattle. Her email address is
Exact bounds for distributed graph colouring
, 2011
"... Abstract. We prove exact bounds on the time complexity of distributed graph colouring. If we are given a directed path that is properly coloured with n colours, by prior work it is known that we can find a proper 3colouring in 12 log ∗(n) ± O(1) communication rounds. We close the gap between upper ..."
Abstract

Cited by 2 (2 self)
 Add to MetaCart
Abstract. We prove exact bounds on the time complexity of distributed graph colouring. If we are given a directed path that is properly coloured with n colours, by prior work it is known that we can find a proper 3colouring in 12 log ∗(n) ± O(1) communication rounds. We close the gap between upper and lower bounds: we show that for infinitely many n the time complexity is precisely 12 log ∗ n communication rounds. ar X iv
Binary pattern tile set synthesis is NPhard?
"... Abstract. We solve an open problem, stated in 2008, about the feasibility of designing efficient algorithmic selfassembling systems which produce 2dimensional colored patterns. More precisely, we show that the problem of finding the smallest tile assembly system which will selfassemble an input ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
(Show Context)
Abstract. We solve an open problem, stated in 2008, about the feasibility of designing efficient algorithmic selfassembling systems which produce 2dimensional colored patterns. More precisely, we show that the problem of finding the smallest tile assembly system which will selfassemble an input pattern with 2 colors (i.e., 2Pats) is NPhard. One crucial lemma makes use of a computerassisted proof, which is a relatively novel but increasingly utilized paradigm for deriving proofs for complex mathematical problems. This tool is especially powerful for attacking combinatorial problems, as exemplified by the proof for the four color theorem and the recent important advance on the Erdős discrepancy problem using computer programs. In this paper, these techniques will be brought to a new order of magnitude, computational tasks corresponding to one CPUyear. We massively parallelize our program, and provide a full proof of its correctness. Its source code is freely available online. 1