Results 1 
8 of
8
Le Fun: Logic, equations, and Functions
 In Proc. 4th IEEE Internat. Symposium on Logic Programming
, 1987
"... Abstract † We introduce a new paradigm for the integration of functional and logic programming. Unlike most current research, our approach is not based on extending unification to generalpurpose equation solving. Rather, we propose a computation delaying mechanism called residuation. This allows a ..."
Abstract

Cited by 44 (1 self)
 Add to MetaCart
Abstract † We introduce a new paradigm for the integration of functional and logic programming. Unlike most current research, our approach is not based on extending unification to generalpurpose equation solving. Rather, we propose a computation delaying mechanism called residuation. This allows a clear distinction between functional evaluation and logical deduction. The former is based on the λcalculus, and the latter on Horn clause resolution. In clear contrast with equationsolving approaches, our model supports higherorder function evaluation and efficient compilation of both functional and logic programming expressions, without being plagued by nondeterministic termrewriting. In addition, residuation lends itself naturally to process synchronization and constrained search. Besides unification (equations), other residuations may be any grounddecidable goal, such as mutual exclusion (inequations), and comparisons (inequalities). We describe an implementation of the residuation paradigm as a prototype language called Le Fun—Logic, equations, and Functions.
Induction principles formalized in the Calculus of Constructions
 Programming of Future Generation Computers. Elsevier Science
, 1988
"... The Calculus of Constructions is a higherorder formalism for writing constructive proofs in a natural deduction style, inspired from work of de Bruijn [2, 3], Girard [12], MartinLöf [14] and Scott [18]. The calculus and its syntactic theory were presented in Coquand’s thesis [7], and an implementa ..."
Abstract

Cited by 10 (4 self)
 Add to MetaCart
The Calculus of Constructions is a higherorder formalism for writing constructive proofs in a natural deduction style, inspired from work of de Bruijn [2, 3], Girard [12], MartinLöf [14] and Scott [18]. The calculus and its syntactic theory were presented in Coquand’s thesis [7], and an implementation by the author was used to mechanically verify a substantial number of proofs demonstrating the power of expression of the formalism [9]. The Calculus of Constructions is proposed as a foundation for the design of programming environments where programs are developed consistently with formal specifications. The current paper shows how to define inductive concepts in the calculus. A very general induction schema is obtained by postulating all elements of the type of interest to belong to the standard interpretation associated with a predicate map. This is similar to the treatment of D. Park [16], but the power of expression of the formalism permits a very direct treatment, in a language that is formalized enough to be actually implemented on computer. Special instances of the induction schema specialize to Nœtherian induction and Structural induction over any algebraic type. Computational Induction is treated in an axiomatization of Domain Theory in Constructions. It is argued that the resulting principle is more powerful than LCF’s [13], since the restriction on admissibility is expressible in the object language. Notations We assume the reader is familiar with the Calculus of Constructions, as presented in [7, 9, 10, 11]. More precisely, we shall use in the present paper the extended system defined in Section 11 of [8]. The notation [x: A]B stands for the algorithm with formal parameter x of type A and body B, whereas (x: A)B stands for the product of types B indexed by x ranging over A. Thus square brackets are used for λabstraction, whereas parentheses stand for product formation. The atom P rop is the type of logical propositions. The atom T ype stands for the first level in the predicative hierarchy of types (and thus we have P rop: T ype). We abbreviate (x: A)B into A → B whenever x does not occur in B. When B: P rop, we think of (x: A)B as the universally quantified proposition ∀x: A·B. When x does not occur in B and A: P rop,
On Computational Interpretations of the Modal Logic S4 I. Cut Elimination
 Institut fur Logik, Komplexitat und Deduktionssysteme, Universitat
, 1996
"... A language of constructions for minimal logic is the calculus, where cutelimination is encoded as fireduction. We examine corresponding languages for the minimal version of the modal logic S4, with notions of reduction that encodes cutelimination for the corresponding sequent system. It turns o ..."
Abstract

Cited by 8 (6 self)
 Add to MetaCart
