I propose to study subtyping, a primitive relation important to many different areas of computer science, including software specification, object-oriented programming, modular software design, and
My first research goal is to study subtyping systems for programming languages. Sustained research over the last decade has led recently to powerful new type systems for a broad range of object-oriented features. MY research will have applications to Standard ML1S successor ML2000 and to object calculi.
My second research goal is to provide a theoretical basis for enriching proof-checking systems with subtyping. Existing proof checkers, such as LEGO, COQ, and ALF do not incorporate subtyping because we do not understand the interaction between subtyping and dependent types. I propose to study this interaction in a type system incorporating these two features.
My third research goal is to investigate the applications of typing and subtyping in concurrency.