Results 1  10
of
10
A theory of type polymorphism in programming
 Journal of Computer and System Sciences
, 1978
"... The aim of this work is largely a practical one. A widely employed style of programming, particularly in structureprocessing languages which impose no discipline of types, entails defining procedures which work well on objects of a wide variety. We present a formal type discipline for such polymorp ..."
Abstract

Cited by 1083 (1 self)
 Add to MetaCart
(Show Context)
The aim of this work is largely a practical one. A widely employed style of programming, particularly in structureprocessing languages which impose no discipline of types, entails defining procedures which work well on objects of a wide variety. We present a formal type discipline for such polymorphic procedures in the context of a simple programming language, and a compile time typechecking algorithm w which enforces the discipline. A Semantic Soundness Theorem (based on a formal semantics for the language) states that welltype programs cannot “go wrong ” and a Syntactic Soundness Theorem states that if fl accepts a program then it is well typed. We also discuss extending these results to richer languages; a typechecking algorithm based on w is in fact already implemented and working, for the metalanguage ML in the Edinburgh LCF system, 1.
Admissibility of Fixpoint Induction over Partial Types
 Automated deduction  CADE15. Lect. Notes in Comp. Sci
, 1998
"... Partial types allow the reasoning about partial functions in type theory. The partial functions of main interest are recursively computed functions, which are commonly assigned types using fixpoint induction. However, fixpoint induction is valid only on admissible types. Previous work has shown many ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
Partial types allow the reasoning about partial functions in type theory. The partial functions of main interest are recursively computed functions, which are commonly assigned types using fixpoint induction. However, fixpoint induction is valid only on admissible types. Previous work has shown many types to be admissible, but has not shown any dependent products to be admissible. Disallowing recursion on dependent product types substantially reduces the expressiveness of the logic; for example, it prevents much reasoning about modules, objects and algebras. In this paper I present two new tools, predicateadmissibility and monotonicity, for showing types to be admissible. These tools show a wide class of types to be admissible; in particular, they show many dependent products to be admissible. This alleviates difficulties in applying partial types to theorem proving in practice. I also present a general least upper bound theorem for fixed points with regard to a computational approxim...
Hybrid PartialTotal Type Theory
, 1995
"... In this paper a hybrid type theory HTT is defined which combines the programming language notion of partial type with the logical notion of total type into a single theory. A new partial type constructor A is added to the type theory: objects in A may diverge, but if they converge, they must be memb ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
In this paper a hybrid type theory HTT is defined which combines the programming language notion of partial type with the logical notion of total type into a single theory. A new partial type constructor A is added to the type theory: objects in A may diverge, but if they converge, they must be members of A. A fixed point typing rule is given to allow for typing of fixed points. The underlying theory is based on ideas from Feferman's Class Theory and Martin Lof's Intuitionistic Type Theory. The extraction paradigm of constructive type theory is extended to allow direct extraction of arbitrary fixed points. Important features of general programming logics such as LCF are preserved, including the typing of all partial functions, a partial ordering ! ¸ on computations, and a fixed point induction principle. The resulting theory is thus intended as a generalpurpose programming logic. Rules are presented and soundness of the theory established. Keywords: Constructive Type Theory, Logics...
Design Issues in Parallel Architecture for Artificial Intelligence
 In Proc. 28th IEEE Computer Society Int. Conf,, San Francisco CA
, 1983
"... Development of highly intelligent computers requires a conceptual foun dation that will overcome the limitations of the yon Neumann architecture. ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
Development of highly intelligent computers requires a conceptual foun dation that will overcome the limitations of the yon Neumann architecture.
Theoretical Foundations for Practical ‘Totally Functional Programming’
, 2007
"... Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt ..."
Abstract
 Add to MetaCart
Interpretation is an implicit part of today’s programming; it has great power but is overused and has
significant costs. For example, interpreters are typically significantly hard to understand and hard
to reason about. The methodology of “Totally Functional Programming” (TFP) is a reasoned
attempt to redress the problem of interpretation. It incorporates an awareness of the undesirability
of interpretation with observations that definitions and a certain style of programming appear to
offer alternatives to it. Application of TFP is expected to lead to a number of significant outcomes,
theoretical as well as practical. Primary among these are novel programming languages to lessen or
eliminate the use of interpretation in programming, leading to betterquality software. However,
TFP contains a number of lacunae in its current formulation, which hinder development of these
outcomes. Among others, formal semantics and typesystems for TFP languages are yet to be
discovered, the means to reduce interpretation in programs is to be determined, and a detailed
explication is needed of interpretation, definition, and the differences between the two. Most
important of all however is the need to develop a complete understanding of the nature of
interpretation. In this work, suitable typesystems for TFP languages are identified, and guidance
given regarding the construction of appropriate formal semantics. Techniques, based around the
‘fold’ operator, are identified and developed for modifying programs so as to reduce the amount of
interpretation they contain. Interpretation as a means of languageextension is also investigated.
v
Finally, the nature of interpretation is considered. Numerous hypotheses relating to it considered in
detail. Combining the results of those analyses with discoveries from elsewhere in this work leads
to the proposal that interpretation is not, in fact, symbolbased computation, but is in fact something
more fundamental: computation that varies with input. We discuss in detail various implications of
this characterisation, including its practical application. An often moreuseful property, ‘inherent
interpretiveness’, is also motivated and discussed in depth. Overall, our inquiries act to give
conceptual and theoretical foundations for practical TFP.
La Deduzione Automatica
, 1994
"... Scopo di questo articolo e` dare una panoramica introduttiva alla deduzione automatica, mettendo in evidenza obiettivi, differenze e similitudini di alcuni fra i piu` importanti approcci al problema. ..."
Abstract
 Add to MetaCart
