Mixin Composition Synthesis based on Intersection Types

12/19/2017
by   Jan Bessai, et al.
0

We present a method for synthesizing compositions of mixins using type inhabitation in intersection types. First, recursively defined classes and mixins, which are functions over classes, are expressed as terms in a lambda calculus with records. Intersection types with records and record-merge are used to assign meaningful types to these terms without resorting to recursive types. Second, typed terms are translated to a repository of typed combinators. We show a relation between record types with record-merge and intersection types with constructors. This relation is used to prove soundness and partial completeness of the translation with respect to mixin composition synthesis. Furthermore, we demonstrate how a translated repository and goal type can be used as input to an existing framework for composition synthesis in bounded combinatory logic via type inhabitation. The computed result is a class typed by the goal type and generated by a mixin composition applied to an existing class.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
12/11/2017

Inhabitation for Non-idempotent Intersection Types

The inhabitation problem for intersection types in the lambda-calculus i...
research
08/13/2021

An ML-style record calculus with extensible records

In this work, we develop a polymorphic record calculus with extensible r...
research
04/23/2019

Intersection Subtyping with Constructors

We study the question of extending the BCD intersection type system with...
research
04/30/2018

Proof-relevant Horn Clauses for Dependent Type Inference and Term Synthesis

First-order resolution has been used for type inference for many years, ...
research
04/23/2019

Intersection Types for Unboundedness Problems

Intersection types have been originally developed as an extension of sim...
research
05/05/2021

Uniqueness typing for intersection types

Working in a variant of the intersection type assignment system of Coppo...
research
10/13/2020

Resolution as Intersection Subtyping via Modus Ponens

Resolution and subtyping are two common mechanisms in programming langua...

Please sign up or login with your details

Forgot password? Click here to reset