## Rank 2 Intersection Type Assignment in Term Rewriting Systems (1996)

### Cached

### Download Links

- [pubs.doc.ic.ac.uk]
- [dev.pubs.doc.ic.ac.uk]
- [schiele.doc.ic.ac.uk]
- [www.doc.ic.ac.uk]
- DBLP

### Other Repositories/Bibliography

Citations: | 22 - 14 self |

### BibTeX

@MISC{Bakel96rank2,

author = {Steffen van Bakel},

title = {Rank 2 Intersection Type Assignment in Term Rewriting Systems},

year = {1996}

}

### Years of Citing Articles

### OpenURL

### Abstract

A notion of type assignment on Curryfied Term Rewriting Systems is introduced that uses Intersection Types of Rank 2, and in which all function symbols are assumed to have a type. Type assignment will consist of specifying derivation rules that describe how types can be assigned to terms, using the types of function symbols. Using a modified unification procedure, for each term the principal pair (of basis and type) will be defined in the following sense: from these all admissible pairs can be generated by chains of operations on pairs, consisting of the operations substitution, copying, and weakening. In general, given an arbitrary typeable CuTRS, the subject reduction property does not hold. Using the principal type for the left-hand side of a rewrite rule, a sufficient and decidable condition will be formulated that typeable rewrite rules should satisfy in order to obtain this property. Introduction In the recent years, several paradigms have been investigated for the implementatio...

### Citations

1138 |
The Lambda Calculus : Its Syntax And Semantics
- Barendregt
- 1984
(Show Context)
Citation Context ...order to obtain this property. Introduction In the recent years, several paradigms have been investigated for the implementation of functional programming languages. Not only the Lambda Calculus (LC) =-=[10]-=-, but also Term Rewriting Systems (TRS) [28] and Term Graph Rewriting Systems (TGRS) [12] are topics of research. LC (or rather Combinator Systems) constitutes the underlying model for the functional ... |

966 |
A machine-oriented logic based on the resolution principle
- Robinson
- 1965
(Show Context)
Citation Context ...gorithm that finds the most general unifying chain for demanded and provided type. It is defined using Robinson’s well-known unification algorithm . Definition 4.1.1 (Robinson’s Unification Algorithm =-=[35]-=-) Let be the set of all substitutions. : ( , ) = ( , ) = , if does not occur in and is not a type-variable ( , ) = ( , ) ( , ) = where = ( , ) = ( ( ), ( )) Property 4.1.2 ([35]) returns the most gene... |

958 | A theory of type polymorphism in programming
- Milner
- 1978
(Show Context)
Citation Context ...ften studied on the level of LC. Several authors, when presenting new notions of type assignment to be used in programming, presented their results within (extended) lambda calculi (see, for example, =-=[30]-=-, and [31]) that are normally extensions of the Curry Type Assignment System [19]. The scope of this paper is to develop decidable intersection type assignment in the context of TRS. The restriction s... |

758 | Rewrite Systems
- Dershowitz, Jouannaud
- 1990
(Show Context)
Citation Context ...f type assignment with intersection types for LC and TRS are, in general, incomparable, and cannot be ported from one to the other. Recently, some results have been obtained in the field of typed TRS =-=[20]-=- and the combination of those with (intersection) type assignment systems for LC (e.g. [7], [8], [9]). Using essentially the solution of [6], also for the system as presented in this paper we will pro... |

574 | Term Rewriting Systems
- Klop
- 1992
(Show Context)
Citation Context ...In the recent years, several paradigms have been investigated for the implementation of functional programming languages. Not only the Lambda Calculus (LC) [10], but also Term Rewriting Systems (TRS) =-=[28]-=- and Term Graph Rewriting Systems (TGRS) [12] are topics of research. LC (or rather Combinator Systems) constitutes the underlying model for the functional programming language Miranda [37], TRS were ... |

547 |
The implementation of functional programming languages
- Jones
- 1987
(Show Context)
Citation Context ...s in function-constructor systems can be adequately translated to LC, the only patterns allowed are those based on data structures, using constructors (see, for an extensive treatment, Chapter Six of =-=[34]-=-). So functions symbols are not allowed to occur in patterns; for example, a definition like Pair(In-left(x),In-right(x)) x. is, given the two rules above, not allowed. A difficulty with these three r... |

