Results 11  20
of
25
Verifying Properties of Module Construction in Type Theory
 In Proc. MFCS'93, volume 711 of LNCS
, 1993
"... This paper presents a comparison between algebraic specificationsinthelarge and a type theoretical formulation of modular specifications, called deliverables. It is shown that the laws of module algebra can be translated to laws about deliverables which can be proved correct in type theory. The a ..."
Abstract

Cited by 6 (1 self)
 Add to MetaCart
This paper presents a comparison between algebraic specificationsinthelarge and a type theoretical formulation of modular specifications, called deliverables. It is shown that the laws of module algebra can be translated to laws about deliverables which can be proved correct in type theory. The adequacy of the Extended Calculus of Constructions as a possible implementation of type theory is discussed and it is explained how the reformulation of the laws is influenced by this choice.
Cut Formulae and Logic Programming
"... . In this paper we present a mechanism to define names for proofwitnesses of formulae and thus to use Gentzen's cutrule in logic programming. We consider a program to be a set of logical formulae together with a list of such definitions. Occurrences of the defined names guide the proofsearch ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
. In this paper we present a mechanism to define names for proofwitnesses of formulae and thus to use Gentzen's cutrule in logic programming. We consider a program to be a set of logical formulae together with a list of such definitions. Occurrences of the defined names guide the proofsearch by indicating when an instance of the cutrule should be attempted. By using the cutrule there are proofs that can be made dramatically shorter. We explain how this idea of using the cutrule can be applied to the logic of hereditary Harrop formulae. 1 Introduction The computation mechanisms both for logic and for functional programming are searches for cutfree proofs. First, in pure logic programming the achievement of a goal G w.r.t. a program P can be seen 1 as the search for a proof in Gentzen's intuitionistic sequent calculus LJ [Gen69], of the sequent P ) G, that by Gentzen's cutelimination theorem can be cutfree [Bee89], [Mil90]; a term found as a witness to a proof contains among...
A specification structure for deadlockfreedom of synchronous processes
 TCS
, 1999
"... Many different notions of "program property", and many different methods of verifying such properties, arise naturally in programming. We present a general framework of Specification Structures for combining different notions and methods in a coherent fashion. We then apply the ide ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
(Show Context)
Many different notions of &quot;program property&quot;, and many different methods of verifying such properties, arise naturally in programming. We present a general framework of Specification Structures for combining different notions and methods in a coherent fashion. We then apply the idea of specification structures to concurrency in the setting of Interaction Categories. As a specific example, a certain specification
Refining Refinement Types
 University of Durham
, 1997
"... We develop a theory of program specification using the notion of refinement type. This provides a notion of structured specification, useful for verification and program development. We axiomatise the satisfaction of specifications by programs as a generalised typing relation and give rules for refi ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
We develop a theory of program specification using the notion of refinement type. This provides a notion of structured specification, useful for verification and program development. We axiomatise the satisfaction of specifications by programs as a generalised typing relation and give rules for refining specifications. A per semantics based on Henkin models is given, for which the system is proven to be sound and complete.
A Constructive Type System to Integrate Logic and Functional Programming
 CADE Workshop on Proofsearch in Typetheoretic Languages
, 1994
"... In this work we present a type system called HH def that extends the theory of simply typed hereditary Harrop formulae [Mil90] with definitions and strong \Sigmatypes. The use of definitions permits the construction of clearer programs and of shorter proofs by using a rule (the def rule) similar ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
In this work we present a type system called HH def that extends the theory of simply typed hereditary Harrop formulae [Mil90] with definitions and strong \Sigmatypes. The use of definitions permits the construction of clearer programs and of shorter proofs by using a rule (the def rule) similar to Gentzen's cut rule. Proofsearch for HH def is performed in a goaldirected manner with occurrences of defined constants in a goal triggering instances of the def rule. Such a search procedure is shown to be complete for HH def . 1 Introduction The motivation for development of the calculus HH def is to provide a logical foundation on which to develop a programming language that integrates logic and functional programming. This work develops the ideas outlined in [Pin94], which are intended to be a first step towards a prooftheoretic characterisation of such programming. The central idea is that the execution mechanisms both for logic and for functional programming can be seen as ...
Towards A Theory Of Specifications, Programs And Proofs
 In Proceedings of the 7th. Nordic Workshop on Programming Theory, PMG report 86, Goteborg
