Results 11  20
of
22
Subtyping Parametric and Dependent Types
, 1996
"... A type may be a subtype of another type. The intuition about this should be clear: a type is a type of data, some data then may live in a given type as well as in a larger one, up to a simple "transformation". The advantage is that those data may be "seen" or used in different c ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
A type may be a subtype of another type. The intuition about this should be clear: a type is a type of data, some data then may live in a given type as well as in a larger one, up to a simple "transformation". The advantage is that those data may be "seen" or used in different contexts. The formal treatment of this intuition, though, is not so obvious, in particular when data may be programs. In Object Oriented Programming, where the issue of "reusing data" is crucial, there has been a longlasting discussion on "inheritance" and ... little agreement. There are several ways to understand and formalize inheritance, which depend on the specific programming environment used. Since early work of Cardelli and Wegner, there has been a large amount of papers developing several possible functional approaches to inheritance, as subtyping. Indeed, functional subtyping captures only one point of view on inheritance, yet this notion largely motivated most of that work. Whethe
Proof reutilization in MartinLof's logical framework extended with record types and subtyping
, 2000
"... ..."
doi:10.1017/S0960129505004822 Printed in the United Kingdom Modelling general recursion in type theory
, 2003
"... Constructive type theory is an expressive programming language in which both algorithms and proofs can be represented. A limitation of constructive type theory as a programming language is that only terminating programs can be defined in it. Hence, general recursive algorithms have no direct formali ..."
Abstract
 Add to MetaCart
Constructive type theory is an expressive programming language in which both algorithms and proofs can be represented. A limitation of constructive type theory as a programming language is that only terminating programs can be defined in it. Hence, general recursive algorithms have no direct formalisation in type theory since they contain recursive calls that satisfy no syntactic condition guaranteeing termination. In this work, we present a method to formalise general recursive algorithms in type theory. Given a general recursive algorithm, our method is to define an inductive specialpurpose accessibility predicate that characterises the inputs on which the algorithm terminates. The typetheoretic version of the algorithm is then defined by structural recursion on the proof that the input values satisfy this predicate. The method separates the computational and logical parts of the definitions and thus the resulting typetheoretic algorithms are clear, compact and easy to understand. They are as simple as their equivalents in a functional programming language, where there is no restriction on recursive calls. Here, we give a formal definition of the method and discuss its power and its limitations. 1.
An experimental support system for formal mathematical reasoning
"... Abstract. Requirements for tools which support the creation and the intelligible presentation of formal deductions are investigated. They are contrasted with requirements which emphasize the interactive construction of correct proofs. As an example, the design and the implementation of a set of supp ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. Requirements for tools which support the creation and the intelligible presentation of formal deductions are investigated. They are contrasted with requirements which emphasize the interactive construction of correct proofs. As an example, the design and the implementation of a set of support tools for Deva is described. Deva isatyped functional language and has been used in a number of casestudies on formal program development. The use of this toolset is illustrated by impressions of a working session.
Ontology based design of surveillance systems with NUT
, 2000
"... This paper presents ontologybased programming using the NUT language as a notation for semantics of domain knowledge. The speci cation method and problem solving techniques are demonstrated on an example of modeling and management of a radar surveillance system in order to nd optimal disposition a ..."
Abstract
 Add to MetaCart
