Results 1 
8 of
8
Programming With Types
 CORNELL UNIVERSITY
, 2002
"... Runtime type analysis is an increasingly important linguistic mechanism in modern programming languages. Language runtime systems use it to implement services such as accurate garbage collection, serialization, cloning and structural equality. Component frameworks rely on it to provide reflection m ..."
Abstract

Cited by 13 (2 self)
 Add to MetaCart
(Show Context)
Runtime type analysis is an increasingly important linguistic mechanism in modern programming languages. Language runtime systems use it to implement services such as accurate garbage collection, serialization, cloning and structural equality. Component frameworks rely on it to provide reflection mechanisms so they may discover and interact with program interfaces dynamically. Runtime type analysis is also crucial for large, distributed systems that must be dynamically extended, because it allows those systems to check program invariants when new code and new forms of data are added. Finally, many generic userlevel algorithms for iteration, pattern matching, and unification can be defined through type analysis mechanisms. However, existing frameworks for runtime type analysis were designed for simple type systems. They do not scale well to the sophisticated type systems of modern and nextgeneration programming languages that include complex constructs such as firstclass abstract types, recursive types, objects, and type parameterization. In addition, facilities to support type analysis often require complicated
HOL2P  A system of classical higher order logic with second order polymorphism
 20th International Conference on Theorem Proving in Higher Order Logics: TPHOLs 2007, volume 4732 of Lecture Notes in Computer Science
, 2007
"... Abstract. This paper introduces the logical system HOL2P that extends classical higher order logic (HOL) with type operator variables and universal types. HOL2P has explicit term operations for type abstraction and type application. The formation of type application terms t [ T] is restricted to sma ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
(Show Context)
Abstract. This paper introduces the logical system HOL2P that extends classical higher order logic (HOL) with type operator variables and universal types. HOL2P has explicit term operations for type abstraction and type application. The formation of type application terms t [ T] is restricted to small types T that do not contain any universal types. This constraint ensures the existence of a settheoretic model and thus consistency. The expressiveness of HOL2P allows categorytheoretic concepts such as natural transformations and initial algebras to be applied at the level of polymorphic HOL functions. The parameterisation of terms with type operators adds genericity to theorems. Type variable quantification can also be expressed. A prototype of HOL2P has been implemented on top of HOLLight. Type inference is semiautomatic, and some type annotations are necessary. Reasoning is supported by appropriate tactics. The implementation has been used to check some sample derivations. 1
On Coquand's "An Analysis of Girard's Paradox"
"... In his paper "An Analysis of Girard's Paradox" [3], Coquand presents a result of Girard that minimal higherorder logic extended with quantification over types is inconsistent. Using Girard's idea, he shows that some other extensions of minimal higherorder logic, several exte ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
In his paper "An Analysis of Girard's Paradox" [3], Coquand presents a result of Girard that minimal higherorder logic extended with quantification over types is inconsistent. Using Girard's idea, he shows that some other extensions of minimal higherorder logic, several extensions of the calculus of constructions, and an early calculus of MartinLof with type:type are also inconsistent. He also presents several consistent extensions of minimal higherorder logic and the calculus of constructions. In this paper, I survey relevant background material and present two of Coquand's proofs of inconsistency. 1 Background In this section, I present some material that is relevant for understanding Coquand's results. Readers familiar with this material may wish to skip to section 2 and refer to this section later as necessary. 1.1 Styles of Axiomatization There are two styles commonly used for axiomatizing various logics; the style of natural deduction and the style of Hilbert. Syst...
Subset Types and Partial Functions
 19th International Conference on Automated Deduction
