Lectures on Dessins d'Enfants

Constructing Belyĭ Maps from Valencies


Recently Kevin Pilgrim asked how one could construct a Belyĭ Map from a given set of valencies. I’ll cover this idea in more detail in my course, but I thought I’d put out a general answer now for those who are interested.


Say that is a loopless, connected, planar bipartite graph which we wish to express as the Dessin d’Enfant of some Belyĭ map . We explain how to construct such a Belyĭ map. We are motivated by the discussions found on Mathematica Stack Exchange at the web pages here and here. My 2013 REU worked on implementing these ideas over the summer as part of a Mathematica notebook.

Express the “black” vertices as , the “white” vertices as , and the midpoints of the faces as . Since , we will express , and . Say that each “black” vertex has edges incident, each “white” vertex has edges incident i.e. “black” vertices adjacent, and each face has “white” vertices adjacent. The sets , , and are the valencies of the vertices, edges, and faces, respectively. (By the way, a “clean” Dessin d’Enfant would correspond to .)

Fundamental Equation

Since we would like to write , , and for some rational function of degree , we must have the factorizations

for some nonzero constants , , and . Hence, given the sets , , and we wish to find such that

identically as a polynomial in . If you can find coefficients which make this polynomial identity true for all , then you have the desired Belyĭ map .


Since there are coefficients in this polynomial equation, we find a system of homogeneous equations in unknowns — so there will be infinitely many to choose from. In practice, it is useful to use a Möbius transformation in the form

The corresponding rational map satisfies , , and ; while the corresponding system has homogeneous equations in unknowns. We expect to find only finitely many to choose from.

As I mentioned before, my 2013 REU worked on implementing these ideas over the summer as part of a Mathematica notebook. We had trouble getting Mathematica to solve this polynomial equation when the sizes of the valencies got too large, such as 6 or 7. I’m working on getting the code to run much faster so that I can post something online soon.