Results 11  20
of
21
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 by i ..."
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 idea of spe ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
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 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
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
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...
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...
Abstraction and Refinement in Higher Order Logic
"... . We develop within higher order logic (HOL) a general and exible method of abstraction and renement, which specically addresses the problem of handling constraints. The method is based on an interpretation of rstorder Lax Logic in HOL, which can be seen as a modal extension of deliverables. It ..."
Abstract
 Add to MetaCart
. We develop within higher order logic (HOL) a general and exible method of abstraction and renement, which specically addresses the problem of handling constraints. The method is based on an interpretation of rstorder Lax Logic in HOL, which can be seen as a modal extension of deliverables. It provides a new technique for automating reasoning about behavioural constraints. We show how the method can be applied in several dierent tasks, for example to achieve a formal separation of the logical and timing aspects of hardware design, and to generate systematically timing constraints for a simple sequential device from a formal proof of its abstract behaviour. The method and all proofs in the paper have been implemented in Isabelle as a denitional extension of the HOL logic. We assume the reader is familiar with higher order logic but do not assume detailed knowledge of circuit design. 1
Machine Assisted Proofs for Generic Semantics to Compiler Transformation Correctness Theorems
"... This thesis investigates the issues involved in the creation of a “general theory of operational semantics ” in LEGO, a typetheoretic theorem proving environment implementing a constructionist logic. Such a general theory permits the ability to manipulate and reason about operational semantics both ..."
Abstract
 Add to MetaCart
This thesis investigates the issues involved in the creation of a “general theory of operational semantics ” in LEGO, a typetheoretic theorem proving environment implementing a constructionist logic. Such a general theory permits the ability to manipulate and reason about operational semantics both individually and as a class. The motivation for this lies in the studies of semantics directed compiler generation in which a set of generic semantics transforming functions can help convert arbitrary semantic definitions to abstract machines. Such transformations require correctness theorems that quantify over the class of operational semantics. In implementation terms this indicates the need to ensure both the class of operational semantics and the means of inferring results thereon remain at the theorem prover level. The endeavour of this thesis can be seen as assessing both the requirements that general theories of semantics impose on proof assistants and the efficacy of proof assistants in modelling such theories. Acknowledgements First and foremost I would like to thank Kevin Mitchell who supervised me for my first four years, supplying me with many helpful hints and constructive criticisms. He also bore with me at a period of my life when my mental health deteriorated for which I am eternally grateful. Secondly I would like to thank Stuart Anderson an ever present of my life at the University since I first arrived in 1988, for taking over the supervision of my work when it was seemingly near its conclusion. The help and encouragement I received meant I was able to (finally!) complete this thesis. Special mention must go to Rod Burstall, my mentor through the entirety of my postgraduate studies. My all too brief encounters with him lifted my spirits at a time when they were desperately in need of a boost. I would also like to especially thank Thomas Kleymann (formerly Schreiber) for the many times he aided me in my Lego miseries. I also thank James Hugh McKinna, Randy Pollack and other members of the Lego club for their helpful ideas, various helpful officemates
European Commission Title page INFORMATION SOCIETY TECHNOLOGIES
"... Related to other Contract no.: (to be completed by Commission) ..."