216 |
A filter lambda model and the completeness of type assignment
- Barendregt, Coppo, et al.
(Show Context)
Citation Context ... scope of this paper is to develop decidable intersection type assignment in the context of TRS. The restriction studied in this paper of the Intersection Type Discipline (ITD) for LC as presented in =-=[16, 11, 1, 3]-=- is the one suggested in [29]: the limitation of the set of types to intersection types of Rank 2. In that paper is stated that (part of) the type assignment system for ML can be seen as a restriction... |

162 |
a non-strict functional language with polymorphic types
- Miranda
- 1985
(Show Context)
Citation Context ...tems (TRS) [28] and Term Graph Rewriting Systems (TGRS) [12] are topics of research. LC (or rather Combinator Systems) constitutes the underlying model for the functional programming language Miranda =-=[37]-=-, TRS were used in the underlying model for the language OBJ [22], and TGRS were the model for the language Clean [13, 32]. For the implementation of a language, independent of the chosen implementati... |

145 |
The system f of variable types, fifteen years later
- Girard
- 1986
(Show Context)
Citation Context ...Milner’s system, by allowing for the -type constructor to occur also on the left-hand side of an arrow-type, instead of only at top level. (It is also a restriction of the Polymorphic Type Discipline =-=[23]-=-, where types are restricted to polymorphic types of Rank 2.) As in the system presented here, type assignment in that system is decidable. ( I): 1.2 Intersection type assignment versus ML type assign... |

139 | A calculus for overloaded functions with subtyping
- Castagna, Ghelli, et al.
- 1995
(Show Context)
Citation Context ...g The concept of overloading in programming languages is normally used to express that different objects (typically procedures) can have the same identifier. (For another approach to overloading, see =-=[15, 14]-=-.) At first sight this seems to be nothing but a tool to obtain programming convenience, but the implementational aspects of languages with overloading are not at all trivial. In functional programmin... |

112 |
The principal type scheme of an object in combinatory logic
- Hindley
- 1969
(Show Context)
Citation Context ...ssumed that every function symbol already has a type, stored in an environment, of which the structure is usually motivated by a rewrite rule. In fact, this approach is very close to the one taken in =-=[24]-=-, where the principal Curry-type scheme of an object in Combinatory Logic is defined. Definition 3.2.1 Let be a CuTRS. i) A mapping : is called an environment if, for every F with arity , (F) = (F ) =... |

106 |
Term graph rewriting
- Barendregt, Eekelen, et al.
- 1987
(Show Context)
Citation Context ...een investigated for the implementation of functional programming languages. Not only the Lambda Calculus (LC) [10], but also Term Rewriting Systems (TRS) [28] and Term Graph Rewriting Systems (TGRS) =-=[12]-=- are topics of research. LC (or rather Combinator Systems) constitutes the underlying model for the functional programming language Miranda [37], TRS were used in the underlying model for the language... |

103 | Complete Restrictions of the Intersection Type Discipline", Theor
- Bakel
- 1992
(Show Context)
Citation Context ... scope of this paper is to develop decidable intersection type assignment in the context of TRS. The restriction studied in this paper of the Intersection Type Discipline (ITD) for LC as presented in =-=[16, 11, 1, 3]-=- is the one suggested in [29]: the limitation of the set of types to intersection types of Rank 2. In that paper is stated that (part of) the type assignment system for ML can be seen as a restriction... |

102 |
et a!. Principles of OBJ2
- Futatsugi
(Show Context)
Citation Context ...topics of research. LC (or rather Combinator Systems) constitutes the underlying model for the functional programming language Miranda [37], TRS were used in the underlying model for the language OBJ =-=[22]-=-, and TGRS were the model for the language Clean [13, 32]. For the implementation of a language, independent of the chosen implementation model, the notion of types plays an important role. Types are ... |

96 |
Polymorphic type schemes and recursive definitions
- Mycroft
- 1984
(Show Context)
Citation Context ...ed on the level of LC. Several authors, when presenting new notions of type assignment to be used in programming, presented their results within (extended) lambda calculi (see, for example, [30], and =-=[31]-=-) that are normally extensions of the Curry Type Assignment System [19]. The scope of this paper is to develop decidable intersection type assignment in the context of TRS. The restriction studied in ... |

90 |
An extension of the basic functionality theory for the λ-calculus
- Coppo, Dezani-Ciancaglini
- 1980
(Show Context)
Citation Context ... scope of this paper is to develop decidable intersection type assignment in the context of TRS. The restriction studied in this paper of the Intersection Type Discipline (ITD) for LC as presented in =-=[16, 11, 1, 3]-=- is the one suggested in [29]: the limitation of the set of types to intersection types of Rank 2. In that paper is stated that (part of) the type assignment system for ML can be seen as a restriction... |

