Results 11  20
of
36
Proving Strong Normalization of CC by Modifying Realizability Semantics
 IN TYPES, VOLUME 806 OF LNCS
, 1994
"... ..."
Program Extraction in simplytyped Higher Order Logic
 Types for Proofs and Programs (TYPES 2002), LNCS 2646
, 2002
"... Based on a representation of primitive proof objects as  terms, which has been built into the theorem prover Isabelle recently, we propose a generic framework for program extraction. We show how this framework can be used to extract functional programs from proofs conducted in a constructive fr ..."
Abstract

Cited by 9 (2 self)
 Add to MetaCart
Based on a representation of primitive proof objects as  terms, which has been built into the theorem prover Isabelle recently, we propose a generic framework for program extraction. We show how this framework can be used to extract functional programs from proofs conducted in a constructive fragment of the object logic Isabelle/HOL. A characteristic feature of our implementation of program extraction is that it produces both a program and a correctness proof. Since the extracted program is available as a function within the logic, its correctness proof can be checked automatically inside Isabelle.
Verifying programs in the Calculus of Inductive Constructions
, 1997
"... . This paper deals with a particular approach to the verification of functional programs. A specification of a program can be represented by a logical formula [Con86, NPS90]. In a constructive framework, developing a program then corresponds to proving this formula. Given a specification and a progr ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
. This paper deals with a particular approach to the verification of functional programs. A specification of a program can be represented by a logical formula [Con86, NPS90]. In a constructive framework, developing a program then corresponds to proving this formula. Given a specification and a program, we focus on reconstructing a proof of the specification whose algorithmic contents corresponds to the given program. The best we can hope is to generate proof obligations on atomic parts of the program corresponding to logical properties to be verified. First, this paper studies a weak extraction of a program from a proof that keeps track of intermediate specifications. From such a program, we prove the determinism of retrieving proof obligations. Then, heuristic methods are proposed for retrieving the proof from a natural program containing only partial annotations. Finally, the implementation of this method as a tactic of the Coq proof assistant is presented. 1. Introduction A large p...
Ordinal Arithmetic: A Case Study for Rippling in a Higher Order Domain
 In TPHOLs’01, volume 2152 of LNCS
, 2001
"... This paper reports a case study in the use of proof planning in the context of higher order syntax. Rippling is a heuristic for guiding rewriting steps in induction that has been used successfully in proof planning inductive proofs using first order representations. Ordinal arithmetic provides a nat ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
This paper reports a case study in the use of proof planning in the context of higher order syntax. Rippling is a heuristic for guiding rewriting steps in induction that has been used successfully in proof planning inductive proofs using first order representations. Ordinal arithmetic provides a natural set of higher order examples on which transfinite induction may be attempted using rippling. Previously BoyerMoore style automation could not be applied to such domains. We demonstrate that a higherorder extension of the rippling heuristic is sufficient to plan such proofs automatically. Accordingly, ordinal arithmetic has been implemented in Clam, a higher order proof planning system for induction, and standard undergraduate text book problems have been successfully planned. We show the synthesis of a fixpoint for normal ordinal functions which demonstrates how our automation could be extended to produce more interesting results than the textbook examples tried so far.
Continuous semantics for strong normalization
 In CiE’05, volume 3526 of LNCS
, 2005
"... Abstract. We prove a general strong normalization theorem for higher type rewrite systems based on Tait's strong computability predicates and a strictly continuous domaintheoretic semantics. The theorem applies to extensions of G"odel's system T, but also to various forms of bar recursion for ..."
Abstract

Cited by 4 (2 self)
 Add to MetaCart
Abstract. We prove a general strong normalization theorem for higher type rewrite systems based on Tait's strong computability predicates and a strictly continuous domaintheoretic semantics. The theorem applies to extensions of G"odel's system T, but also to various forms of bar recursion for which strong normalization was hitherto unknown.
Proving Correctness of the Translation from MiniML to the CAM with the Coq Proof Development System
 with the Coq Proof Development System. Research report RR2536, INRIA, Rocquencourt