(Show Context)
This paper presents ontologybased programming using the NUT language as a notation for semantics of domain knowledge. The speci cation method and problem solving techniques are demonstrated on an example of modeling and management of a radar surveillance system in order to nd optimal disposition and conguration of equipment. Structural synthesis of programs { a technique essential for the domain knowledge handling is briey discussed. Keywords: ontology based programmining, structural synthesis of programs, visual programming, radar surveillance modeling. 1 Introduction The intelligent behavior of knowledgebased systems depends on the processing of large numbers of domain propositions organized into a knowledge base. The need for systems to store thousands of domain facts and to reason about those facts to solve complex domain tasks requires major advances in software engineering and software architecture. The rulebased approach is often taken as a suitable framework of cons...
Dependent Type System with Subtyping  Type Level Transitivity Elimination
, 1996
"... Dependent type systems have been the basis of many proof development enviroments. In [AC96], a system P is proposed as a subtyping extension of the dependent type system P[Bar92] (also called \Pi[Dow95]). P has nice metatheoretic properties including subject reduction and decidability, but transit ..."
Abstract
 Add to MetaCart
Dependent type systems have been the basis of many proof development enviroments. In [AC96], a system P is proposed as a subtyping extension of the dependent type system P[Bar92] (also called \Pi[Dow95]). P has nice metatheoretic properties including subject reduction and decidability, but transitivity elimination is restricted to the fi 2 normalized types. In this report, we propose a system \Pi , which is equivalent to P , but it has type level transitivity eliminatioin property. This feature distinguishes our approach from the existing subtyping systems with reduction relations in types. e.g. P[AC96], F ! [SP94], F ! [Com94], where transitivity elimination only holds for normalized types. Metatheoretic properties including subject reduction and decidability are established. The system is shown to be equivalent with P in typing, kinding and context formation. The type checking algorithm is more clear and efficient than P . The technique is suitable for future extensions and...
Subtyping Parametric and Dependent Types  An introduction
, 1996
"... A type may be a subtype of another type. The intuition about this should be clear: a type is a type of data, some data then may live in a given type as well as in a larger one, up to a simple "transformation". The advantage is that those data may be "seen" or used in different ..."
Abstract
 Add to MetaCart
A type may be a subtype of another type. The intuition about this should be clear: a type is a type of data, some data then may live in a given type as well as in a larger one, up to a simple "transformation". The advantage is that those data may be "seen" or used in different contexts. The formal treatment of this intuition, though, is not so obvious, in particular when data may be programs. In Object Oriented Programming, where the issue of "reusing data" is crucial, there has been a longlasting discussion on "inheritance" and ... little agreement. There are several ways to understand and formalize inheritance, which depend on the specific programming environment used. Since early work of Cardelli and Wegner, there has been a large amount of papers developing several possible functional approaches to inheritance, as subtyping. Indeed, functional subtyping captures only one point of view on inheritance, yet this notion largely motivated most of that work. Whethe
Generalised Simultaneous InductiveRecursive Definitions and their Application to Programming in Type Theory
"... In this work we present a generalisation of Dybjer's schema for simultaneous inductiverecursive definitions for the cases where we have several mutually recursive predicates defined simultaneously with several functions which, in turn, are defined by recursion on those predicates. ..."
Abstract
 Add to MetaCart
In this work we present a generalisation of Dybjer's schema for simultaneous inductiverecursive definitions for the cases where we have several mutually recursive predicates defined simultaneously with several functions which, in turn, are defined by recursion on those predicates.
unknown title
, 2000
"... Neil Leslie asserts his moral right to be identified as the author of this work. cfl Neil Leslie Abstract We explain how to program with continuations in MartinL "of's theory of types (MLTT). MLTT is a theory designed to formalize constructive mathematics. By appealing to the Curry ..."
Abstract
 Add to MetaCart
(Show Context)
Neil Leslie asserts his moral right to be identified as the author of this work. cfl Neil Leslie Abstract We explain how to program with continuations in MartinL &quot;of's theory of types (MLTT). MLTT is a theory designed to formalize constructive mathematics. By appealing to the CurryHoward `propositions as types ' analogy, and to the BrouwerHeytingKolmogorov interpretation of intuitionistic logic we can treat MLTT as a framework for the specification and derivation of correct functional programs. However, programming in MLTT has two weaknesses: ffl we are limited in the functions that we can naturally express; ffl the functions that we do write naturally are often inefficient. Programming with continuations allows us partially to address these problems. The continuationpassing programming style is known to offer a number of advantages to the functional programmer. We can also observe a relationship between continuation passing and type lifting in categorial grammar. We present computation rules which allow us to use continuations with inductivelydefined types, and with types not presented inductively. We justify the new elimination rules using the usual prooftheoretic semantics. We show that the new rules preserve the consistency of the theory. We show how to use wellorderings to encode continuationpassing operators for inductively defined types. Acknowledgements An earlier version of some of the material in Chapter 6 appeared as [70]. I would like to thank: ffl Peter Kay of Massey University's Albany campus, and Steve Reeves of Waikato University, for providing invaluable support and guidance; ffl Ross Renner, and the School of Mathematical and Computing Sciences at Victoria University of Wellington, for indulging me with time and money to visit Waikato University to talk with Steve; ffl Mhairi for caring (again) that I should finish a thesis; ffl Keir and Ailidh for not caring about theses at all.