Results 21  30
of
61
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,
Unembedding DomainSpecific Languages
"... Higherorder abstract syntax provides a convenient way of embedding domainspecific languages, but is awkward to analyse and manipulate directly. We explore the boundaries of higherorder abstract syntax. Our key tool is the unembedding of embedded terms as de Bruijn terms, enabling intensional anal ..."
Abstract

Cited by 10 (2 self)
 Add to MetaCart
Higherorder abstract syntax provides a convenient way of embedding domainspecific languages, but is awkward to analyse and manipulate directly. We explore the boundaries of higherorder abstract syntax. Our key tool is the unembedding of embedded terms as de Bruijn terms, enabling intensional analysis. As part of our solution we present techniques for separating the definition of an embedded program from its interpretation, giving modular extensions of the embedded language, and different ways to encode the types of the embedded language.
A New Paradox in Type Theory
 Logic, Methodology and Philosophy of Science IX : Proceedings of the Ninth International Congress of Logic, Methodology, and Philosophy of Science
, 1994
"... this paper is to present a new paradox for Type Theory, which is a typetheoretic refinement of Reynolds' result [24] that there is no settheoretic model of polymorphism. We discuss then one application of this paradox, which shows unexpected connections between the principle of excluded middle and ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
this paper is to present a new paradox for Type Theory, which is a typetheoretic refinement of Reynolds' result [24] that there is no settheoretic model of polymorphism. We discuss then one application of this paradox, which shows unexpected connections between the principle of excluded middle and the axiom of description in impredicative Type Theories. 1 Minimal and Polymorphic HigherOrder Logic
The Quest Language and System
 Digital Equipment Corporation, Systems Research
, 1994
"... 2. System tutorial 3. The big picture 3.1. Kinds, types, and values 3.2. Signatures and bindings ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
2. System tutorial 3. The big picture 3.1. Kinds, types, and values 3.2. Signatures and bindings
The Open Calculus of Constructions: An Equational Type Theory with Dependent Types for Programming, Specification, and Interactive Theorem Proving
"... The open calculus of constructions integrates key features of MartinLöf's type theory, the calculus of constructions, Membership Equational Logic, and Rewriting Logic into a single uniform language. The two key ingredients are dependent function types and conditional rewriting modulo equational t ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
The open calculus of constructions integrates key features of MartinLöf's type theory, the calculus of constructions, Membership Equational Logic, and Rewriting Logic into a single uniform language. The two key ingredients are dependent function types and conditional rewriting modulo equational theories. We explore the open calculus of constructions as a uniform framework for programming, specification and interactive verification in an equational higherorder style. By having equational logic and rewriting logic as executable sublogics we preserve the advantages of a firstorder semantic and logical framework and especially target applications involving symbolic computation and symbolic execution of nondeterministic and concurrent systems.
ComputerAided Computing
 Mathematics of Program Construction '95
, 1995
"... Formal program design methods are most useful when supported with suitable mechanization. This need for mechanization has long been apparent, but there have been doubts whether verification technology could cope with the problems of scale and complexity. Though there is very little compelling eviden ..."
Abstract

Cited by 4 (0 self)
 Add to MetaCart
Formal program design methods are most useful when supported with suitable mechanization. This need for mechanization has long been apparent, but there have been doubts whether verification technology could cope with the problems of scale and complexity. Though there is very little compelling evidence either way at this point, several powerful mechanical verification systems are now available for experimentation. Using SRI's PVS as one representative example, we argue that the technology of mechanical verification is already quite effective. PVS derives its power from an integration of theorem proving with typechecking, decision procedures with interactive proof construction, and more recently, model checking with theorem proving. We discuss these individual aspects of PVS using examples, and motivate some of the challenges that lie ahead.
Program development through proof transformation
 CONTEMPORARY MATHEMATICS
, 1990
"... We present a methodology for deriving verified programs that combines theorem proving and proof transformation steps. It extends the paradigm employed in systems like NuPrl where a program is developed and verified through the proof of the specification in a constructive type theory. We illustrate ..."
Abstract

Cited by 4 (1 self)
 Add to MetaCart
We present a methodology for deriving verified programs that combines theorem proving and proof transformation steps. It extends the paradigm employed in systems like NuPrl where a program is developed and verified through the proof of the specification in a constructive type theory. We illustrate our methodology through an extended example  a derivation of Warshall's algorithm for graph reachability. We also outline how our framework supports the definition, implementation, and use of abstract data types.
A Formalisation Of Weak Normalisation (With Respect To Permutations) Of Sequent Calculus Proofs
, 1999
"... rule). This is also the case for NJ and LJ as defined in this formalisation. This is due to the particular nature of the logics in question, and does not necessarily generalise to other logics. In particular, a formalisation of linear logic would not work in this fashion, and a more complex variable ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
rule). This is also the case for NJ and LJ as defined in this formalisation. This is due to the particular nature of the logics in question, and does not necessarily generalise to other logics. In particular, a formalisation of linear logic would not work in this fashion, and a more complex variablereferencing mechanism would be required. See Section 6 for a further discussion of this problem. Other operations, such as substitutions (sub in Table 2) and weakening, require lift and drop operations as defined in [27] to ensure the correctness of the de Bruijn indexing.
ObjectLevel Substitution, Unification And Generalization In MetaLogic
, 1995
"... Metaprogramming in logic has had difficulty with a class of problems, which includes polymorphic type inferencing and KnuthBendix completion. At the core of this difficulty is that logic programming, in particular higherorder logic programming, is often too dependent on its inherent unification ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
Metaprogramming in logic has had difficulty with a class of problems, which includes polymorphic type inferencing and KnuthBendix completion. At the core of this difficulty is that logic programming, in particular higherorder logic programming, is often too dependent on its inherent unification and resolution algorithms in providing declarative formulations of objectlevel theories. To free metaprogramming in logic from this dependency, we provide logic programming formulations of substitution and unification on objectlevel expressions. This will provide a set of basic tools for metaprogramming in a higherorder logic programming language, which supports the use of higherorder abstract syntax. In particular, the techniques presented here can be used in a very simple metalanguage, the L restriction of Prolog.