A language of constructions for minimal logic is the calculus, where cutelimination is encoded as fireduction. We examine corresponding languages for the minimal version of the modal logic S4, with notions of reduction that encodes cutelimination for the corresponding sequent system. It turns out that a natural interpretation of the latter constructions is a calculus extended by an idealized version of Lisp's eval and quote constructs. In this first part, we analyze how cutelimination works in the standard sequent system for minimal S4, and where problems arise. Bierman and De Paiva's proposal is a natural language of constructions for this logic, but their calculus lacks a few rules that are essential to eliminate all cuts. The S4  calculus, namely Bierman and De Paiva's proposal extended with all needed rules, is confluent. There is a polynomialtime algorithm to compute principal typings of given terms, or answer that the given terms are not typable. The typed S4calculus te...
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 ...
Variants of the Basic Calculus of Constructions
, 2004
"... In this paper, a number of different versions of the basic calculus of constructions that have appeared in the literature are compared and the exact relationships between them are determined. The biggest differences between versions are those between the original version of Coquand and the version i ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
In this paper, a number of different versions of the basic calculus of constructions that have appeared in the literature are compared and the exact relationships between them are determined. The biggest differences between versions are those between the original version of Coquand and the version in early papers on the subject by Seldin. None of these results is very deep, but it seems useful to collect them in one place.
Abstract Concoqtion: Mixing Indexed Types and HindleyMilner Type Inference
"... This paper addresses the question of how to extend OCaml’s HindleyMilner type system with types indexed by logical propositions and proofs of the Coq theorem prover, thereby providing an expressive and extensible mechanism for ensuring finegrained program invariants. We propose adopting the approa ..."
Abstract
 Add to MetaCart
This paper addresses the question of how to extend OCaml’s HindleyMilner type system with types indexed by logical propositions and proofs of the Coq theorem prover, thereby providing an expressive and extensible mechanism for ensuring finegrained program invariants. We propose adopting the approached used by Shao et al. for certified binaries. This approach maintains a phase distinction between the computational and logical languages, thereby limiting effects and nontermination to the computational language, and maintaining the decidability of the type system. The extension subsumes language features such as impredicative firstclass (higherrank) polymorphism and type operators, that are notoriously difficult to integrate with the HindleyMilner style of type inference that is used in OCaml. We make the observation that these features can be more easily integrated with type inference if the inference algorithm is free to adapt the order in which it solves typing constraints to each program. To this end we define a novel “orderfree ” type inference algorithm. The key enabling technology is a graph representation of constraints and a constraint solver that performs HindleyMilner inference with just three graph rewrite rules.
Abstract Concoqtion: Mixing Indexed Types and HindleyMilner Type Inference
"... This paper addresses the question of how to extend OCaml’s HindleyMilner type system with types indexed by logical propositions and proofs of the Coq theorem prover, thereby providing an expressive and extensible mechanism for ensuring finegrained program invariants. We propose adopting the approa ..."
Abstract
 Add to MetaCart
This paper addresses the question of how to extend OCaml’s HindleyMilner type system with types indexed by logical propositions and proofs of the Coq theorem prover, thereby providing an expressive and extensible mechanism for ensuring finegrained program invariants. We propose adopting the approached used by Shao et al. for certified binaries. This approach maintains a phase distinction between the computational and logical languages, thereby limiting effects and nontermination to the computational language, and maintaining the decidability of the type system. The extension subsumes language features such as impredicative firstclass (higherrank) polymorphism and type operators, that are notoriously difficult to integrate with the HindleyMilner style of type inference that is used in OCaml. We make the observation that these features can be more easily integrated with type inference if the inference algorithm is free to adapt the order in which it solves typing constraints to each program. To this end we define a novel “orderfree ” type inference algorithm. The key enabling technology is a graph representation of constraints and a constraint solver that performs HindleyMilner inference with just three graph rewrite rules.
The Coq Proof Assistant  Reference Manual V 5.10
, 1995
"... ion All Axiom Begin Cd Chapter Check CheckGuard CoFixpoint Compute Defined Definition Drop Elimination End Eval Explain Extraction Fact Fixpoint Focus for Go Goal Hint Hypothesis Immediate Induction Inductive Infix Inspect Lemma Let Local Minimality ML Module Modules Mutual Node Opaque Parameter Par ..."
Abstract
 Add to MetaCart
ion All Axiom Begin Cd Chapter Check CheckGuard CoFixpoint Compute Defined Definition Drop Elimination End Eval Explain Extraction Fact Fixpoint Focus for Go Goal Hint Hypothesis Immediate Induction Inductive Infix Inspect Lemma Let Local Minimality ML Module Modules Mutual Node Opaque Parameter Parameters Print Proofs Prop Pwd Qed Remark Require Restart Resume Save Scheme Script Search Section Set Show Silent States Suspend Syntactic Theorem Token Transparent Tree Type TypeSet Undo Unfocus Variable Variables Write Other keywords and user's tokens The following sequences of characters are also keywords:  : := = ? ?? !? !! ! ? ; # * , ? @ :: / ! You can add new tokens with the command Token (see section 5.7.4). New tokens must be sequences, without blanks, of characters taken from the following list: ! ? / "  + = ; ,  ! @ # % & ? * : ~ $ a..z A..Z ' 0..9 that do not start with a character from $ a..z A..Z ' 0..9 Lexical ambiguities are resolved according to the "longest m...