SearcharxivSearch

arXiv · 2401.12740

Controlling the C3 super class linearization algorithm

Abstract

C3 is an algorithm used by several widely used programming languages such as Python to support multiple inheritance in object oriented programming (OOP): for each class, C3 computes recursively a linear extension of the poset of all its super classes (the Method Resolution Order, MRO) from user-provided local information (an ordering of the direct super classes). This algorithm can fail if the local information is not consistent. For large hierarchies of classes, as encountered when modeling hierarchies of concepts from abstract algebra in the SageMath computational system, maintaining consistent local information by hand does not scale and leads to unpredictable C3 failures. This paper reports on the authors' work to analyze and circumvent this maintenance nightmare. First, we discovered through extensive computer exploration that there exists posets admitting no consistent local information; we exhibit the smallest one which has 10 elements. Then, we provide and analyze an algorithm that, given a poset and a linear extension, automatically builds local information for C3 in such a way that guarantees that it will never fail, at the price of a slight relaxation of the hypotheses. This algorithm has been used in production in SageMath since 2013.

Explore related subjects

Keep this discovery

BibTeXRIS

Florent Hivert, Nicolas M. Thiéry. 2024-01-23. Controlling the C3 super class linearization algorithm. https://doi.org/10.1007/s11083-022-09607-5

Cite the original work for its findings. Save a collection to share your selection of sources.

KEEP EXPLORING

Related papers

Balanced even cycles in signed graphs:Tur\'an bounds, double covers, and parity obstructions

We study Tur\'an problems for balanced even cycles in simple signed graphs, where signed subgraphs are considered up to switching. For every balanced bipartite signed graph, the signed and ordinary Tur\'an numbers differ by at most a factor of two. Our main structural results concern the underlying graphs that admit a signing in which every $2k$-cycle is unbalanced. We characterize these graphs by the absence of an odd dependence among their $2k$-cycle incidence vectors, give a cohomological formulation, and construct subgraph-minimal obstructions of arbitrarily large order. In particular, there is no finite forbidden-subgraph characterization. We also give an exact closed-walk criterion for cycles in double covers and derive a direct signed breadth-first-search upper bound. As applications, we prove \[ \hex(n,C_{+4})=\left(\frac{\sqrt2}{2}+o(1)\right)n^{3/2} \] and study the signed hexagon number $R_6(n)=\hex(n,\{C_{-3},C_{+6}\})$. We characterize the underlying graphs counted by $R_6$ and express it as an extremal problem for ordinary $C_6$-free graphs with a prescribed involution. For every sufficiently large $n$, we construct examples with $\Omega(n^{4/3})$ edges, and we give an equivariant construction attaining the coefficient obtained from the F\"uredi--Naor--Verstra\"ete lower bound by double-cover transfer. Finally, we give $n$-vertex $C_{+10}$-free signed graphs with $\Omega(n^{6/5})$ edges and use octagon examples to illustrate the limitations of theta-freeness as a signing criterion.

math.CO

Fractional DP-colorings of $d$-degenerate locally sparse graphs

Bernshteyn, Kostochka, and Zhu (2020) introduced the notion of fractional DP-coloring, which generalizes both fractional coloring and fractional list coloring. Among several foundational results, they proved that every $d$-degenerate bipartite graph $G$ satisfies $\chi_f^{\mathrm{DP}} \le (1 + o(1))\frac{d}{\log d}$, and that this bound is optimal---a stark contrast to ordinary fractional coloring. In this paper, we extend this upper bound to all $d$-degenerate triangle-free graphs, proving that $\chi_f^{\mathrm{DP}} \le (4 + o(1))\frac{d}{\log d}$. This generalizes a recent result of Martinsson and Steiner (2025) for ordinary fractional coloring. We derive this result as a corollary of a more general upper bound concerning locally sparse graph orderings. Specifically, a $d$-degenerate graph $G$ is left $k$-locally-sparse if it admits a degeneracy ordering in which, for every vertex $v$, the subgraph induced by its back-neighbors contains at most $k$ edges. We show that if a $d$-degenerate graph $G$ is left $\frac{d^2}{f}$-locally-sparse, then \[ \chi_f^{\mathrm{DP}}(G) \le (8 + o(1))\frac{d}{\log f}. \] This immediately yields an identical upper bound on the ordinary fractional chromatic number $\chi_f(G)$, improving upon the leading constants of previously known bounds. Additionally, we establish the asymptotic sharpness of this result up to the leading constant. For any $1 \ll f \le d^2$, we construct $d$-degenerate graphs that are left $\frac{d^2}{f}$-locally-sparse and satisfy $\chi_f(G) \ge (1 - o(1))\frac{d}{\log f}$. Finally, as applications of our main theorem, we obtain improved upper bounds on the fractional DP-chromatic number of $d$-degenerate $K_{1,t,t}$-free graphs, as well as $K_{t,t,t}$-free graphs with maximum degree $\Delta$. Notably, these bounds improve upon existing results even in the setting of ordinary fractional coloring.

math.CO

Erd\H{o}s-S\'{o}s for digraphs

It is shown that every Eulerian digraph on $n$ vertices with more than $(t-1)n$ arcs contains every oriented tree with $t$ edges. The digraphs have no loops or repeated arcs, but opposite arcs are permitted. The bound is sharp for each fixed oriented tree, as witnessed by disjoint unions of complete bidirected graphs. Previously, such tight bounds were not known, even just for directed paths. This can be considered as a directed analog of the recently proved Erd\H{o}s-S\'os conjecture. The result was proved by GPT-6 Astra.

math.CO