Scopo di questo articolo e` dare una panoramica introduttiva alla deduzione automatica, mettendo in evidenza obiettivi, differenze e similitudini di alcuni fra i piu` importanti approcci al problema.
The Triumph of Types: Principia Mathematica’s Impact on Computer Science
"... Types now play an essential role in computer science; their ascent originates from Principia Mathematica. Type checking and type inference algorithms are used to prevent semantic errors in programs, and type theories are the native language of several major interactive theorem provers. Some of these ..."
Abstract
 Add to MetaCart
(Show Context)
Types now play an essential role in computer science; their ascent originates from Principia Mathematica. Type checking and type inference algorithms are used to prevent semantic errors in programs, and type theories are the native language of several major interactive theorem provers. Some of these trace key features back to Principia. This lecture examines the influence of Principia Mathematica on modern type theories implemented in software systems known as interactive proof assistants. These proof assistants advance daily the goal for which Principia was designed: to provide a comprehensive formalization of mathematics. For instance, the definitive formal proof of the Four Color Theorem was done in type theory. Type theory is considered seriously now more than ever as an adequate foundation for both classical and constructive mathematics as well as for computer science. Moreover, the seminal work in the history of formalized mathematics is the Automath project of N.G. de Bruijn whose formalism is type theory. In addition we explain how type theories have enabled the use of formalized mathematics as a practical programming language, a connection entirely unanticipated at the time of Principia Mathematica’s creation.
The Triumph of Types: Creating a Logic of Computational Reality
"... Type theory plays an essential role in computing and information science. It is the native language of several industrial strength interactive theorem provers including Coq, HOL, Isabelle, MetaPRL, Nuprl, PVS, and Twelf. These provers are used for building correct by construction software and for cr ..."
Abstract
 Add to MetaCart
(Show Context)
Type theory plays an essential role in computing and information science. It is the native language of several industrial strength interactive theorem provers including Coq, HOL, Isabelle, MetaPRL, Nuprl, PVS, and Twelf. These provers are used for building correct by construction software and for creating formalized mathematical theories whose logical correctness is assured to the highest standards of certainty ever achieved. Interactive provers have also been used to solve open mathematical problems, e.g. definitively proving the Four Color Theorem, finding constructive proofs of Higman’s Lemma and Kruskal’s Theorem, and explaining the Girard paradox. The accumulation of large libraries of formalized mathematical knowledge using provers has led to the field of mathematical knowledge management. Constructive type theories for constructive and intuitionistic mathematics serve as practical programming languages, a connection imagined forty years ago yet only recently realized. These intellectual contributions are matched by an elegant computing and information technology that integrates programming languages, interactive provers, model check
FORMAL SEMANTICS OF LISP WITH APPLICATIONS TO
, 1975
"... mi] National Technical Information Service U. S. DEPARTMENT OF COMMERCE::..v,;vVv^>>.■■:,:;■■ ■ . ._...... ..._... ..._.... __..._. _..__........ _ ^^A'i.y^.^i^li;:...^... ^ iü^tiMZr'. tfÜUli^i  JV>..*..^V.':^A^'{"'^:A^f"l''ax& ..."
Abstract
 Add to MetaCart
(Show Context)
mi] National Technical Information Service U. S. DEPARTMENT OF COMMERCE::..v,;vVv^>>.■■:,:;■■ ■ . ._...... ..._... ..._.... __..._. _..__........ _ ^^A'i.y^.^i^li;:...^... ^ iü^tiMZr'. tfÜUli^i  JV>..*..^V.':^A^'{"'^:A^f"l''ax'^''A;'£; ipappy UNCLASSIFIED < ■ n
S3L : a Fair Functional Language Implementing Infinite Sets
"... S3L 1 is a functional language, that allows easy manipulation of sets. Sets provide a better expressive power in many problems. Often, sets are modelled by lists, and predicates on sets are defined using implicit order over lists. In contrast, in S3L, sets are native objects. They can be finite or ..."
Abstract
 Add to MetaCart
S3L 1 is a functional language, that allows easy manipulation of sets. Sets provide a better expressive power in many problems. Often, sets are modelled by lists, and predicates on sets are defined using implicit order over lists. In contrast, in S3L, sets are native objects. They can be finite or infinite, and for an efficient implementation multiple occurrences of the same object are allowed. We describe, in this paper, the main features of the language, followed by a discussion on infinite sets. This leads us to deal with fairness, and tools expressing it, using a denotational approach. Keywords : Functional Programming, Sets, Prototyping, Fairness, S3L. 1 Introduction S3L [11] is a functional programming language, developed at Orleans University, that implements in a very efficient way usual set operators. S3L allows a syntax close to the mathematical notation of Naive Set Theory ([9]). Sets are native objects of the language, and usual set operators are implemented : inclusio...