Results 1 
6 of
6
Computational Complexity and Induction for Partial Computable Functions in Type Theory
 In Preprint
, 1999
"... An adequate theory of partial computable functions should provide a basis for defining computational complexity measures and should justify the principle of computational induction for reasoning about programs on the basis of their recursive calls. There is no practical account of these notions in ..."
Abstract

Cited by 11 (7 self)
 Add to MetaCart
An adequate theory of partial computable functions should provide a basis for defining computational complexity measures and should justify the principle of computational induction for reasoning about programs on the basis of their recursive calls. There is no practical account of these notions in type theory, and consequently such concepts are not available in applications of type theory where they are greatly needed. It is also not clear how to provide a practical and adequate account in programming logics based on set theory. This paper provides a practical theory supporting all these concepts in the setting of constructive type theories. We first introduce an extensional theory of partial computable functions in type theory. We then add support for intensional reasoning about programs by explicitly reflecting the essential properties of the underlying computation system. We use the resulting intensional reasoning tools to justify computational induction and to define computationa...
Programming Language Semantics in Foundational Type Theory
 In Proc. the IFIP TC2/WG2.2,2.3 International Conference on Programming Concepts and Methods (PROCOMET’98
, 1996
"... There are compelling benefits to using foundational type theory as a framework for programming language semantics. I give a semantics of an expressive programming calculus in the foundational type theory of Nuprl. Previous typetheoretic semantics have used less expressive type theories, or have sacr ..."
Abstract

Cited by 5 (1 self)
 Add to MetaCart
There are compelling benefits to using foundational type theory as a framework for programming language semantics. I give a semantics of an expressive programming calculus in the foundational type theory of Nuprl. Previous typetheoretic semantics have used less expressive type theories, or have sacrificed important programming constructs such as recursion and modules. The primary mechanisms of this semantics are partial types, for typing recursion, set types, for encoding power and singleton kinds, which are used for subtyping and module programming, and very dependent function types, for encoding signatures. Keywords Semantics, program verification, type theory, functional programming 1 INTRODUCTION Type theory has become a popular framework for formal reasoning in computer science and has formed the basis for a number of automated deduction systems, including Automath, Nuprl, HOL and Coq, among others. In addition to formalizing mathematics, these systems are widely used for the a...
Interpreting Specialization in Type Theory
"... We define the static semantics of offline partial evaluation for the simplytyped lambda calculus using a translation into a MartinLöfstyle type theory with suitable extensions. Our approach clarifies that the distinction between specializationtime and runtime computation in partial evaluation c ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
We define the static semantics of offline partial evaluation for the simplytyped lambda calculus using a translation into a MartinLöfstyle type theory with suitable extensions. Our approach clarifies that the distinction between specializationtime and runtime computation in partial evaluation can model the phase distinction between compiletime and runtime computation in a module language. Working backwards from that connection, we define partial evaluation for a core language with modules.
Partiality, State and Dependent Types
"... Partial type theories allow reasoning about recursivelydefined computations using fixedpoint induction. However, fixedpoint induction is only sound for admissible types and not all types are admissible in sufficiently expressive dependent type theories. Previous solutions have either introduced ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Partial type theories allow reasoning about recursivelydefined computations using fixedpoint induction. However, fixedpoint induction is only sound for admissible types and not all types are admissible in sufficiently expressive dependent type theories. Previous solutions have either introduced explicit admissibility conditions on the use of fixed points, or limited the underlying type theory. In this paper we propose a third approach, which supports Hoarestyle partial correctness reasoning, without admissibility conditions, but at a tradeoff that one cannot reason equationally about effectful computations. The resulting system is still quite expressive and useful in practice, which we confirm by an implementation as an extension of Coq.
Holcf = Hol + Lcf
"... HOLCF is the definitional extension of Church's HigherOrder Logic with Scott's Logic for Computable Functions that has been implemented in the theorem prover Isabelle. This results in a flexible setup for reasoning about functional programs. HOLCF supports standard domain theory (in particular fixp ..."
Abstract
 Add to MetaCart
HOLCF is the definitional extension of Church's HigherOrder Logic with Scott's Logic for Computable Functions that has been implemented in the theorem prover Isabelle. This results in a flexible setup for reasoning about functional programs. HOLCF supports standard domain theory (in particular fixpoint reasoning and recursive domain equations) but also coinductive arguments about lazy datatypes. This paper describes in detail how domain theory is embedded in HOL and presents applications from functional programming, concurrency and denotational semantics. 1 Introduction HOLCF is a logic for reasoning about functional programs. It provides arbitrary forms of recursion (via a fixpoint operator) and a package for defining datatypes. The latter caters for infinite objects, induction and coinduction. HOLCF is a synthesis of two logical systems, HOL and LCF, combining the best of both worlds. Before we go into technicalities (of which there is no shortage), we sketch the historical and log...