Resolution as Intersection Subtyping via Modus Ponens
Koar Marntirosian, Tom Schrijvers, Bruno C. d. S. Oliveira, Georgios, Karachalias

TL;DR
This paper demonstrates that resolution can be integrated into subtyping with intersection types using modus ponens, simplifying mechanisms and enabling first-class implicit environments in programming languages.
Contribution
It introduces a small extension to subtyping with intersection types that subsumes resolution, unifying two mechanisms and enabling first-class implicit environments.
Findings
Resolution can be subsumed by extended subtyping.
The integration clarifies the interaction between resolution and subtyping.
A calculus $mbda_i^{ ext{MP}}$ is developed with formal proofs in Coq.
Abstract
Resolution and subtyping are two common mechanisms in programming languages. Resolution is used by features such as type classes or Scala-style implicits to synthesize values automatically from contextual type information. Subtyping is commonly used to automatically convert the type of a value into another compatible type. So far the two mechanisms have been considered independently of each other. This paper shows that, with a small extension, subtyping with intersection types can subsume resolution. This has three main consequences. Firstly, resolution does not need to be implemented as a separate mechanism. Secondly, the interaction between resolution and subtyping becomes apparent. Finally, the integration of resolution into subtyping enables first-class (implicit) environments. The extension that recovers the power of resolution via subtyping is the modus ponens rule of…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