, 1995
"... In this article we show how we proved correctness of the translation from a small applicative language with recursive definitions (MiniML) to the Categorical abstract machine (CAM) using the Coq system. Our aim was to mechanise the proof of J. Despeyroux [10]. Like her, we use natural semantics to ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
In this article we show how we proved correctness of the translation from a small applicative language with recursive definitions (MiniML) to the Categorical abstract machine (CAM) using the Coq system. Our aim was to mechanise the proof of J. Despeyroux [10]. Like her, we use natural semantics to axiomatise the semantics of our languages. The axiomatisations of inferences systems and of the languages is nicely performed by the mechanism of inductive definitions in the Coq system. Unfortunately both the source and the target semantics involve nested structures that cannot be formalised inductively. We have overcome this problem by making some slight modifications of both the source and target semantics and show how the changes in the source and target semantics are related. For the remaining tranlation we explain how we can use the Coq system to formalize nonterminating programs and incorrect programs, objects that are impossible to explain with only the formalism of natural semantic...
Typechecking is Undecidable When 'Type' is a Type
, 1989
"... A function has a dependent type when the type of its result depends upon the value of its argument. The type o all types is the type of every type, including itself. In a typed Acalculus, these two features synergize in a conceptually clean and uniform way to yield enormous expressive power at very ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
A function has a dependent type when the type of its result depends upon the value of its argument. The type o all types is the type of every type, including itself. In a typed Acalculus, these two features synergize in a conceptually clean and uniform way to yield enormous expressive power at very little apparent cost. By reconstructing and analyzing a paradox due to Girard, we argue that there is no effective typechecking algorithm for such a language.
A Comparison of the Coq and HOL Proof Systems for Specifying Hardware
, 1997
"... Coq and HOL are proof systems based upon versions of higher order logic, which broadly follow the LCF theorem proving paradigm. However, Coq is based on a constructive logic, whereas HOL is based on classical higherorder logic. Both systems have been advocated for the specification and verification ..."
Abstract

Cited by 3 (2 self)
 Add to MetaCart
Coq and HOL are proof systems based upon versions of higher order logic, which broadly follow the LCF theorem proving paradigm. However, Coq is based on a constructive logic, whereas HOL is based on classical higherorder logic. Both systems have been advocated for the specification and verification of hardware. In this paper we describe a detailed comparison of the two approaches for specifying the structure and behaviour of hardware using these systems. The example used is the Fairisle 4 by 4 switching fabric : a real ATM network chip. We discuss the advantages and disadvantages of both the underlying logics and their particular implementations as embodied in the two proof systems. Different styles were used in the two specifications. We therefore also compare these two styles and note the extent to which their choice was determined by the logic, its implementation or personal choice of the specifier. 1 Introduction There currently exist a wide range of proof systems based on diffe...
The Coq Proof Assistant  Reference Manual Version 6.1
, 1997
"... : Coq is a proof assistant based on a higherorder logic allowing powerful definitions of functions. Coq V6.1 is available by anonymous ftp at ftp.inria.fr:/INRIA/Projects/coq/V6.1 and ftp.enslyon.fr:/pub/LIP/COQ/V6.1 Keywords: Coq, Proof Assistant, Formal Proofs, Calculus of Inductives Constru ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
: Coq is a proof assistant based on a higherorder logic allowing powerful definitions of functions. Coq V6.1 is available by anonymous ftp at ftp.inria.fr:/INRIA/Projects/coq/V6.1 and ftp.enslyon.fr:/pub/LIP/COQ/V6.1 Keywords: Coq, Proof Assistant, Formal Proofs, Calculus of Inductives Constructions (R'esum'e : tsvp) This research was partly supported by ESPRIT Basic Research Action "Types" and by the GDR "Programmation " cofinanced by MREPRC and CNRS. Unit'e de recherche INRIA Rocquencourt Domaine de Voluceau, Rocquencourt, BP 105, 78153 LE CHESNAY Cedex (France) T'el'ephone : (33 1) 39 63 55 11  T'el'ecopie : (33 1) 39 63 53 30 Manuel de r'ef'erence du syst`eme Coq version V6.1 R'esum'e : Coq est un syst`eme permettant le d'eveloppement et la v'erification de preuves formelles dans une logique d'ordre sup'erieure incluant un riche langage de d'efinitions de fonctions. Ce document constitue le manuel de r'ef'erence de la version V6.1 qui est distribu 'ee par ftp ...
Pure Type Systems with de Bruijn indices
"... Nowadays, type theory has many applications and is used in many different disciplines. Within computer science, logic and mathematics, there are many different type systems. They serve several purposes, and are formulated in various ways. A general framework called Pure Type Systems (PTSs for short) ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Nowadays, type theory has many applications and is used in many different disciplines. Within computer science, logic and mathematics, there are many different type systems. They serve several purposes, and are formulated in various ways. A general framework called Pure Type Systems (PTSs for short) has been introduced independently by Terlouw and Berardi in 1988 and 1989, in order to provide a unified formalism in which many type systems can be represented. In particular, PTSs allow the representation of the simple theory of types, the polymophic theory of types, the dependent theory of types and various other wellknown type systems such as the Edinburgh Logical Frameworks LF and the Automath system. Pure Type Systems are usually presented using variable names. In this article, we present a formulation of PTSs with de Bruijn indices. De Bruijn indices [6] avoid the problems caused by variable names during the implementation of type systems. We show that PTSs with variable names and PTSs with de Bruijn indices are isomorphic. This isomorphism enables us to answer questions about PTSs with de Bruijn indices including confluence, termination (strong normalisation) and safety (subject reduction).