A domain-theoretic semantics of lax generic ftmctions
The semantic structure of a polymorphic calculus lambda(m) is studied. lambda(m) is defined over a hierarchical type structure, and a function in this calculus, called a generic function, can be composed from more than one lambda expression and the ways it behaves on each type are weakly related in that it lax commutes with the coercion functions defined from the subtypes to the supertypes. Since laxness is intermediate between ad hocness (behaviors on each type are not related) and coherency (commuting with the coercion functions), lambda(m) has syntactic properties lying between those of calculi with ad hoc generic functions and coherent generic functions studied in Tsuiki (Math. Struct. Comput. Sci. 8 (1998) 321). That is, although lambda(m) allows self application and thus is not normalizing, it does not have any unsolvable terms. For this reason, all the semantic domains are connected by mutually recursive equations and, at the same time, they do not have the least elements. We solve them by considering fibrations and expressing the equations as a recursive equation about fibrations. We also show the adequacy theorem for lambda(m) following the construction of Pitts and use it to derive some syntactic properties. (C) 2002 Elsevier Science B.V. All rights reserved.
fibration overriding lax transformation domain theory object oriented