Results 1  10
of
22
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 88 (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 69 (2 self)
 Add to MetaCart
(Show Context)
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 57 (8 self)
 Add to MetaCart
(Show Context)
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 24 (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 23 (0 self)
 Add to MetaCart
(Show Context)
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...
A Methodological View of Constraint Solving
, 1996
"... Constraints have become very popular during the last decade. Constraints allow to define sets of data by means of logical formulae. Our goal here is to survey the notion of constraint system and to give examples of constraint systems operating on various domains, such as natural, rational or real nu ..."
Abstract

Cited by 6 (2 self)
 Add to MetaCart
Constraints have become very popular during the last decade. Constraints allow to define sets of data by means of logical formulae. Our goal here is to survey the notion of constraint system and to give examples of constraint systems operating on various domains, such as natural, rational or real numbers, finite domains, and term domains. We classify the different methods used for solving constraints, syntactic methods based on transformations, semantic methods based on adequate representations of constraints, hybrid methods combining transformations and enumerations. Examples are used throughout the paper to illustrate the concepts and methods. We also discuss applications of constraints to various fields, such as programming, operations research, and theorem proving. y CNRS and LRI, Bat. 490, Universit'e de Paris Sud, 91405 ORSAY Cedex, France fcomon, jouannaudg@lri.lri.fr z COSYTEC, Parc Club Orsay Universit'e, 4 Rue Jean Rostand, 91893 Orsay Cedex, France dincbas@cosytec.fr x ...