Hilfe Wegweiser Datenschutzhinweis Impressum Kontakt





Subtyping Functional+Nonempty Record Types


Vorobyov,  Sergei
Computational Biology and Applied Algorithmics, MPI for Informatics, Max Planck Society;
Programming Logics, MPI for Informatics, Max Planck Society;

Externe Ressourcen
Es sind keine Externen Ressourcen verfügbar
Volltexte (frei zugänglich)
Es sind keine frei zugänglichen Volltexte verfügbar
Ergänzendes Material (frei zugänglich)
Es sind keine frei zugänglichen Ergänzenden Materialien verfügbar

Vorobyov, S. (1999). Subtyping Functional+Nonempty Record Types. In G. Gottlob, E. Grandjean, & K. Seyr (Eds.), Proceedings of the 12th International Workshop on Computer Science Logic (CSL-98), Annual Conference on the EACSL (pp. 285-297). Berlin, Germany: Springer.

\begin{abstract} \emph{Solving systems of subtype constraints} (or \emph{subtype inequalities}) is in the core of efficient \emph{type reconstruction} in modern object-oriented languages with subtyping and inheritance, two problems known \emph{polynomial time equivalent}. It is important to know how different combinations of type constructors influence the complexity of the problem. We show the \emph{NP-hardness} of the satisfiability problem for subtype inequalities between object types built by using simultaneously both the functional and the non-empty record type constructors, but without any atomic types and atomic subtyping. The class of constraints we address is intermediate with respect to known classes. For pure functional types with atomic subtyping of a special non-lattice (\emph{crown}) form solving subtype constraints is PSPACE-complete \cite{Tiuryn92,Frey97}. On the other hand, if there are no atomic types and subtyping on them, but the largest $\top$ type is included, then both pure functional and pure record (separately) subtype constraints are \emph{polynomial time solvable} \cite{KozenPalsbergSchwartzbach94,Palsberg95ic}, which is mainly due to the lattice type structure. We show that combining the functional and nonempty record constructors yields NP-hardness \emph{without any atomic subtyping}, and the same is true for just a single type constant with a nonempty record constructor. \end{abstract}