Results 1  10
of
19
Intuitionistic Model Constructions and Normalization Proofs
, 1998
"... We investigate semantical normalization proofs for typed combinatory logic and weak calculus. One builds a model and a function `quote' which inverts the interpretation function. A normalization function is then obtained by composing quote with the interpretation function. Our models are just like ..."
Abstract

Cited by 44 (7 self)
 Add to MetaCart
We investigate semantical normalization proofs for typed combinatory logic and weak calculus. One builds a model and a function `quote' which inverts the interpretation function. A normalization function is then obtained by composing quote with the interpretation function. Our models are just like the intended model, except that the function space includes a syntactic component as well as a semantic one. We call this a `glued' model because of its similarity with the glueing construction in category theory. Other basic type constructors are interpreted as in the intended model. In this way we can also treat inductively defined types such as natural numbers and Brouwer ordinals. We also discuss how to formalize terms, and show how one model construction can be used to yield normalization proofs for two different typed calculi  one with explicit and one with implicit substitution. The proofs are formalized using MartinLof's type theory as a meta language and mechanized using the A...
Inductively Generated Formal Topologies
"... Formal topology aims at developing general topology in intuitionistic and predicative mathematics. Many classical results of general topology have been already brought into the realm of constructive mathematics by using formal topology and also new light on basic topological notions was gained w ..."
Abstract

Cited by 31 (6 self)
 Add to MetaCart
Formal topology aims at developing general topology in intuitionistic and predicative mathematics. Many classical results of general topology have been already brought into the realm of constructive mathematics by using formal topology and also new light on basic topological notions was gained with this approach which allows distinction which are not sensible in classical topology. Here we give a systematic exposition of one of the main tools in formal topology: inductive generation. In fact, many formal topologies can be presented in a predicative way by an inductive generation and thus their properties can be proved inductively. We show however that some natural complete Heyting algebra cannot be inductively defined. Contents 1 The notion of formal topology 3 1.1 Concrete topological spaces . . . . . . . . . . . . . . . . . . . . . 3 1.2 Formal topologies . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2 Three problems and their solution 7 2.1 Formal topologies wi...
Inductionrecursion and initial algebras
 Annals of Pure and Applied Logic
, 2003
"... 1 Introduction Inductionrecursion is a powerful definition method in intuitionistic type theory in the sense of Scott ("Constructive Validity") [31] and MartinL"of [17, 18, 19]. The first occurrence of formal inductionrecursion is MartinL"of's definition of a universe `a la T ..."
Abstract

Cited by 28 (11 self)
 Add to MetaCart
1 Introduction Inductionrecursion is a powerful definition method in intuitionistic type theory in the sense of Scott ("Constructive Validity") [31] and MartinL"of [17, 18, 19]. The first occurrence of formal inductionrecursion is MartinL"of's definition of a universe `a la Tarski [19], which consists of a set U
Foundations for structured programming with GADTs
 Conference record of the ACM SIGPLANSIGACT Symposium on Principles of Programming Languages
, 2008
"... GADTs are at the cutting edge of functional programming and become more widely used every day. Nevertheless, the semantic foundations underlying GADTs are not well understood. In this paper we solve this problem by showing that the standard theory of data types as carriers of initial algebras of fun ..."
Abstract

Cited by 23 (4 self)
 Add to MetaCart
GADTs are at the cutting edge of functional programming and become more widely used every day. Nevertheless, the semantic foundations underlying GADTs are not well understood. In this paper we solve this problem by showing that the standard theory of data types as carriers of initial algebras of functors can be extended from algebraic and nested data types to GADTs. We then use this observation to derive an initial algebra semantics for GADTs, thus ensuring that all of the accumulated knowledge about initial algebras can be brought to bear on them. Next, we use our initial algebra semantics for GADTs to derive expressive and principled tools — analogous to the wellknown and widelyused ones for algebraic and nested data types — for reasoning about, programming with, and improving the performance of programs involving, GADTs; we christen such a collection of tools for a GADT an initial algebra package. Along the way, we give a constructive demonstration that every GADT can be reduced to one which uses only the equality GADT and existential quantification. Although other such reductions exist in the literature, ours is entirely local, is independent of any particular syntactic presentation of GADTs, and can be implemented in the host language, rather than existing solely as a metatheoretical artifact. The main technical ideas underlying our approach are (i) to modify the notion of a higherorder functor so that GADTs can be seen as carriers of initial algebras of higherorder functors, and (ii) to use left Kan extensions to trade arbitrary GADTs for simplerbutequivalent ones for which initial algebra semantics can be derived.
A typecorrect, stacksafe, provably correct, expression compiler
 in Epigram. Submitted to the Journal of Functional Programming
, 2006
"... Conventional approaches to compiler correctness, type safety and type preservation have focused on offline proofs, either on paper or formalised with a machine, of existing compilation schemes with respect to a reference operational semantics. This pearl shows how the use of dependent types in prog ..."
Abstract

