File Information
File: 05-lr/acl_arc_1_sum/cleansed_text/xml_by_section/intro/98/p98-2169_intro.xml
Size: 3,115 bytes
Last Modified: 2025-10-06 14:06:39
<?xml version="1.0" standalone="yes"?> <Paper uid="P98-2169"> <Title>Parametric Types for Typed Attribute-Value Logic</Title> <Section position="3" start_page="1027" end_page="1028" type="intro"> <SectionTitle> 2 Parametric Type Hierarchies </SectionTitle> <Paragraph position="0"> Parametric types are not types. They are functions that provide access or a means of reference to a set of types (their image) by means of argument types, or &quot;parameters&quot; (their domain). Figure 1 has only unary functions; but in general, parametric types can be n-ary functions over n-tuples of types. 4 This means that hier4In this paper, &quot;parametric type&quot; will refer to such a function, written as the name of the function, followed by the appropriate number of &quot;type variables,&quot; variables that range over some set of types, in parentheses, e.g. list(X). &quot;Type&quot; will refer to both &quot;simple types,&quot; such as _1_ or elist; and &quot;ground instances&quot; of parametric types, i.e. types in the image of a parametric type function, written as the name of the function followed by the appropriate number of actual type parameters in parentheses, such as list(l-), set(psoa) or list(set(l-)). I will use letters t, u, and v to indicate types; capital letters to indicate type variables; capitalized words to indicate feature names; p, q, and r for names of parametric types; and g to indicate ground instances of parametric types, archies that use parametric types are not &quot;type&quot; hierarchies, since they express a relationship between functions (we can regard simple types as nullary parametric types): Definition 1: A parametric (type) hierarchy is a finite meet semilattice, (P, EP), plus a partial argument assignment function, ap : P x P x Nat -~ Nat U {0}, in which: * P consists of (simple and) parametric types, (i.e. no ground instances of parametric types), including the simple most general type, _1_, * For p,q E P, ap(p,q,i), written aq(i), is defined iff p EP q and 1 <_ i <_ arity(p), and * 0 < aq(i) <_ rn, when it exists.</Paragraph> <Paragraph position="1"> Meet semilatticehood, a requirement of (Car92)'s logic as well, allows us to talk about unification, because we have a unique mostgeneral unifier for every unifiable pair of types. The argument assignment function encodes the identification of parameters between a parametric type and its parametric subtype. The number, n, refers to the nth parameter of a parametric type, with 0 referring to a parameter that has been dropped. In practice, this is normally expressed by the names given to type variables.</Paragraph> <Paragraph position="2"> In the parametric type hierarchy of Figure 1, list and nelist share the same variable, X, be,~nelist\[l~ is 1. If _nelisttl~ = 0, then nelist cause t~list k x l Ulist k l ) would use a different variable name. As a more complicated example, in Figure 3, ad(1) = 1,</Paragraph> <Paragraph position="4"> are undefined (1&quot;) for any pair in P x Nat.</Paragraph> </Section> class="xml-element"></Paper>