85 |
Polymorphic Type Inference
- Leivant
- 1983
(Show Context)
Citation Context ...dable intersection type assignment in the context of TRS. The restriction studied in this paper of the Intersection Type Discipline (ITD) for LC as presented in [16, 11, 1, 3] is the one suggested in =-=[29]-=-: the limitation of the set of types to intersection types of Rank 2. In that paper is stated that (part of) the type assignment system for ML can be seen as a restriction of ITD when types are limite... |

61 | Intersection Type Assignment Systems
- Bakel
- 1995
(Show Context)
Citation Context |

61 |
CLEAN: A language for functional graph rewriting, Proc. of a conference on Functional programming languages and computer architecture
- Brus, Eekelen, et al.
- 1987
(Show Context)
Citation Context ... constitutes the underlying model for the functional programming language Miranda [37], TRS were used in the underlying model for the language OBJ [22], and TGRS were the model for the language Clean =-=[13, 32]-=-. For the implementation of a language, independent of the chosen implementation model, the notion of types plays an important role. Types are essential to obtain efficient machine code when compiling... |

60 | Concurrent Clean
- Nöcker, Smetsers, et al.
- 1991
(Show Context)
Citation Context ... constitutes the underlying model for the functional programming language Miranda [37], TRS were used in the underlying model for the language OBJ [22], and TGRS were the model for the language Clean =-=[13, 32]-=-. For the implementation of a language, independent of the chosen implementation model, the notion of types plays an important role. Types are essential to obtain efficient machine code when compiling... |

58 |
Principal type schemes for an extended type theory
- Rocca, S, et al.
- 1984
(Show Context)
Citation Context ...riable in by the type ( ) would give a type that is not an element of . The next operation on pairs, copying, can be seen as a very simple version of the various operations of expansion as defined in =-=[17, 36, 3]-=-. For readers familiar with those definitions of expansion: copying is a total expansion, that is not ‘computed’: all type-variables occurring in basis and type are copied. It is an operation on types... |

54 |
Functional characters of solvable terms. Zeitschrift für Mathematische Logik und Grundlagen der Mathematik
- Coppo, Dezani-Ciancaglini, et al.
- 1981
(Show Context)
Citation Context ...riable in by the type ( ) would give a type that is not an element of . The next operation on pairs, copying, can be seen as a very simple version of the various operations of expansion as defined in =-=[17, 36, 3]-=-. For readers familiar with those definitions of expansion: copying is a total expansion, that is not ‘computed’: all type-variables occurring in basis and type are copied. It is an operation on types... |

39 |
An extension of the basic functionality theory for the - calculus
- Coppo, Dezani-Ciancaglini
- 1980
(Show Context)
Citation Context |

38 |
Term rewriting systems: a tutorial
- Klop
- 1987
(Show Context)
Citation Context ... definition like Pair(In-left(x),In-right(x)) x. is, given the two rules above, not allowed. A difficulty with these three rules together, is that they form Klop’s famous ‘Surjective Pairing’ example =-=[27]-=-; this function cannot be expressed in LC because when added to LC, the Church-Rosser property no longer holds. This implies that, although both LC and TRS are Turing-machine complete, there is no gen... |

29 |
A complete type inference algorithm for simple intersection types
- Coppo, Giannini
- 1992
(Show Context)
Citation Context ... example the first and second. This in particular is troublesome, since it is not obvious at all what in this case the type of G(H) should be. One solution for this problem would be to allow, like in =-=[18]-=-, for more than one principal pair for a term (notice that this is not the same as saying that a principal type can be an intersection). Another would be to introduce – formally – an extra type constr... |

27 | Lambda calculus with patterns
- Oostrom
- 1990
(Show Context)
Citation Context ...hat rule to a term Pair(In-left( )),(In-right( )), the terms and have to be equivalent, something that cannot be expressed in LC. For a very elegant discussion of a lambda calculus with patterns, see =-=[33]-=-. The kind of programming language we aim at uses more general rewrite systems than just functionconstructor systems. The systems considered in this paper do not discriminate against the varieties of ... |

25 | H.: Modularity of strong normalization and confluence in the algebraic-λ-cube
- Barbanera, Fernández, et al.
- 1994
(Show Context)
Citation Context ... ported from one to the other. Recently, some results have been obtained in the field of typed TRS [20] and the combination of those with (intersection) type assignment systems for LC (e.g. [7], [8], =-=[9]-=-). Using essentially the solution of [6], also for the system as presented in this paper we will prove that type assignment is closed for subject reduction. To obtain this result, first the three oper... |