, 2003
"... Abstract. A classical higherorder logic PFsub of partial functions is defined. The logic extends a version of Farmer’s logic PF by enriching the type system of the logic with subset types and dependent types. Validity in PFsub is then reduced to validity in PF by a translation. 1 ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Abstract. A classical higherorder logic PFsub of partial functions is defined. The logic extends a version of Farmer’s logic PF by enriching the type system of the logic with subset types and dependent types. Validity in PFsub is then reduced to validity in PF by a translation. 1
On Fixed point and Looping Combinators in Type Theory
"... Abstract. The type theories λU and λU − are known to be logically inconsistent. For λU, this is known as Girard’s paradox [Gir72]; for λU − the inconsistency was proved by Coquand [Coq94]. It is also known that the inconsistency gives rise to a so called ”looping combinator”: a family of terms Ln su ..."
Abstract
 Add to MetaCart
(Show Context)
Abstract. The type theories λU and λU − are known to be logically inconsistent. For λU, this is known as Girard’s paradox [Gir72]; for λU − the inconsistency was proved by Coquand [Coq94]. It is also known that the inconsistency gives rise to a so called ”looping combinator”: a family of terms Ln such that Lnf is convertible with f(Ln+1f). It was unclear whether a fixed point combinator exists in these systems. Later, Hurkens [Hur95] has given a simpler version of the paradox in λU − , giving rise to an actual proof term that can be analyzed. In the present paper we analyze the proof of Hurkens and we study the looping combinator that arises from it: it is a real looping combinator (not a fixed point combinator) but in the Curry version of λU − it is a fixedpoint combinator. We also analyze the possibility of typing a fixed point combinator in λU − and we prove that the Church and Turing fixed point combinators cannot be typed in λU −. 1
Handbook of the History of Logic. Volume 6
"... ABSTRACT: Here is a crude list, possibly summarizing the role of paradoxes within the framework of mathematical logic: 1. directly motivating important theories (e.g. type theory, axiomatic set theory, combinatory logic); 2. suggesting methods of proving fundamental metamathematical results (fixed p ..."
Abstract
 Add to MetaCart
ABSTRACT: Here is a crude list, possibly summarizing the role of paradoxes within the framework of mathematical logic: 1. directly motivating important theories (e.g. type theory, axiomatic set theory, combinatory logic); 2. suggesting methods of proving fundamental metamathematical results (fixed point theorems, incompleteness, undecidability, undefinability); 3. applying inductive definability and generalized recursion; 4. introducing new semantical methods (e. g. revision theory, semiinductive definitions, which require nontrivial set theoretic results); 5. (partly) enhancing new axioms in set theory: the case of antifoundation AFA and the mathematics of circular phenomena; 6. suggesting the investigation of nonclassical logical systems, from contractionfree and manyvalued logics to systems with generalized quantifiers; 7. suggesting frameworks with flexible typing for the foundations of Mathematics and Computer Science; 8. applying forms of selfreferential truth and in Artificial Intelligence, Theoretical Linguistics, etc. Below we attempt to shed some light on the genesis of the issues 1–8 through the history of the paradoxes in the twentieth century, with a special emphasis on semantical aspects.
CERTIFICATE OF APPROVAL
, 2014
"... To my lovely wife, Jenny Eades. ii Program testing can be used to show the presence of bugs, but never to show their absence! –Dijkstra (1970) iii ACKNOWLEDGEMENTS The first person I would like to acknowledge is my advisor Aaron Stump. He is one of the kindest and most intelligent people I have had ..."
Abstract
 Add to MetaCart
(Show Context)
To my lovely wife, Jenny Eades. ii Program testing can be used to show the presence of bugs, but never to show their absence! –Dijkstra (1970) iii ACKNOWLEDGEMENTS The first person I would like to acknowledge is my advisor Aaron Stump. He is one of the kindest and most intelligent people I have had the pleasure to work with, and without his guidance I would have never made it this far. I can only hope to acquire the insight and creativity you have when working on a research problem. Furthermore, I would like to thank him for introducing me to my research area in type theory and the foundations of functional programming languages. Secondly, I would like to thank my wife, Jenny Eades, whose hard work literally made it possible for there to be food on our table and a roof over our heads. She