Results 1 
7 of
7
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 11 (1 self)
 Add to MetaCart
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
The HOLOmega Logic
"... Abstract. A new logic is posited for the widely used HOL theorem prover, as an extension of the existing higher order logic of the HOL4 system. The logic is extended to three levels, adding kinds to the existing levels of types and terms. New types include type operator variables and universal types ..."
Abstract

Cited by 3 (0 self)
 Add to MetaCart
Abstract. A new logic is posited for the widely used HOL theorem prover, as an extension of the existing higher order logic of the HOL4 system. The logic is extended to three levels, adding kinds to the existing levels of types and terms. New types include type operator variables and universal types as in System F. Impredicativity is avoided through the stratification of types by ranks according to the depth of universal types. The new system, called HOLOmega or HOLω, isamergingofHOL4, HOL2P[11], and major aspects of System Fω from chapter 30 of [10]. This document presents the abstract syntax and semantics for the kinds, types, and terms of the logic, as well as the new fundamental axioms and rules of inference. As the new logic is constructed according to the design principles of the LCF approach, the soundness of the entire system depends critically and solely on the soundness of this core. 1
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
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
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 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 extensions of the calcul ..."
Abstract
 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...
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
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.