Lower Bounds on Type Checking Overloading Dennis M(cid:2) Volpano Department of Computer Science Naval Postgraduate School Monterey(cid:3) CA(cid:3) (cid:4)(cid:5)(cid:4)(cid:6)(cid:5)(cid:3) USA Abstract Smith has proposed an elegant extension of the ML type system for polymor(cid:2) phic functional languages with overloading(cid:3) Type inference in his system requires solving a satis(cid:4)ability problem that is undecidable if no restrictions are imposed on overloading(cid:3) This short note explores the e(cid:5)ect of recursion and the structure of type assumptions in overloadings on the problem(cid:6)s complexity(cid:3) Keywords(cid:2) Type theory(cid:7) overloading(cid:7) computational complexity(cid:3) (cid:0) Introduction The ML type system (cid:2)Mil(cid:3)(cid:4)(cid:5) DaM(cid:4)(cid:6)(cid:7) has been studied extensively and has some well(cid:8) known limitations(cid:9) One practical limitationis that it prohibits overloadingby allowing nomorethanoneassumptionperidenti(cid:10)erinatypecontext(cid:9) Inanattempttoovercome thislimitation(cid:5)Smithgivesaneleganttype systemthatmergesML(cid:8)stylepolymorphism and overloading (cid:2)Smi(cid:11)(cid:12)(cid:5) Smi(cid:11)(cid:13)(cid:5) Smi(cid:11)(cid:14)(cid:7)(cid:9) The system has the usual set of unquanti(cid:10)ed types given by (cid:0) (cid:0) (cid:15)(cid:15)(cid:16)(cid:2)j(cid:0) (cid:2)(cid:0) j(cid:3)(cid:17)(cid:0)(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)(cid:0)n(cid:18) where (cid:3) is an n(cid:8)ary type constructor(cid:5) like int or matrix(cid:5) and (cid:2) is a type variable(cid:9) The set of quanti(cid:10)ed types(cid:5) or type schemes(cid:5) is given by (cid:6)(cid:15)(cid:15)(cid:16)(cid:3)(cid:2)(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)(cid:2)n with x(cid:0)(cid:15)(cid:0)(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)xm (cid:15)(cid:0)m(cid:5)(cid:0) The set f(cid:2)(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)(cid:2)ng isthe set ofquanti(cid:2)ed variablesof(cid:6)(cid:5) fx(cid:0) (cid:15)(cid:0)(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)xm (cid:15)(cid:0)mgthe set ofconstraints of(cid:6)(cid:5) and(cid:0) the body of(cid:6)(cid:9) If there are noconstraints(cid:5) the withportionof the type scheme is omitted(cid:9) The type inference rules are given in Figure (cid:12)(cid:9) We can prove typing judgements of the form A (cid:4) e (cid:15) (cid:6) where A is a (cid:10)nite set of assumptions of the form x (cid:15) (cid:6)(cid:5) called a type context(cid:9) A type context A may contain more than one typing for an identi(cid:10)er x(cid:19) in this case we say that x is overloaded in A(cid:9) We use the notation A (cid:4) C to represent A (cid:4) x (cid:15) (cid:0)(cid:4) for allx(cid:15)(cid:0) in C(cid:5) and let jAj denote the number of assumptions in type context A(cid:9) (cid:0) AppearedinInformationProcessingLetters(cid:2)(cid:3)(cid:4)(cid:5)(cid:6)(cid:7)(cid:2)pp(cid:8)(cid:9)(cid:10)(cid:6)(cid:11)(cid:2)Jan(cid:6)(cid:9)(cid:9)(cid:12)(cid:8) Thismaterialisbasedupon activitiessupported by the National Science Foundationunder Agreement No(cid:8) CCR(cid:13)(cid:9)(cid:11)(cid:14)(cid:14)(cid:3)(cid:9)(cid:15)(cid:8) Any opinions(cid:2)(cid:16)ndings(cid:2)andconclusionsorrecommendationsexpressedin this publicationare thoseof the authorsanddonotnecessarilyre(cid:17)ecttheviewsoftheNationalScienceFoundation(cid:8) (cid:12) Report Documentation Page Form Approved OMB No. 0704-0188 Public reporting burden for the collection of information is estimated to average 1 hour per response, including the time for reviewing instructions, searching existing data sources, gathering and maintaining the data needed, and completing and reviewing the collection of information. Send comments regarding this burden estimate or any other aspect of this collection of information, including suggestions for reducing this burden, to Washington Headquarters Services, Directorate for Information Operations and Reports, 1215 Jefferson Davis Highway, Suite 1204, Arlington VA 22202-4302. Respondents should be aware that notwithstanding any other provision of law, no person shall be subject to a penalty for failing to comply with a collection of information if it does not display a currently valid OMB control number. 1. REPORT DATE 2. REPORT TYPE 3. DATES COVERED 01 JAN 1996 N/A - 4. TITLE AND SUBTITLE 5a. CONTRACT NUMBER Lower Bounds on Type Checking Overloading 5b. GRANT NUMBER 5c. PROGRAM ELEMENT NUMBER 6. AUTHOR(S) 5d. PROJECT NUMBER 5e. TASK NUMBER 5f. WORK UNIT NUMBER 7. PERFORMING ORGANIZATION NAME(S) AND ADDRESS(ES) 8. PERFORMING ORGANIZATION Department of Computer Science Naval Postgraduate School Monterey, REPORT NUMBER CA 93943 9. SPONSORING/MONITORING AGENCY NAME(S) AND ADDRESS(ES) 10. SPONSOR/MONITOR’S ACRONYM(S) 11. SPONSOR/MONITOR’S REPORT NUMBER(S) 12. DISTRIBUTION/AVAILABILITY STATEMENT Approved for public release, distribution unlimited 13. SUPPLEMENTARY NOTES 14. ABSTRACT 15. SUBJECT TERMS 16. SECURITY CLASSIFICATION OF: 17. LIMITATION OF 18. NUMBER 19a. NAME OF ABSTRACT OF PAGES RESPONSIBLE PERSON a. REPORT b. ABSTRACT c. THIS PAGE UU 8 unclassified unclassified unclassified Standard Form 298 (Rev. 8-98) Prescribed by ANSI Std Z39-18 (cid:17)hypoth(cid:18) A(cid:4)x(cid:15)(cid:6)(cid:5) if x(cid:15)(cid:6)(cid:7)A (cid:0) (cid:17)(cid:2)(cid:8)intro(cid:18) A(cid:5)fx(cid:15)(cid:0)g(cid:4)e(cid:15)(cid:0) (cid:0) (cid:17)x does not occur in A(cid:18) A(cid:4)(cid:8)x(cid:5)e(cid:15)(cid:0) (cid:2)(cid:0) (cid:0) (cid:17)(cid:2)(cid:8)elim(cid:18) A(cid:4)e(cid:15)(cid:0) (cid:2)(cid:0) (cid:0) A(cid:4)e (cid:15)(cid:0) (cid:0) (cid:0) A(cid:4)ee (cid:15)(cid:0) (cid:17)let(cid:18) A(cid:4)e(cid:15)(cid:6) (cid:0) A(cid:5)fx(cid:15)(cid:6)g(cid:4)e (cid:15)(cid:0) A(cid:4)let x(cid:16)e in e(cid:0) (cid:15)(cid:0) (cid:17)x does not occur in A(cid:18) (cid:17)(cid:3)(cid:8)intro(cid:18) A(cid:5)C (cid:4)e(cid:15)(cid:0) A(cid:4)C(cid:2)(cid:2)(cid:20) (cid:15)(cid:16)(cid:9)(cid:20)(cid:7) A(cid:4)e(cid:15)(cid:3)(cid:2)(cid:20) with C(cid:5)(cid:0) (cid:17)(cid:2)(cid:20) not free in A(cid:18) (cid:17)(cid:3)(cid:8)elim(cid:18) A(cid:4)e(cid:15)(cid:3)(cid:2)(cid:20) with C(cid:5)(cid:0) A(cid:4)C(cid:2)(cid:2)(cid:20) (cid:15)(cid:16)(cid:9)(cid:20)(cid:7) A(cid:4)e(cid:15)(cid:0)(cid:2)(cid:2)(cid:20) (cid:15)(cid:16)(cid:9)(cid:20)(cid:7) (cid:17)(cid:6)(cid:2)(cid:18) A(cid:4)e(cid:15)(cid:6) (cid:0) (cid:6)(cid:6)(cid:2) (cid:6) (cid:0) A(cid:4)e(cid:15)(cid:6) Figure (cid:12)(cid:15) Typing Rules with Overloading (cid:6) (cid:21)(cid:15)real (cid:2)real (cid:2)real (cid:21)(cid:15)(cid:3)(cid:2) with (cid:21)(cid:15)(cid:2)(cid:2)(cid:2)(cid:2)(cid:2)(cid:5) matrix(cid:17)(cid:2)(cid:18)(cid:2)matrix(cid:17)(cid:2)(cid:18)(cid:2)matrix(cid:17)(cid:2)(cid:18) (cid:7)(cid:15)int (cid:2)int (cid:2)int (cid:7)(cid:15)real (cid:2)real (cid:2)real (cid:7)(cid:15)(cid:3)(cid:2) with (cid:21)(cid:15)(cid:2)(cid:2)(cid:2)(cid:2)(cid:2)(cid:4) (cid:7)(cid:15)(cid:2)(cid:2)(cid:2)(cid:2)(cid:2)(cid:5) matrix(cid:17)(cid:2)(cid:18)(cid:2)matrix(cid:17)(cid:2)(cid:18)(cid:2)matrix(cid:17)(cid:2)(cid:18) Figure (cid:6)(cid:15) A recursive type context Observe thatwhenC isemptythe(cid:17)(cid:3)(cid:8)intro(cid:18)and(cid:17)(cid:3)(cid:8)elim(cid:18)rulesreduce respectively to typegeneralizationandspecializationinthetypesystemofDamasandMilner(cid:2)DaM(cid:4)(cid:6)(cid:7)(cid:9) The second hypothesis ofthe (cid:17)(cid:3)(cid:8)intro(cid:18)rule says thata constraint set can be movedinto a type scheme only if the constraint set is satis(cid:10)able(cid:19) the typing A(cid:4) e (cid:15)(cid:3)(cid:2)(cid:20) with C(cid:5)(cid:0) cannot be derived unless we know that there is some way of instantiatingthe (cid:2)(cid:20) so that C is satis(cid:10)ed(cid:9) This leads to the followingproblem(cid:15) De(cid:2)nition(cid:3)(cid:4)(cid:3) CS(cid:3)SAT is the problem of given a constraint set C and a type context A(cid:4) is there a substitution S such that A(cid:4)CS(cid:5) In practice(cid:5) we would expect a type inference algorithm to generate C by specializing the constraints oftype schemes in A(cid:9) So fromnowon(cid:5) we assume that constraints in C can be formed by specializing constraints in A(cid:9) CS(cid:3)SAT isundecidableaswasshownbySmith(cid:2)Smi(cid:11)(cid:12)(cid:7)(cid:9) Typeschemesinthissystem permitvery expressive type contexts to be constructed(cid:5) someofwhichmaybe recursive in the followingsense(cid:9) De(cid:2)nition(cid:3)(cid:4)(cid:5) Let S (cid:16) fx(cid:4)y(cid:5)(cid:5)(cid:5)g be the set of identi(cid:2)ers with assumptions in a type context A(cid:6)Then the dependency relationof Ais a binaryrelationR on S such thatxRy i(cid:7) x(cid:15)(cid:6) (cid:8)A and y (cid:15)(cid:0) is a constraint of (cid:6) (cid:8)x and y are not necessarily distinct(cid:9)(cid:6) De(cid:2)nition(cid:3)(cid:4)(cid:6) A type context Awith dependency relation R is recursivei(cid:7) (cid:9)x(cid:5)xR(cid:2)x(cid:6) For example(cid:5) the type context in Figure (cid:6) is recursive due to the assumptions for (cid:7) and (cid:21)(cid:9) As a result of recursion(cid:5) we have in(cid:10)nitely(cid:8)manytypes at which (cid:7) and (cid:21) have instances(cid:9) (cid:2) Lower Bounds AlthoughCS(cid:3)SAT isdecidablewhenrecursionisprohibited(cid:5)itremainshardifthestruc(cid:8) ture of type assumptions is not restricted(cid:5) requiring nondeterministic exponential time(cid:9) Theorem (cid:5)(cid:4)(cid:3) CS(cid:3)SAT is NEXPTIME complete for nonrecursive type contexts(cid:6) Proof(cid:6) Given a nonrecursive type context A and a constraint set C(cid:5) construct a set E of equations as follows(cid:9) For each constraint x (cid:15) (cid:0) (cid:8) C(cid:5) nondeterministically choose an assumptionx(cid:15)(cid:3)(cid:2)(cid:20) with C(cid:0)(cid:5)(cid:0)(cid:0) in A(cid:5) add to E equation (cid:0) (cid:16)(cid:0)(cid:0)(cid:2)(cid:2)(cid:20) (cid:15)(cid:16)(cid:10)(cid:20)(cid:7)(cid:5)where (cid:10)(cid:20) is new(cid:5) (cid:0) and add the members of C (cid:2)(cid:2)(cid:20) (cid:15)(cid:16) (cid:10)(cid:20)(cid:7) to C(cid:9) Then E is uni(cid:10)able i(cid:22) the original set C is (cid:13) satis(cid:10)able withrespect to A(cid:9) The size ofE is at mostexponential in jAj(cid:9) Whether E is uni(cid:10)able can be decided in linear time so CS(cid:3)SAT is in NEXPTIME(cid:9) For hardness(cid:5) let B (cid:16)fcp(cid:3)n(cid:4)(cid:2)(cid:0) (cid:15)(cid:7)(cid:2)q(cid:5) (cid:2)a(cid:0) (cid:2)a(cid:6) (cid:2)(cid:10)(cid:10)(cid:10)(cid:2)an (cid:2)(cid:7)g in the PTIME reduction of Theorem (cid:14)(cid:9)(cid:6) in (cid:2)VoS(cid:11)(cid:12)(cid:7)(cid:19) a(cid:0)a(cid:6)(cid:10)(cid:10)(cid:10)an is an input string x to a nondeterministic Turing machine M of exponential time complexity(cid:9) Then B is satis(cid:10)able under Ax i(cid:22) M accepts x(cid:9) Next we consider the complexityof CS(cid:3)SAT with the style ofoverloadingpermitted in the lazy functional programming language Haskell (cid:2)Has(cid:11)(cid:6)(cid:7)(cid:9) An identi(cid:10)er may be overloaded in Haskell(cid:5) but only through multiple instance declarations(cid:5) which give rise to what we call a Haskell type context(cid:9) A Haskell type context is very structured(cid:9) De(cid:2)nition(cid:5)(cid:4)(cid:3) SupposeX istheset ofidenti(cid:10)ersofanonemptytypecontextH(cid:9) Then H is a Haskell type context if for each x (cid:8) X(cid:5) there is a type (cid:0)x with exactly one free type variable(cid:2)x(cid:5) possibly occurring morethan once(cid:5) such that all assumptionsfor x in H are described by the set x(cid:15)(cid:3)(cid:10)(cid:20)(cid:0) with C(cid:0)(cid:5)(cid:0)x(cid:2)(cid:2)x(cid:15)(cid:16)(cid:3)(cid:0)(cid:17)(cid:10)(cid:20)(cid:0)(cid:18)(cid:7) (cid:0) (cid:5) (cid:9) (cid:2)(cid:3) (cid:9)(cid:9) (cid:2)(cid:6) x(cid:15)(cid:3)(cid:10)(cid:20)n with Cn(cid:5)(cid:0)x(cid:2)(cid:2)x(cid:15)(cid:16)(cid:3)n(cid:17)(cid:10)(cid:20)n(cid:18)(cid:7) (cid:2)(cid:4) (cid:2)(cid:7) where n(cid:11)(cid:12)(cid:5) (cid:3)i (cid:12)(cid:16)(cid:3)j for i(cid:12)(cid:16)j(cid:5) and y (cid:15)(cid:11)(cid:8)Ci impliesy (cid:8)X(cid:5) (cid:11)(cid:16)(cid:0)y(cid:2)(cid:2)y (cid:15)(cid:16)(cid:10)(cid:7)(cid:5) and (cid:10) (cid:8)(cid:10)(cid:20)i(cid:9) If x is overloaded (cid:17)n(cid:12)(cid:12)(cid:18) then the type (cid:0)x used in formingthe assumptions for x is the least common generalization (cid:2)Rey(cid:3)(cid:23)(cid:7) of the types (cid:0)x(cid:2)(cid:2)x (cid:15)(cid:16)(cid:3)(cid:0)(cid:17)(cid:10)(cid:20)(cid:0)(cid:18)(cid:7)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4) (cid:0)x(cid:2)(cid:2)x(cid:15)(cid:16)(cid:3)n(cid:17)(cid:10)(cid:20)n(cid:18)(cid:7) If x has only one assumption (cid:17)n (cid:16) (cid:12)(cid:18)(cid:5) then it is(cid:5) technically speaking(cid:5) not overloaded(cid:5) nevertheless itmayappearinaconstraint(cid:9) Thebodyofatypeschemeinanassumption mustbeformedbyspecializingatypewithoneleveloftypestructure(cid:5) orinotherwords(cid:5) by a single type constructor (cid:3)(cid:5) parameterized perhaps by one or more type variables(cid:9) Further(cid:5) ina constraint y (cid:15)(cid:11)(cid:5) itmustbe possible to form(cid:11) by merelyrenamingthe free type variable of (cid:0)y(cid:5) the type used in formingall assumptions for y(cid:9) Therecursive type contextofFigure(cid:6)isanexampleofaHaskelltype context(cid:9) Con(cid:8) sider the assumptionsfor(cid:21)(cid:9) The bodies ofitstype schemes areformedbyinstantiating (cid:2) of the type (cid:2)(cid:2)(cid:2)(cid:2)(cid:2) with real and matrix(cid:17)(cid:2)(cid:18)(cid:5) so (cid:0)(cid:2) (cid:16)(cid:2)(cid:2)(cid:2)(cid:2)(cid:2)(cid:9) Regular tree languages recognized by DR tree automata characterize the types of identi(cid:10)ers in Haskell type contexts(cid:9) Formally(cid:5) a k(cid:3)ary(cid:5) (cid:24)(cid:8)valued tree is a mapping t (cid:15) (cid:2) dom(cid:17)t(cid:18)(cid:2)(cid:24)wheredom(cid:17)t(cid:18)(cid:13)f(cid:12)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)kg isanonemptysetandclosedunderpre(cid:10)xes(cid:9) We canassumeforourpurposes that(cid:24)isarankedalphabetoftypeconstructors (cid:3)(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)(cid:3)n(cid:9) We let F(cid:7) denote the set of all (cid:10)nite (cid:24)(cid:8)trees(cid:9) A deterministic root(cid:8)to(cid:8)frontier (cid:17)DR(cid:18) (cid:24)(cid:8) tree automatonM is a pair (cid:17)A(cid:4)S(cid:18) such that (cid:12)(cid:9) A is a (cid:10)nite DR (cid:24)(cid:8)algebra (cid:17)A(cid:4)(cid:24)(cid:18)(cid:5) and (cid:14) (cid:6)(cid:9) S (cid:8)A is the initial state(cid:9) A DR (cid:24)(cid:8)algebra is a pair (cid:17)A(cid:4)(cid:24)(cid:18) where A is a nonempty set of states and(cid:5) for every A m (cid:6) (cid:8) (cid:24)m with m (cid:12) (cid:23) there is a partial transition function (cid:6) (cid:15) A (cid:2) A (cid:9) If (cid:6) (cid:8) (cid:24)(cid:5)(cid:5) A then (cid:6) (cid:13) A (cid:2)GeS(cid:4)(cid:14)(cid:7)(cid:9) A run of M on a tree t is a mappingg (cid:15) dom(cid:17)t(cid:18) (cid:2)A such that g(cid:17)(cid:7)(cid:18)(cid:16)S(cid:5) and if t(cid:17)w(cid:18)(cid:16)(cid:6)(cid:5) (cid:6) (cid:8)(cid:24)m for m(cid:12)(cid:23)(cid:5) and g(cid:17)w(cid:18)(cid:16)a(cid:5) then A (cid:6) (cid:17)a(cid:18)(cid:16)(cid:17)g(cid:17)w(cid:12)(cid:18)(cid:4)g(cid:17)w(cid:6)(cid:18)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)g(cid:17)wm(cid:18)(cid:18)(cid:5) A A run g of M on a tree t is accepting if g(cid:17)w(cid:18) (cid:8) t(cid:17)w(cid:18) for every node w in the frontier of t(cid:9) The set of all trees on which M has accepting runs is the language of M(cid:5) written T(cid:17)M(cid:18)(cid:9) Decidingwhether the intersection ofasequence ofDRtree automataisnonemptyis EXPTIME complete(cid:9) Hardness can be proved by a log(cid:8)space generic reduction from polynomial(cid:8)space bounded alternating Turing machines (cid:17)ATMs(cid:18) (cid:2)Sei(cid:11)(cid:14)(cid:7)(cid:9) The lower bound on CS(cid:3)SAT for Haskell type contexts follows directly from this result while the upper bound follows fromthe followinglemma(cid:15) Lemma (cid:5)(cid:4)(cid:5) Suppose H is a Haskell type context(cid:6) If x is an identi(cid:2)er of H then a DR tree automaton Mx can be constructed such that T(cid:17)Mx(cid:18)(cid:16)f(cid:9) jH (cid:4)x(cid:15)(cid:0)x(cid:2)(cid:2)x(cid:15)(cid:16)(cid:9)(cid:7)g(cid:5) Further(cid:4) such automata can be constructed for all identi(cid:2)ers of H in time exponential (cid:8)space polynomial(cid:9) in jHj(cid:6) Proof(cid:6) GivenaHaskelltypecontextH(cid:5)letX bethesetofidenti(cid:10)ersofH(cid:9) LetA(cid:16)(cid:13)(cid:17)X(cid:18) and (cid:24) be the ranked alphabet of type constructors in H(cid:9) De(cid:10)ne Mx (cid:16)(cid:17)A(cid:4)fxg(cid:18)(cid:5)where A(cid:16)(cid:17)A(cid:4)(cid:24)(cid:18)(cid:5) and A is initiallyconstructed so that T(cid:17)A(cid:4)fg(cid:18)(cid:16)F(cid:7)(cid:9) Then extend A with A the following transitions(cid:9) For every r (cid:13) X(cid:5) let r (cid:8) (cid:3) i(cid:22) all identi(cid:10)ers in r have an A instance assumptionin H at nullarytype constructor (cid:3)(cid:9) Let (cid:3) (cid:17)r(cid:18)(cid:16)(cid:17)r(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)rk(cid:18) i(cid:22) all have an instance at type constructor (cid:3)(cid:17)(cid:2)(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)(cid:2)k(cid:18)(cid:5) for k (cid:12) (cid:23)(cid:9) Set rj(cid:5) for (cid:12) (cid:14) j (cid:14) k(cid:5) contains an identi(cid:10)er(cid:5) say z(cid:5) i(cid:22) there is an identi(cid:10)er in r whose instance assumption at jXj (cid:3) has a constraint on z involving(cid:2)j(cid:9) There are (cid:6) subsets to consider(cid:5) each of which can be stored in at most jXj space(cid:9) The followingtheorem was proved by Seidl (cid:2)Sei(cid:11)(cid:14)(cid:7) in the framework of Nipkow and Prehofer(cid:25)s type system (cid:2)NiPr(cid:11)(cid:13)(cid:7)(cid:9) A proof is given here for Smith(cid:25)s system(cid:9) Theorem (cid:5)(cid:4)(cid:6) CS(cid:3)SAT is EXPTIME complete for Haskell type contexts(cid:6) Proof(cid:6) Let H be a Haskell type context and C a constraint set(cid:9) First construct a DR tree automaton (cid:17)A(cid:4)fxg(cid:18) for each identi(cid:10)er x of H(cid:9) By Lemma (cid:6)(cid:9)(cid:6)(cid:5) this can be done in exponential time(cid:9) Suppose that for each constraint x (cid:15) (cid:11) (cid:8) C(cid:5) (cid:11) (cid:16) (cid:0)x(cid:2)(cid:2)x (cid:15)(cid:16) (cid:9)(cid:7)(cid:5) for some type (cid:9)(cid:9) Let g be a run of (cid:17)A(cid:4)fxg(cid:18) on (cid:9)(cid:9) If there is a node w (cid:8) dom(cid:17)(cid:9)(cid:18) such that (cid:9)(cid:17)w(cid:18) (cid:16) (cid:3)m(cid:5) m (cid:11) (cid:23)(cid:5) and g(cid:17)w(cid:18) is unde(cid:10)ned(cid:5) then reject(cid:9) If (cid:9) has type variables(cid:5) then associate a DRtree automatonwith every occurrence of a variablein(cid:9) as follows(cid:9) For every node w such that (cid:9)(cid:17)w(cid:18) (cid:16) (cid:14) and g(cid:17)w(cid:18) (cid:16) a(cid:5) assign to this occurrence of type variable(cid:14)(cid:5) tree automaton(cid:17)A(cid:4)a(cid:18)(cid:9) (cid:26) Nowforeverytype variable(cid:2)inC(cid:5)withoccurrences (cid:2)(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)(cid:2)m(cid:5)decide whether the languages of their assigned tree automata (cid:17)A(cid:4)a(cid:0)(cid:18)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)(cid:17)A(cid:4)am(cid:18) intersect by checking the emptiness of automaton (cid:17)A(cid:4)a(cid:0)(cid:5)(cid:10)(cid:10)(cid:10)(cid:5)am(cid:18)(cid:5) This can be done in PTIME (cid:2)Don(cid:3)(cid:23)(cid:7)(cid:9) Then accept i(cid:22) this intersection is nonempty for alltype variables in C(cid:9) Hardnessfollowsfromalog(cid:8)spacereductionfromtheDRtreeautomatonintersection problem(cid:9) Given a sequence of tree automataM(cid:0)(cid:4)M(cid:6)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)Mk(cid:5) where Mi (cid:16)(cid:17)Ai(cid:4)Si(cid:18) and Ai is the (cid:24)(cid:8)algebra (cid:17)Ai(cid:4)(cid:24)(cid:18)(cid:5) we construct a constraint set C and a Haskell type context k H such that C is satis(cid:10)able with respect to H i(cid:22) i(cid:8)(cid:0)T(cid:17)Mi(cid:18) is nonempty(cid:9) Assume the T sets of states A(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)Ak are disjoint(cid:9) For all (cid:12) (cid:14) i (cid:14) k add to H a set of assumptions Ai for Mi as follows(cid:9) If (cid:6) (cid:17)a(cid:18)(cid:16)(cid:17)a(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)am(cid:18)(cid:5) for (cid:6) (cid:8)(cid:24)m(cid:5) then add to H(cid:5) a(cid:15)(cid:3)(cid:2)(cid:0)(cid:10)(cid:10)(cid:10)(cid:2)m with a(cid:0) (cid:15)(cid:2)(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)am (cid:15)(cid:2)m(cid:5)(cid:6)(cid:17)(cid:2)(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)(cid:2)m(cid:18) Ai and for (cid:6) (cid:8)(cid:24)(cid:5)(cid:5) add a(cid:15)(cid:6) for all a(cid:8)(cid:6) (cid:9) Then with C (cid:16)fS(cid:0) (cid:15)(cid:2)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)Sk (cid:15)(cid:2)g(cid:5) we have k i(cid:8)(cid:0)T(cid:17)Mi(cid:18) is nonempty i(cid:22) C is satis(cid:10)able with respect to H(cid:9) T Now we consider the complexityofCS(cid:3)SAT when allassumptionsfor an overloaded identi(cid:10)er(cid:5) say x(cid:5) in a Haskell type context are formed by specializing (cid:0)x with unary or nullary type constructors only(cid:9) An example of this kind of overloading is given in Figure (cid:6)(cid:9) We call such contexts unary Haskell type contexts(cid:9) De(cid:2)nition(cid:5)(cid:4)(cid:5) A Haskell type context H is a unary Haskell type context if all assump(cid:3) tions for every identi(cid:2)er x of H have the form x (cid:15) (cid:0)x(cid:2)(cid:2)x (cid:15)(cid:16) (cid:3)(cid:5)(cid:7)(cid:4) for some nullary type constructor (cid:3)(cid:5)(cid:4) or x(cid:15)(cid:3)(cid:14) with C(cid:5)(cid:0)x(cid:2)(cid:2)x(cid:15)(cid:16)(cid:3)(cid:17)(cid:14)(cid:18)(cid:7)(cid:4) for some unary type constructor (cid:3)(cid:6) Theorem (cid:5)(cid:4)(cid:7) CS(cid:3)SAT is PSPACE complete for unary Haskell type contexts(cid:6) Proof(cid:6) Let H be a unary Haskell type context and C a constraint set(cid:9) Suppose that for eachconstraintx(cid:15)(cid:11)(cid:8)C(cid:5)(cid:11)(cid:16)(cid:0)x(cid:2)(cid:2)x (cid:15)(cid:16)(cid:9)(cid:7)(cid:5)forsometype(cid:9)(cid:9) Letgbearunof(cid:17)A(cid:4)fxg(cid:18)on (cid:9)(cid:5) where (cid:17)A(cid:4)fxg(cid:18) is constructed (cid:27)on demand(cid:28) and in polynomialspace by Lemma(cid:6)(cid:9)(cid:6)(cid:9) AsinTheorem(cid:6)(cid:9)(cid:13)(cid:5)assigntreeautomaton(cid:17)A(cid:4)a(cid:18)toatypevariable(cid:14) in(cid:9)if(cid:9)(cid:17)w(cid:18)(cid:16)(cid:14) and g(cid:17)w(cid:18)(cid:16)a for some node w(cid:9) If a variable (cid:2) in C has occurrences (cid:2)(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)(cid:2)m(cid:5) then check whether the languages of their assigned tree automata(cid:17)A(cid:4)a(cid:0)(cid:18)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)(cid:17)A(cid:4)am(cid:18) intersect by checking the emptiness of (cid:17)A(cid:4)a(cid:0)(cid:5)(cid:10)(cid:10)(cid:10)(cid:5)am(cid:18)(cid:9) This automaton represents a DFA since H is a unary Haskell type context(cid:9) Thus emptiness can be checked by searching an jHj (cid:6) on(cid:8)demandconstruction of it nondeterministicallyin log (cid:6) space(cid:5) or DSPACE(cid:17)jHj (cid:18)(cid:9) Hardness follows from a log(cid:8)space reduction from the DFA intersection problem (cid:2)Koz(cid:3)(cid:3)(cid:7)(cid:9) Let M(cid:0)(cid:4)M(cid:6)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)Mk be a sequence of DFAs(cid:5) where Mi is (cid:17)Qi(cid:4)(cid:24)(cid:4)(cid:15)i(cid:4)q(cid:5)i(cid:4)Fi(cid:18)(cid:5) and the sets of states Q(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)Qk are disjoint(cid:9) Create a unary Haskell type context H (cid:0) where for all(cid:12)(cid:14)i(cid:14)k(cid:5)assumptionsare added toH forMi asfollows(cid:9) For allq(cid:4)q (cid:8)Qi (cid:0) and a(cid:8)(cid:24) such that (cid:15)i(cid:17)q(cid:4)a(cid:18)(cid:16)q(cid:5) add to H(cid:5) q (cid:15)(cid:3)(cid:2) with q(cid:0) (cid:15)(cid:2)(cid:5)a(cid:17)(cid:2)(cid:18) (cid:29) and for all q (cid:8)Fi add q (cid:15)(cid:7) where (cid:7) is a nullary type constructor(cid:9) Then with C (cid:16)fq(cid:5)(cid:0) (cid:15) k (cid:2)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)q(cid:5)k (cid:15)(cid:2)g(cid:5) i(cid:8)(cid:0)L(cid:17)Mi(cid:18) is nonemptyi(cid:22) C is satis(cid:10)able with respect to H(cid:9) T And (cid:10)nally we consider unary Haskell type contexts without recursion(cid:9) Theorem (cid:5)(cid:4)(cid:8) CS(cid:3)SAT is NP hard for nonrecursive(cid:4) unary Haskell type contexts(cid:6) Proof(cid:6) The proof is by a PTIME reduction from (cid:13)CNF(cid:8)SAT(cid:9) Suppose E is a (cid:10)CNF formulawith clauses d(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)dn and distinct variables x(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)xm(cid:9) The satisfying truth assignments for each clause di are recognizable as unary trees by a DR tree automaton Mi (cid:16) (cid:17)Ai(cid:4)Si(cid:18) that can be constructed in O(cid:17)m(cid:18) time(cid:9) That is(cid:5) B(cid:0)(cid:17)B(cid:6)(cid:17)(cid:10)(cid:10)(cid:10)Bm(cid:17)(cid:7)(cid:18)(cid:10)(cid:10)(cid:10)(cid:18)(cid:18) (cid:8) T(cid:17)Mi(cid:18) i(cid:22) the assignment of truth values B(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)Bm to x(cid:0)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)xm respectively satis(cid:10)es di(cid:9) Assume the sets of states for the n automata are disjoint(cid:9) Then for all (cid:12) (cid:14) i (cid:14) n(cid:5) add to a type context H(cid:5) the assumption a(cid:15)(cid:3)(cid:2) with b(cid:15)(cid:2)(cid:5)B(cid:17)(cid:2)(cid:18) Ai Ai if B (cid:17)a(cid:18)(cid:16)b and a(cid:15)(cid:7) if a(cid:8)(cid:7) (cid:9) Then fS(cid:0) (cid:15)(cid:2)(cid:4)(cid:5)(cid:5)(cid:5)(cid:4)Sn (cid:15)(cid:2)g is satis(cid:10)able under H i(cid:22) E is satis(cid:10)able(cid:5) and H is nonrecursive and unary(cid:9) (cid:3) Summary We have observed that it is necessary to simultaneouslyrestrict both recursion in over(cid:8) loadings and the structure of type assumptions if there is to be any hope of solving CS(cid:3)SAT e(cid:30)ciently(cid:9) Surprisingly(cid:5) even for the simple kind of overloading allowed in Haskell the problem is hard(cid:9) References (cid:2)DaM(cid:4)(cid:6)(cid:7) Damas(cid:5)L(cid:9) and Milner(cid:5) R(cid:9)(cid:5) Principal Type Schemes for Functional Programs(cid:5) Proc(cid:6) (cid:11)th ACM Symp(cid:6) on Principles of Prog(cid:6) Lang(cid:6)(cid:5) pp(cid:9) (cid:6)(cid:23)(cid:3)(cid:8)(cid:6)(cid:12)(cid:6)(cid:5)(cid:12)(cid:11)(cid:4)(cid:6)(cid:9) (cid:2)Don(cid:3)(cid:23)(cid:7) Doner(cid:5) J(cid:9)(cid:5) Tree acceptors and some of their applications(cid:5) J(cid:6) Computer and System Sciences(cid:5) (cid:7)(cid:5) pp(cid:9) (cid:14)(cid:23)(cid:29)(cid:8)(cid:14)(cid:26)(cid:12)(cid:5)(cid:12)(cid:11)(cid:3)(cid:23)(cid:9) (cid:2)GeS(cid:4)(cid:14)(cid:7) Gecseg(cid:5)F(cid:9)andSteinbyM(cid:9)(cid:5)TreeAutomata(cid:5)AkademiaiKiado(cid:5)Budapest Hun(cid:8) gary(cid:5)(cid:12)(cid:11)(cid:4)(cid:14)(cid:9) (cid:2)Has(cid:11)(cid:6)(cid:7) Report on the Programming Language Haskell(cid:5) A Non(cid:8)strict(cid:5) Purely Func(cid:8) tionalLanguage(cid:5) Version (cid:12)(cid:9)(cid:6)(cid:5)ACM SIGPLAN Notices(cid:5) (cid:6)(cid:3)(cid:17)(cid:26)(cid:18)(cid:5) May (cid:12)(cid:11)(cid:11)(cid:6)(cid:9) (cid:2)Koz(cid:3)(cid:3)(cid:7) Kozen(cid:5) D(cid:9)(cid:5)LowerBounds forNaturalProofSystems(cid:5)Proc(cid:6) (cid:12)(cid:13)th Annual Sym(cid:3) posium on Foundations of Computer Science(cid:5) IEEE Computer Society(cid:5) Long Beach(cid:5) CA pp(cid:9) (cid:6)(cid:26)(cid:14)(cid:8)(cid:6)(cid:29)(cid:29)(cid:5)(cid:12)(cid:11)(cid:3)(cid:3)(cid:9) (cid:2)Mil(cid:3)(cid:4)(cid:7) Milner(cid:5) R(cid:9)(cid:5) A Theory of Type Polymorphism in Programming(cid:5) J(cid:6) Computer and System Sciences(cid:5) (cid:3)(cid:9)(cid:5) pp(cid:9) (cid:13)(cid:14)(cid:4)(cid:8)(cid:13)(cid:3)(cid:26)(cid:5)(cid:12)(cid:11)(cid:3)(cid:4)(cid:9) (cid:3) (cid:2)NiPr(cid:11)(cid:13)(cid:7) Nipkow(cid:5) T(cid:9) and Prehofer(cid:5) C(cid:9)(cid:5) Type Checking Type Classes(cid:5) Proc(cid:6) (cid:14)(cid:15)th ACM Symp(cid:6) on Principles of Prog(cid:6) Lang(cid:6)(cid:5) pp(cid:9) (cid:14)(cid:23)(cid:11)(cid:31)(cid:14)(cid:12)(cid:4)(cid:5)(cid:12)(cid:11)(cid:11)(cid:13)(cid:9) (cid:2)Rey(cid:3)(cid:23)(cid:7) Reynolds(cid:5) J(cid:9)C(cid:9)(cid:5) Transformational Systems and the Algebraic Structure of AtomicFormulas(cid:5)Machine Intelligence(cid:5) (cid:8)(cid:5) pp(cid:9) (cid:12)(cid:13)(cid:26)(cid:8)(cid:12)(cid:26)(cid:12)(cid:5)(cid:12)(cid:11)(cid:3)(cid:23)(cid:9) (cid:2)Sei(cid:11)(cid:14)(cid:7) Seidl(cid:5)H(cid:9)(cid:5)Haskell Overloadingis DEXPTIME complete(cid:5)Information Process(cid:3) ing Letters(cid:5)(cid:8)(cid:5)(cid:17)(cid:6)(cid:18)(cid:5) pp(cid:9) (cid:26)(cid:3)(cid:8)(cid:29)(cid:23)(cid:5)October (cid:12)(cid:11)(cid:11)(cid:14)(cid:9) (cid:2)Smi(cid:11)(cid:12)(cid:7) Smith(cid:5)G(cid:9)S(cid:9)(cid:5)PolymorphicTypeInference forLanguageswithOverloadingand Subtyping(cid:5) Ph(cid:9)D(cid:9) Thesis(cid:5) Department of Computer Science(cid:5) Cornell Univer(cid:8) sity(cid:5) Technical Report (cid:11)(cid:12)(cid:8)(cid:12)(cid:6)(cid:13)(cid:23)(cid:5)(cid:12)(cid:11)(cid:11)(cid:12)(cid:9) (cid:2)Smi(cid:11)(cid:13)(cid:7) Smith(cid:5) G(cid:9)S(cid:9)(cid:5) Polymorphic Type Inference with Overloading and Subtyping(cid:5) Proc(cid:6) TAPSOFT (cid:16)(cid:11)(cid:10)(cid:5) LNCS (cid:10)(cid:10)(cid:11)(cid:5) Springer(cid:8)Verlag(cid:5) pp(cid:9) (cid:29)(cid:3)(cid:12)(cid:8)(cid:29)(cid:4)(cid:26)(cid:5)(cid:12)(cid:11)(cid:11)(cid:13)(cid:9) (cid:2)Smi(cid:11)(cid:14)(cid:7) Smith(cid:5)G(cid:9)S(cid:9)(cid:5)PrincipalType SchemesforFunctionalProgramswithOverload(cid:8) ing and Subtyping(cid:5) Sci(cid:6) of Comp(cid:6) Prog(cid:6)(cid:5) (cid:5)(cid:6)(cid:5)(cid:17)(cid:6)(cid:8)(cid:13)(cid:18) pp(cid:9) (cid:12)(cid:11)(cid:3)(cid:8)(cid:6)(cid:6)(cid:29)(cid:5)Dec(cid:9) (cid:12)(cid:11)(cid:11)(cid:14)(cid:9) (cid:2)VoS(cid:11)(cid:12)(cid:7) Volpano(cid:5) D(cid:9)M(cid:9) and Smith(cid:5) G(cid:9)S(cid:9)(cid:5) On the Complexity of ML Typability with Overloading(cid:5) Proc(cid:6) (cid:17)th Conf(cid:6) on Functional Programming Languages and Computer Architecture(cid:5)LNCS (cid:8)(cid:5)(cid:6)(cid:5) Springer(cid:8)Verlag(cid:5) pp(cid:9) (cid:12)(cid:26)(cid:8)(cid:6)(cid:4)(cid:5) (cid:12)(cid:11)(cid:11)(cid:12)(cid:9) (cid:4)