arXiv · 2602.16291
A Calculus of Inheritance
Abstract
Just as the $\lambda$-calculus uses three primitives (abstraction, application, variable) as the foundation of functional programming, inheritance-calculus uses three primitives (mixin, definition, reference) as the foundation of declarative programming. By unifying modules, classes, objects, methods, fields, and locals under a single mixin abstraction, the calculus models inheritance simply as set union. Consequently, composition is inherently commutative, idempotent, and associative, structurally eliminating the multiple-inheritance linearization problem. Its semantics is first-order, denotational, and evaluated by tabling, even for cyclic inheritance hierarchies. Inheritance-calculus is distilled from MIXINv2, a practical implementation in which the same code acts as different function colors; ordinary arithmetic yields the relational semantics of logic programming; $\mathtt{this}$ resolves to multiple targets; and programs are immune to nonextensibility in the sense of the Expression Problem. This makes inheritance-calculus strictly more expressive than the $\lambda$-calculus in both common sense and Felleisen's sense.
Explore related subjects
Keep this discovery
Bo Yang. 2026-02-18. A Calculus of Inheritance. https://arxiv.org/abs/2602.16291
Cite the original work for its findings. Save a collection to share your selection of sources.