Results 1  10
of
20
Type Inference for Records in a Natural Extension of ML
 Theoretical Aspects of ObjectOriented Programming: Types, Semantics, and Language Design
, 1994
"... We describe an extension of ML with records where inheritance is given by ML generic polymorphism. All common operations on records but concatenation are supported, in particular the free extension of records. Other operations such as renaming of fields are added. The solution relies on an extension ..."
Abstract

Cited by 73 (7 self)
 Add to MetaCart
We describe an extension of ML with records where inheritance is given by ML generic polymorphism. All common operations on records but concatenation are supported, in particular the free extension of records. Other operations such as renaming of fields are added. The solution relies on an extension of ML, where the language of types is sorted and considered modulo equations, and on a record extension of types. The solution is simple and modular and the type inference algorithm is efficient in practice.
Completion of Rewrite Systems with Membership Constraints Part II: Constraint Solving
 J. Symbolic Computation
, 1992
"... this paper is to show how to solve the constraints that are involved in the deduction mechanism of the first part. This may be interesting in its own since this provides with a unification algorithm for an ordersorted logic with context variables and can be read independently of the first part. Thi ..."
Abstract

Cited by 66 (2 self)
 Add to MetaCart
this paper is to show how to solve the constraints that are involved in the deduction mechanism of the first part. This may be interesting in its own since this provides with a unification algorithm for an ordersorted logic with context variables and can be read independently of the first part. This can also be compared with unification of term schemes of various kind (Chen & Hsiang, 1991; Salzer, 1992; Comon, 1995; R. Galbav'y and M. Hermann, 1992). Indeed,
Disunification: a Survey
 Computational Logic: Essays in Honor of Alan
, 1991
"... Solving an equation in an algebra of terms is known as unification. Solving more complex formulas combining equations and involving in particular negation is called disunification. With such a broad definition, many works fall into the scope of disunification. The goal of this paper is to survey the ..."
Abstract

Cited by 56 (9 self)
 Add to MetaCart
Solving an equation in an algebra of terms is known as unification. Solving more complex formulas combining equations and involving in particular negation is called disunification. With such a broad definition, many works fall into the scope of disunification. The goal of this paper is to survey these works and bring them together in a same framework. R'esum'e On appelle habituellement (algorithme d') unification un algorithme de r'esolution d'une 'equation dans une alg`ebre de termes. La r'esolution de formules plus complexes, comportant en particulier des n'egations, est appel'ee ici disunification. Avec une d'efinition aussi 'etendue, de nombreux travaux peuvent etre consid'er'es comme portant sur la disunification. L'objet de cet article de synth`ese est de rassembler tous ces travaux dans un meme formalisme. Laboratoire de Recherche en Informatique, Bat. 490, Universit'e de ParisSud, 91405 ORSAY cedex, France. Email: comon@lri.lri.fr i Contents 1 Syntax 5 1.1 Basic Defini...
Normalization and the Yoneda Embedding
"... this paper we describe a new, categorical approach to normalization in typed  ..."
Abstract

Cited by 22 (3 self)
 Add to MetaCart
this paper we describe a new, categorical approach to normalization in typed 
HigherOrder Matching and Tree Automata
 Proc. Conf. on Computer Science Logic
, 1997
"... ions x 1 : : : xn are assumed to have arity one. For instance, x 1 x 2 :c(x 3 :x 3 ; x 2 (x 1 )) (assumed in normal form) has the following representation as a tree: x 1 x 2 c \Gamma \Gamma @ @ x 3 x 2 x 3 x 1 In what follows, we assume that F is finite. This is not a restriction as, for countab ..."
Abstract

Cited by 21 (0 self)
 Add to MetaCart
ions x 1 : : : xn are assumed to have arity one. For instance, x 1 x 2 :c(x 3 :x 3 ; x 2 (x 1 )) (assumed in normal form) has the following representation as a tree: x 1 x 2 c \Gamma \Gamma @ @ x 3 x 2 x 3 x 1 In what follows, we assume that F is finite. This is not a restriction as, for countably infinite alphabets, there is always another alphabet F 0 , which is finite, and an injective tree homomorphism h from T (F) into T (F) 0 such that h(T (F)) is recognizable by a finite tree automaton and the size of h(t) is linear with respect to the size of t. 1 However, for sake of clarity, we will keep the standard notations instead of using the encodings of F . 3.2 2automata We will use a slight modification of tree automata. The main difference with the definitions of [13, 4] is the presence of special symbols 2 ø which should be interpreted as any term of type ø . This slight modification is necessary because, for instance, the set of all closed terms is not recognizable by ...
SemiExplicit FirstClass Polymorphism for ML
 Information and Computation
, 1999
"... We propose a modest conservative extension to ML that allows semiexplicit firstclass polymorphism while preserving the essential properties of type inference. In our proposal, the introduction of polymorphic types is fully explicit, that is, both introduction points and exact polymorphic types ..."
Abstract

Cited by 20 (1 self)
 Add to MetaCart
We propose a modest conservative extension to ML that allows semiexplicit firstclass polymorphism while preserving the essential properties of type inference. In our proposal, the introduction of polymorphic types is fully explicit, that is, both introduction points and exact polymorphic types are to be specified. However, the elimination of polymorphic types is semiimplicit: only elimination points are to be specified as polymorphic types themselves are inferred. This extension is particularly useful in Objective ML where polymorphism replaces subtyping. Introduction The success of the ML language is due to its combination of several attractive features. Undoubtedly, the polymorphism of ML [Damas and Milner, 1982] or polymorphism `a la ML with the type inference it allows, is a major advantage. The ML type system stays in close correspondence with the rules of logic, following the CurryHoward isomorphism between types and formulas, which provides a simple intuition, ...
Simulating Expansions Without Expansions
, 1993
"... We add extensional equalities for the functional and product types to the typed calculus with not only products and terminal object, but also sums and bounded recursion (a version of recursion that does not allow recursive calls of infinite length). We provide a confluent and strongly normalizing ..."
Abstract

Cited by 17 (9 self)
 Add to MetaCart
We add extensional equalities for the functional and product types to the typed calculus with not only products and terminal object, but also sums and bounded recursion (a version of recursion that does not allow recursive calls of infinite length). We provide a confluent and strongly normalizing (thus decidable) rewriting system for the calculus, that stays confluent when allowing unbounded recursion. For that, we turn the extensional equalities into expansion rules, and not into contractions as is done traditionally. We first prove the calculus to be weakly confluent, which is a more complex and interesting task than for the usual calculus. Then we provide an effective mechanism to simulate expansions without expansion rules, so that the strong normalization of the calculus can be derived from that of the underlying, traditional, non extensional system. These results give us the confluence of the full calculus, but we also show how to deduce confluence directly form our simulation...
Confluence of Extensional and NonExtensional λcalculi with Explicit Substitutions
 Theoretical Computer Science
"... This paper studies confluence of extensional and nonextensional calculi with explicit substitutions, where extensionality is interpreted by jexpansion. For that, we propose a scheme for explicit substitutions which describes those abstract properties that are sufficient to guarantee confluence. O ..."
Abstract

Cited by 12 (2 self)
 Add to MetaCart
This paper studies confluence of extensional and nonextensional calculi with explicit substitutions, where extensionality is interpreted by jexpansion. For that, we propose a scheme for explicit substitutions which describes those abstract properties that are sufficient to guarantee confluence. Our method makes it possible to treat at the same time many wellknown calculi such as oe , oe * , OE , s , AE , f , d and dn . Keywords: functional programming, calculi, explicit substitutions, confluence, extensionality. 1 Introduction The calculus is a convenient framework to study functional programming, where the evaluation process is modeled by fireduction. The main mechanism used to perform fireduction is substitution, which consists of the replacement of formal parameters by actual arguments. The correctness of substitution is guaranteed by a systematic renaming of bound variables, inconvenient which can be simply avoided in the calculus `a la de Bruijn by using natur...
SLDResolution with Reflection
 Logic Programming  Proc. 1994 Intl. Symp., 554568
, 1995
"... We present a language containing names of ground expressions and a corresponding simple extension to SLDresolution which allows metalevel computation and interlevel communication through reflection. The extended language allows significant freedom in the choice of names and as an example of a possi ..."
Abstract

Cited by 5 (5 self)
 Add to MetaCart
We present a language containing names of ground expressions and a corresponding simple extension to SLDresolution which allows metalevel computation and interlevel communication through reflection. The extended language allows significant freedom in the choice of names and as an example of a possible policy we discuss selfnaming expressions. We go on to present a language in which the choice of naming relation has been partly determined by specifying that names of compound expressions are compositional. This is a sensible design decision and we present in detail a rewrite system for extended unification for the language, having certain similarities with a constraint solving system over names. Comparisons are made with related languages and systems. This paper was presented at the 1994 International Symposium on Logic Programming, held in Ithaca, New York. P. Dell'Acqua has been supported by both Universit`a degli Studi di Milano and Uppsala Univ. 1 Introduction This paper prese...