Cited by 16 (0 self)
 Add to MetaCart
Conventional approaches to compiler correctness, type safety and type preservation have focused on offline proofs, either on paper or formalised with a machine, of existing compilation schemes with respect to a reference operational semantics. This pearl shows how the use of dependent types in programming, illustrated here in Epigram, allows us not only to buildin these properties, but to write programs which guarantee them by design and subsequent construction. We focus here on a very simple expression language, compiled into treestructured code for a simple stack machine. Our purpose is not to claim any sophistication in the source language being modelled, but to show off the metalanguage as a tool for writing programs for which the type preservation and progress theorems are selfevident by construction, and finally, whose correctness can be proved directly in the system. In this simple setting we achieve the following; • a typepreserving evaluation semantics, which takes typed expressions to typed values. • a compiler, which takes typed expressions to stacksafe intermediate code. • an interpreter for compiled code, which takes stacksafe intermediate code to a bigstep stack transition. • a compiler correctness proof, described via a function whose type expresses the equational correctness property. 1
General Synthetic Domain Theory  A Logical Approach
 Math. Struct. in Comp. Sci
, 1997
"... Synthetic Domain Theory (SDT) is a version of Domain Theory where "all functions are continuous". In [14, 12] there has been developed a logical and axiomatic version of SDT which is special in the sense that it captures the essence of Domain Theory `a la Scott but rules out other important noti ..."
Abstract

Cited by 10 (1 self)
 Add to MetaCart
Synthetic Domain Theory (SDT) is a version of Domain Theory where "all functions are continuous". In [14, 12] there has been developed a logical and axiomatic version of SDT which is special in the sense that it captures the essence of Domain Theory `a la Scott but rules out other important notions of domain. In this article we will give a logical and axiomatic account of General Synthetic Domain Theory (GSDT) aiming to grasp the structure common to all notions of domain as advocated by various authors. As in [14, 12] the underlying logic is a sufficiently expressive version of constructive type theory. We start with a few basic axioms giving rise to a core theory on top of which we study various notions of predomains as wellcomplete and replete Sspaces [9], define the appropriate notion of domain and verify the usual induction principles. 1
Inductive Definitions and Type Theory: An Introduction
"... MartinLof's type theory can be described as an intuitionistic theory of iterated inductive definitions developed in a framework of dependent types. It was originally intended to be a fullscale system for the formalization of constructive mathematics, but has also proved to be a powerful framewo ..."
Abstract

Cited by 6 (0 self)
 Add to MetaCart
MartinLof's type theory can be described as an intuitionistic theory of iterated inductive definitions developed in a framework of dependent types. It was originally intended to be a fullscale system for the formalization of constructive mathematics, but has also proved to be a powerful framework for programming. The theory integrates an expressive specification language (its type system) and a functional programming language (where all programs terminate). There now exist several proofassistants based on type theory, and many nontrivial examples from programming, computer science, logic, and mathematics have been implemented using these. In this series of lectures we shall describe type theory as a theory of inductive definitions. We emphasize its open nature: much like in a standard functional language such as ML or Haskell the user can add new types whenever there is a need for them. We discuss the syntax and semantics of the theory. Moreover, we present some examples ...
Phase distinctions in the compilation of Epigram
, 2005
"... Abstract. It is commonly believed that in dependently typed programming languages, the blurring of the distinction between types and values means that no type erasure is possible at runtime. In this paper, however, we propose an alternative phase distinction. Rather than distinguishing types and va ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. It is commonly believed that in dependently typed programming languages, the blurring of the distinction between types and values means that no type erasure is possible at runtime. In this paper, however, we propose an alternative phase distinction. Rather than distinguishing types and values in the compilation of EPIGRAM, we distinguish compiletime and runtime evaluation, and show by a series of program transformations that values which are not required at runtime can be erased. 1
GMeta: A Generic Formal Metatheory Framework for FirstOrder Representations ⋆
"... Abstract. This paper presents GMeta: a generic framework for firstorder representations of variable binding that provides once and for all many of the socalled infrastructure lemmas and definitions required in mechanizations of formal metatheory. The key idea is to employ datatypegeneric programmin ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. This paper presents GMeta: a generic framework for firstorder representations of variable binding that provides once and for all many of the socalled infrastructure lemmas and definitions required in mechanizations of formal metatheory. The key idea is to employ datatypegeneric programming (DGP) and modular programming techniques to deal with the infrastructure overhead. Using a generic universe for representing a large family of object languages we define datatypegeneric libraries of infrastructure for firstorder representations such as locally nameless or de Bruijn indices. Modules are used to provide templates: a convenient interface between the datatypegeneric libraries and the endusers of GMeta. We conducted case studies based on the POPLmark challenge, and showed that dealing with challenging binding constructs, like the ones found in System F<:, is possible with GMeta. All of GMeta’s generic infrastructure is implemented in the Coq theorem prover. Furthermore, due to GMeta’s modular design, the libraries can be easily used, extended, and customized by users.