, 1995
"... this paper we investigate a theory in which the notion of program as method of computation is singled out. As a first step towards a theory of specifications, we separate the notions of datatype and proposition and define a calculus for program verification, where programs can be written and then pr ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
(Show Context)
this paper we investigate a theory in which the notion of program as method of computation is singled out. As a first step towards a theory of specifications, we separate the notions of datatype and proposition and define a calculus for program verification, where programs can be written and then proved correct. On top of this calculus, the theory of specifications is built. A specification of a problem consists of a pair: a type for a program (datatype) and a predicate on the program. Such a specification is implemented by constructing a program of the given datatype and proving that the predicate holds for that program. We are interested in a calculus of program derivation, i.e. a calculus with rules that allow the simultaneous construction of the components of implementations, rather than the separate construction of programs and proofs. The theory of specifications is built in such a way that the "program extraction" process is immediate. We present the main ideas of the theory of specifications, and show how rules for constructing implementations to specifications can be formulated and used. We do this by showing a programming example: we solve the problem of dividing a natural number by two. As a motivation to the theory of specifications, we present three versions of the same solution, each one expressed using a different logic. The first solution is developed in MartinLof's set theory. For the second solution, we introduce the calculus for program verification, where sets and propositions are no longer identified, and the notion of set is split into two: the datatypes and the propositions. We write a program performing the desired task using the datatypes (as in an ordinary functional programming language), and then we use the logic of propositions as an extern...
European Commission Title page INFORMATION SOCIETY TECHNOLOGIES
"... Related to other Contract no.: (to be completed by Commission) ..."
(Show Context)
Chapter 6 Epigram Reloaded:
"... Abstract Epigram, a functional programming environment with dependent types, interacts with the programmer via an extensible high level language of programming constructs which elaborates incrementally into Epigram’s Type Theory, ETT, a rather spartan λcalculus with dependent types, playing the ro ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract Epigram, a functional programming environment with dependent types, interacts with the programmer via an extensible high level language of programming constructs which elaborates incrementally into Epigram’s Type Theory, ETT, a rather spartan λcalculus with dependent types, playing the rôle of a ‘core language’. We implement a standalone typechecker for ETT in Haskell, allowing us to reload existing libraries into the system safely without reelaboration. Rather than adopting a rewriting approach to computation, we use a glued representation of values, pairing firstorder syntax with a functional representation of its semantics, computed lazily. This approach separates βreduction from βηconversion. We consequently can not only allow the ηlaws for λabstractions and pairs, but also collapse each of the unit and empty types. Epigram2 [22, 5] is at the same time a functional programming language with dependent types and a typedriven, interactive program development system. Its type system is strong enough to express a wide range of program properties, from
Chapter 1 Epigram Reloaded:
"... Abstract Epigram, a functional programming environment with dependent types, interacts with the programmer via an extensible high level language of programming constructs which elaborates incrementally into Epigram’s Type Theory, ETT, a rather spartan λcalculus with dependent types, playing the rôl ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract Epigram, a functional programming environment with dependent types, interacts with the programmer via an extensible high level language of programming constructs which elaborates incrementally into Epigram’s Type Theory, ETT, a rather spartan λcalculus with dependent types, playing the rôle of a ‘core language’. We implement a standalone typechecker for ETT in Haskell, allowing us to reload existing libraries into the system safely without reelaboration. Rather than adopting a rewriting approach to computation, we use a glued representation of values, pairing firstorder syntax with a functional representation of its semantics, computed lazily. This approach separates βreduction from βηconversion. We consequently can not only allow the ηlaws for λabstractions and pairs, but also collapse each of the unit and empty types. 1.1
Algebraic System Specification and Development: Survey and Annotated Bibliography  Second Edition 
, 1997
"... Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.5.4 Special Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.6 Semantics of Programming Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.6.1 Semantics of Ada . . . ..."
Abstract
 Add to MetaCart
Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.5.4 Special Approaches . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.6 Semantics of Programming Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.6.1 Semantics of Ada . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.6.2 Action Semantics . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 4.7 Specification Languages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.7.1 Early Algebraic Specification Languages . . . . . . . . . . . . . . . . . . . . . . . . 53 4.7.2 Recent Algebraic Specification Languages . . . . . . . . . . . . . . . . . . . . . . . 55 4.7.3 The Common Framework Initiative. . . . . . . . . . . . . . . . . . . . . . . . . . . 56 5 Methodology 57 5.1 Development Phases . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.1.1 Applica...