21 | Combining first and higher order rewrite systems with type assignment systems - Barbanera, Fernández - 1993 |

18 | A meta-language for typed object-oriented languages
- Castagna
- 1995
(Show Context)
Citation Context ...g The concept of overloading in programming languages is normally used to express that different objects (typically procedures) can have the same identifier. (For another approach to overloading, see =-=[15, 14]-=-.) At first sight this seems to be nothing but a tool to obtain programming convenience, but the implementational aspects of languages with overloading are not at all trivial. In functional programmin... |

17 | Partial Intersection Type Assignment in Applicative Term Rewriting Systems - Bakel - 1993 |

16 |
Intersection types for combinatory logic
- Dezani-Ciancaglini, Hindley
- 1992
(Show Context)
Citation Context ...x, y) x I(x) x and their Curryfied versions. Since CCL is Curry-closed, it is even combinatory complete: every lambda term can be translated into a term in CCL; for details of such a translation, see =-=[10, 21]-=-. Example 2.8 In general, if the left-hand side of a rewrite rule is F ( , . . . , ), then the need not be simple variables, but can be terms as well, as for example in the rewrite rule M(S (x, y)) S ... |

15 |
Modularity of Termination and Confluence in Combinations of Rewrite Systems with λω
- Barbanera, Fernández
- 1993
(Show Context)
Citation Context ...ot be ported from one to the other. Recently, some results have been obtained in the field of typed TRS [20] and the combination of those with (intersection) type assignment systems for LC (e.g. [7], =-=[8]-=-, [9]). Using essentially the solution of [6], also for the system as presented in this paper we will prove that type assignment is closed for subject reduction. To obtain this result, first the three... |

12 | Strong Normalization of Typeable Rewrite Systems
- Bakel, Fernández
- 1994
(Show Context)
Citation Context ... is looking for such a pair. Take the well-known function foldr that is defined by foldr f i [ ] = i foldr f i (a:b) = f a (foldr f i b) and can be typed by (1 2 2) 2 [1] 2. Take the term foldr Add 1 =-=[2,3,4]-=-, then it is clear that this term should be typeable by the type int. When constructing the type assignment for this term, 23sthe subterm foldr Add is typed. For this term as such the type needed for ... |

12 |
Type reconstruction in finite-rank fragments of the second-order λcalculus
- Kfoury, Tiuryn
- 1992
(Show Context)
Citation Context ...s between the two systems. To avoid confusion, it is necessary to point out that there also exists a notion of type assignment that is called the Rank 2 Polymorphic Type Assignment System, defined in =-=[25]-=-. This system is an extension of Milner’s system, by allowing for the -type constructor to occur also on the left-hand side of an arrow-type, instead of only at top level. (It is also a restriction of... |

11 | Partial Type Assignment in Left Linear Applicative Term Rewriting Systems
- Bakel, Smetsers, et al.
- 1992
(Show Context)
Citation Context ...ies they possessed in the world of LC. For example, type assignment in TRS in general does not satisfy the subject reduction property, i.e.: types are not preserved under rewriting, as illustrated in =-=[6]-=-. Moreover, this paper aims to present type assignment for languages that allow for patterns, and as discussed in Section 6.1, notions of type assignment with intersection types for LC and TRS are, in... |

10 |
A proper extension of ML with an effective type-assignment
- KFOUR, TIURYN, et al.
- 1988
(Show Context)
Citation Context ...an one rewrite rule as used in Miranda is copied, as well as the way of dealing with untyped recursive definitions. (This is a slightly more liberal way of dealing with recursion than used for ML. In =-=[31, 26]-=- another extension of the way of dealing with recursion in the ML-system is presented, in which type assignment is no longer decidable, but that is nevertheless used for type checking in Miranda. This... |

8 | Head-)Normalization of Typeable Rewrite Systems
- Bakel, Fernández
- 1995
(Show Context)
Citation Context ...alization of typeable terms has been proved, provided that recursive rules do not surpass the complexity of primitive recursion (for details, see [4]); a headnormalization result was shown to hold in =-=[5]-=- for systems that are a slight restriction of those considered in [4]. The notion of type assignment presented here is a restriction of those presented in [2, 4, 5] in that types are restricted to tho... |