One of the main ideas of algebraic topology is to consider two spaces to be equivalent if they have ‘the same shape’ in a sense that
is much broader than homeomorphism.
A rubber band is wrapped once around a flagpole. You may slide it up and down, twist it, stretch it into strange shapes — but as long
as you are not allowed to lift it over the top, you will never get it off. The pole is a hole in the space the band lives in, and the
band can feel it. To turn that feeling into mathematics, we let maps move instead of spaces: continuously, like
the frames of a film. Films of maps will let us call two spaces the same when one can be squashed onto the other, and they will
hand us our first algebraic invariant of a space — a group whose elements are loops.
In §2.1 Spaces and Continuity we called two spaces the same when there is a homeomorphism between
them: a continuous bijection with a continuous inverse, a perfect rubber-sheet correspondence. That notion is exact, but for counting
holes it is too fussy. A thick ring and a thin circle are not homeomorphic (one is two-dimensional, the other one-dimensional), yet
anyone can see that they have “the same hole”. A solid disk and a single point are not homeomorphic either, yet neither has any hole at all.
Homotopy is the coarser, more forgiving notion of sameness that sees holes and nothing else.
Paths: journeys inside a space
Everything in this chapter is built out of one simple object, which you met in §2.1 Spaces and Continuity: the path. We write I=[0,1] for the unit interval, the set of real numbers between 0 and 1 inclusive. Think of I as a clock: 0 is the
moment we set off and 1 the moment we arrive.
Read γ (“gamma”) as a traveller’s itinerary: at each moment s∈I it tells you where the traveller is, γ(s)∈X. Continuity says the traveller never teleports. Two features of this definition will matter again and again.
A path is the whole journey, timing included, not just the trail it leaves. Walking along a road at a steady pace and
walking along the same road while stopping for lunch halfway are different paths with the same trail (the same image γ(I)). Re-timing a path without changing its trail is called reparametrising it.
A path may cross itself, double back, or stand still. The constant path cx(s)=x for all s, which never
leaves the point x, is a perfectly good path. So is a path that runs around a circle five times.
A space is path-connected when any two of its points can be joined by a path. The plane is
path-connected; so is the plane with a point removed (walk around the missing point); two disjoint disks are not.
Homotopy: a movie of maps
Here is the question that drives the chapter. In the plane with a hole punched in it, take two paths from a point x0 to a point x1.Can one path be continuously slid onto the other, keeping its ends pinned down, without ever passing through the
hole? Try it below: the gold path γ0 stays put; drag the teal bead to reshape γ1, then drag the white bead
along its track to run the movie that slides one onto the other.
Paths around a holeDrag the teal bead to reshape γ₁ · drag the white bead to run the movie
Not homotopic The paths pass on opposite sides of the puncture, so every movie from one to the other has to sweep across it. The
straight-line movie hits it at t≈0.50.
Figure 2.3.1 The straight-line movie H(s,t)=(1−t)γ0(s)+tγ1(s): every point of γ0 slides along a straight
track (the faint lines) to the matching point of γ1, and the dashed curves are frames of the movie. When both paths pass on
the same side of the puncture, the movie never touches it. When they pass on opposite sides, the frames are forced across the puncture
(the pink dashed frame), and no other movie can do better: the two paths are not homotopic.
Let us describe the sliding precisely. At each moment of the filmt∈I we have a whole path, which we may call Ht; at t=0 it is γ0, at t=1 it is γ1, and in between it changes gradually. A path is a function of
one time variable s (where the traveller is during the trip), and now the trip itself evolves in a second time variable t (which
frame of the film we are watching). Packaging the two together gives a single function of two variables, H(s,t)=Ht(s). The
continuity of this function in both variables at once is what makes the film smooth: no frame jumps, and no frame tears.
Nothing here is special to paths. Any continuous map can be the subject of such a film.
Let us read every symbol. X×I is the product of the space X with the time interval:
its points are pairs (x,t) — “the point x, at time t”. The homotopy H takes such a pair and says where x has been
sent at that moment. The two equations pin down the first and last frames: at time 0 the film shows f, at time 1 it shows g. The symbol ≃ is read “is homotopic to”.
For paths we usually want more: the ends should stay pinned down for the whole film, otherwise every path could be reeled in to a
single point by sliding its endpoints together.
Homotopy is an equivalence relation
“Is homotopic to” behaves like a sameness relation, in the precise sense of §1.2 Equivalence and Quotients: it is an equivalence relation. Each of the three properties is an operation on films.
Reflexive (f≃f): the still filmH(x,t)=f(x), which shows f in every frame.
Symmetric (if f≃g then g≃f): play the film backwards, Hˉ(x,t)=H(x,1−t).
Transitive (if f≃g and g≃h then f≃h): show the first film and then the second, each
at double speed. If H runs from f to g and K from g to h, the joined film is H(x,2t) for t≤21 and K(x,2t−1) for t≥21. At t=21 both formulas give g(x), so the two halves meet
without a jump.
The equivalence classes are called homotopy classes; the class of f is written [f]. The same three films, with ends
held still, show that path homotopy is an equivalence relation too.
The same shape in a broader sense
Now we use films to compare spaces. Hatcher opens his book, straight after the sentence in our epigraph, with the
alphabet (Hatcher 2002, pp. 1–2). Write each capital letter in two ways: as a thin skeleton of curves, and as a fat, inflated version of itself. The thin letter
sits inside the fat one, and the fat one can be squashed onto it by sliding each point straight in towards the skeleton.
Thick letters, thin lettersTap a letter to shrink it · sort them
Figure 2.3.2 Each thick letter shrinks onto its gold skeleton without tearing. Sorted by homotopy type, the letters fall into just three families:
those that can be shrunk to a point, those with one loop (like a circle S1), and B, with two loops (like the figure
eight S1∨S1). Homeomorphism would tell many of these apart; homotopy only sees the loops.
What exactly is the relationship between a fat letter X and its thin skeleton A? There are two natural maps between them. One is
the inclusion i:A→X, which regards each point of the thin letter as a point of the fat one. The other is the squash r:X→A, which sends every point of the fat letter to where it ends up after the shrinking. Neither is a
homeomorphism. But each undoes the other up to homotopy:
squashing a point of the thin letter does nothing (it is already on the skeleton), so r∘i=idA exactly;
including after squashing, i∘r:X→X, is not the identity of the fat letter — it crushes everything onto the
skeleton — but the shrinking film itself is a homotopy from idX to i∘r.
That is the pattern we make into a definition.
Compare this with a homeomorphism, where we demand g∘f=idX and f∘g=idY on the nose. A homotopy equivalence
only asks the round trips to be deformable to the identity. Every homeomorphism is a homotopy equivalence (take the still
films), but the converse fails wildly, as the letters show. With the same three film operations as before one checks that ≃ is
an equivalence relation on spaces (one of the exercises does the transitive step).
Space
is homotopy equivalent to
but not homeomorphic to it, because
a solid disk D2, or all of Rn
a point
a point is a single point: there is not even a bijection
a thick ring (annulus)
the circle S1
removing two points disconnects S1 but not the ring
the plane minus a point R2∖{0}
the circle S1
S1 is compact, the punctured plane is not
the Möbius band
the circle S1
removing two points disconnects S1 but not the band
the torus with one point removed
the figure eight S1∨S1
removing its crossing point disconnects the figure eight; no single point disconnects the punctured torus
the letter A
the letter O
A has points where three strokes meet
Deformation retractions
All the examples in the table above are of one convenient kind: the bigger space can be squashed onto a subspace while the subspace
itself stays perfectly still.
Explore four of them below. Pick a space, then play or scrub through time: you are watching the frames ft of the film, and the faint grid
lines are painted on the space so that you can see every point travel. The inset shows the same film drawn flat.
Deformation retractionsChoose a space · play or scrub time · drag to rotate
flat picture
t = 0t = 1
at time t:slide outward from the puncture
Figure 2.3.3 A disk shrinks to its centre; an annulus is squeezed onto its middle circle; a Möbius band is squeezed onto its gold core circle (watch
its single teal edge, which runs round twice, collapse onto the core); and a torus with one puncture is pushed outward from
the puncture until only the gold circle a and the teal circle b remain. In the last one, the pink rim of the puncture ends up
running along a, then b, then a backwards, then b backwards: the loop aba−1b−1, which will be important
later.
Contractible spaces, and why homotopy is the right lens
The disk in Figure 2.3.3 shrank all the way to its centre, and the letters C and T of Figure 2.3.2 can go as far: squeeze the
skeleton of a C along itself and it ends as a single point. The simplest homotopy type of all is that of a point, and spaces of
that type get a name.
Rn, every disk and ball, every convex set, every tree (a graph without cycles) and the letters C,E,T,X are contractible. A contractible space is always path-connected: if H contracts X to the point x0, then for
each x the map t↦H(x,t) is a path from x to x0. So any two points can be joined through x0.
This is the moment to say why homotopy is the right lens for this book. We are looking for invariants: numbers, or groups,
attached to spaces in such a way that equal spaces get equal labels. The finer the notion of “equal”, the more labels are allowed and
the harder they are to compute. Homotopy is the coarse, generous notion — and invariants that do not change under homotopy equivalence
have a superpower.
Loops, and how to compose them
Fix a point x0 of a space X, and call it the basepoint: a home from which all our journeys start and to which they
return.
Two loops at the same basepoint can be done one after the other: first take trip α, then trip β. But our trips must
fit into the single time interval I, so each is run at double speed.
At s=21 the first formula gives α(1)=x0 and the second gives β(0)=x0, so the two halves join up.
(The same formulas concatenate any two paths, provided the first ends where the second starts.) The order matters: in α⋅β we do αfirst.
Is concatenation associative? Not quite, if we are strict. In (α⋅β)⋅γ the trip α is done at
quadruple speed during the first quarter of the time, β during the second quarter and γ at double speed during the
second half; in α⋅(β⋅γ) it is α that gets the first half. Same trails, same order, different
timetables. The difference is only one of timing, and timing can be changed continuously.
TimetablesDrag the point in the square · run the trip
At stage t = 0.40 the trip runs α until s = 0.35, β until 0.60, then γ. Only the timing changes from t = 0 to t = 1.
Figure 2.3.4 The square of a homotopy H, with trip time s running across and movie time t running up, and the space, three
loops at x0. Each point (s,t) of the square is a position H(s,t) in the space: the white bead. Sliding the two
breakpoints from 41,21 to 21,43 turns (α⋅β)⋅γ into α⋅(β⋅γ). Choose “Inverses” to see α⋅αˉ shrink to the constant loop by turning back
earlier and earlier.
Three facts make loops, up to homotopy, behave like the elements of a group:
Associativity up to homotopy:(α⋅β)⋅γ≃α⋅(β⋅γ), by sliding the
breakpoints, as in the figure.
The constant loop does nothing, up to homotopy:c⋅α≃α≃α⋅c. The loop c⋅α waits at home for half the time and then rushes round α; shrinking the waiting time to zero is a homotopy.
A loop and its reverse cancel, up to homotopy:α⋅αˉ≃c. Go out along α and come
straight back; at stage t of the film, turn back after only the fraction 1−t of the way. At t=1 you never leave home.
The fundamental group
We are ready for the chapter’s main construction. Up to homotopy, loops compose associatively, have an identity and have inverses — so
homotopy classes of loops form a group, in the sense of §1.3 Groups.
Read π1 as “pi one”; the “1” is there because there are higher versions π2,π3,… built from spheres instead of
loops, which we will only mention. Remember that a homotopy of loops keeps the basepoint fixed for the whole film: the loop may wriggle
as it likes, but it is always anchored at home.
One point needs checking before this is a definition at all. The product is defined by choosing loops from the two classes; what if we
had chosen others? This is the “is it well-defined?” question from §0.2 How to Read Mathematics. Suppose α≃α′ by a film F and β≃β′ by a film G. Then running F and G side by side — F in the first half of each
frame, G in the second — is a film from α⋅β to α′⋅β′. So the class of the product depends only on
the classes we started with, and the three facts of the previous section become the group axioms.
The fundamental group is an invariant in exactly the sense we wanted. A continuous map f:X→Y carries loops at x0 to
loops at f(x0) and homotopies to homotopies, so it gives a homomorphismf∗:π1(X,x0)→π1(Y,f(x0)),[α]↦[f∘α]. With a little more work one shows:
Every convex set is simply connected: the straight-line film H(s,t)=(1−t)α(s)+tx0 shrinks any loop α to x0, and the basepoint never moves because α(0)=α(1)=x0. By homotopy invariance, so is every contractible space.
Now compare a sphere with a torus.
Loops on a sphere and on a torusPull the loops tight · drag to rotate
Figure 2.3.5 Pull the loops tight. On the sphere S2 the gold loop slides over the top and shrinks to a point. On the torus T2 the gold loop
round the tube and the teal loop round the hole straighten into clean circles — the teal one slides to the inner equator, where it is
shortest — and then they are stuck: shrinking further would mean leaving the surface.
Winding numbers: the fundamental group of the circle
Now for the torus’s stuck loops, and the rubber band on the flagpole. The simplest space with a hole is the circle S1, or
equivalently (by the deformation retraction above) the punctured plane R2∖{0}. A loop in the punctured plane can wind
around the hole some whole number of times. Let us measure it.
Imagine standing at the hole and watching a traveller go round the loop, always turning to face them. Count the total angle you turn
through — counter-clockwise turns counting as positive, clockwise as negative — and divide by a full turn, 2π. When the traveller
gets home you are facing the same way you started, so the total must be a whole number of turns. That whole number is the winding number of the loop.
Winding numberReshape the loop · drag the puncture · drag the teal probe along the loop
angle swept so far +0.61 turnswinding number 1
Figure 2.3.6 As the probe runs round the loop, the dashed ray from the puncture turns; the teal spiral records the total angle so far, and the
graph plots it in turns. This graph is the loop lifted to the real line. It always ends on a whole number — the
winding number. Deform the loop however you like: the end value cannot change unless you drag the loop across the puncture, where it
jumps.
The graph on the right deserves a name. The angle of a point of the circle is only defined up to adding whole turns: “a quarter turn”
and “one and a quarter turns” are the same direction. Following the traveller continuously picks out one consistent value at each
moment, a function α~:I→R (read “alpha tilde”) with no jumps. It is called the lift of the loop:
picture the real line wound into an endless spiral staircase above the circle, one storey per turn, and α~ as the route
of someone walking up and down the staircase while their shadow traces the loop.
Three dividends arrive at once. First, the rubber band on the flagpole really is stuck: its winding number is 1, the shrunken band
would have winding number 0, and winding numbers do not change under homotopy. Second, the question we left open has its answer: the
circle is not contractible, because a contractible space has trivial fundamental group and π1(S1)≅Z is not trivial.
Third, since the punctured plane deformation retracts onto the circle, π1(R2∖{0})≅Z as well.
When order matters: the figure eight
Every fundamental group so far has been abelian: the order of composing loops did not matter. The
figure eight changes that, and in doing so reveals what homology will keep and what it will throw away.
Let X=S1∨S1 be two circles joined at one point, which we take as the basepoint x0. Let a be the loop once round
the left circle and b once round the right one, both counter-clockwise, and write a−1,b−1 for their reverses. Any loop
can be pulled tight into a sequence of these four moves, recorded as a word such as aba−1b−1 or a3b−2a (read left to right: first a three times, and so on). Some words visibly describe the same loop: aa−1 goes round and
straight back, and shrinks to nothing. Cancelling every such adjacent pair until none is left produces a reduced word.
That different reduced words give non-homotopic loops is the hard part; it is usually proved with van Kampen’s theorem or with covering
spaces (Hatcher 2002, Example 1.21, §1.3), and we shall take it on trust. The figure below shows the idea behind the covering-space proof. Build your
own loops from the four letters and watch three pictures at once.
Loops on the figure eightBuild a word from the letter keys · tap a letter to remove it · pull it tight
the loop on S1∨S1
π1: a walk on the tree of words
H1: a walk on the grid Z2
word
in π1
abalready reduced
in H1
a+bonly the net counts survive
Figure 2.3.7 First the loop, one petal per letter, numbered in order (dashed petals cancel). Then the same trip as a walk on an infinite tree,
one direction per letter — this tree is the “staircase” of the figure eight, and the walk’s end point is the reduced word. Last, the
walk on the grid Z2, which only remembers how many steps went each way. Compare ab with ba: different ends on the tree,
the same end on the grid.
Try ab and then ba. As loops, they go round the two circles in opposite orders; as reduced words they are different, so they
are not homotopic: ab=ba in π1. The fundamental group of the figure eight is not abelian. Now try the commutator aba−1b−1. Each circle is traversed once in each direction, so every “net count” is zero, and the grid walk
returns home. Yet the word is already reduced, the tree walk ends four steps away, and the loop cannot be shrunk.
Here, finally, is the punctured torus again. It deformation retracts onto the figure eight, so its fundamental group is free on a and b too — and the rim of the puncture, which the film of the earlier figure carried onto aba−1b−1, is a loop that cannot
be shrunk. Fill the puncture back in and the square reappears to shrink it: the torus’s ab=ba is precisely the effect of the one
missing disk.
Loops around a knot
Order-sensitive loops answer a question from §2.1 Spaces and Continuity: why can a trefoil not be untied? Homotopy itself is
no help with the knot. As a map from the circle into space, every knot is homotopic to a round circle, because a homotopy may
pass the string through itself; Figure 2.1.8 did exactly that. The knot is remembered by the space around it, the
complement R3∖K. Moving the knot about in space, without passing the string through itself, carries its
complement along by a homeomorphism, so the fundamental group of the complement cannot change. If two knots have different
groups, neither can be moved onto the other.
The loops in the complement are lassos. Put the basepoint high above the knot. For each arc of the drawing (a stretch of string
from one undercrossing to the next) there is a lasso that drops down, goes once round that arc, and climbs back. Call the
trefoil’s three lassos x,y and z. A lasso can slide along its arc freely; but sliding it under a crossing
changes it, because on the far side it also has to go round the strand on top. Each crossing therefore ties three lassos together
by a relation such as z=xyx−1. The lassos generate the whole group, and these relations are all there is: this is
the Wirtinger presentation of the knot group (Rolfsen 1976, Ch. 3), and like the figure eight’s it is
a fact we take on trust.
Lassos around a trefoilChoose a crossing to see its relation · then send the lassos to the triangle and tap a lasso to change its flip
Slide the lasso z along its strand, under this crossing: it arrives as the lasso x, but on the way it has had to go round the strand on top, whose lasso is y. So
x=y−1zy
All three: x=y−1zy,z=x−1yx,y=z−1xz
Figure 2.3.8 Three arcs, three lassos, and one relation at each crossing. In the second view each lasso is sent to one of the three flips
of the triangle from §1.3 Groups, and each crossing is checked: fafbfa must be the flip of the arc
coming out. With three different flips every check passes, and since flips do not commute, neither do the lassos.
The test is the one in the figure. Send x,y,z to the three flips f1,f2,f3 of the triangle. A relation z=xyx−1 becomes fc=fafbfa, and conjugating one flip by another always gives the third flip (or the same
one, if a=b); so every relation holds, and the assignment respects the whole group. But f1f2=f2f1, so xy=yx: the trefoil’s group is not abelian. For an unknotted circle the complement’s group is Z, generated by a
single lasso, and is abelian. The groups differ, so no amount of moving the trefoil will untie it. Knot theory, the subject of §3.7 Knots and Links, is full of arguments like this one: to tell two knots apart, find something computable
that sees the difference.
Forgetting the order: a preview of homology
The grid on the right of the figure is a picture of what happens if we insist that loops commute, declaring ab=ba for all
elements. A word then only remembers its exponent sums: the total number of a’s (counting a−1 as −1) and the
total number of b’s. The non-abelian free group collapses to the abelian group Z2, written additively as ma+nb. This
process — forcing a group to become commutative in the most economical way — is called abelianization. (Precisely, one
divides the group by the subgroup generated by all commutators; for free groups the result is always “count each letter”.)
There is a second way to see what homology gives up, and it is a picture. Shrinking a loop turns out to be the same as filling it
in.
So the fundamental group asks of every loop: is it the rim of a disk? That is the meaning of “hole” in most popular
accounts — something that stops a loop from shrinking. Homology will ask a more generous question: is the loop the rim of some
surface, a disk or anything else, handles and all? The punctured torus shows the difference. The rim of its puncture, the
commutator aba−1b−1, cannot shrink, yet it is the entire edge of a surface — the rest of the torus, a torus with a hole
in it. So homology counts
it as zero, just as the grid does. On a closed two-holed surface the same happens to the “waist” that separates the two handles: it is
the rim of either half, but of no disk. (André Henriques draws exactly this curve in his Oxford lecture on chains and cycles; see
Further reading.)
Why trade the richer group for the poorer one? Because the fundamental group is hard. Its words can be arbitrarily complicated, and
there are spaces built from finitely many cells for which no computer program can decide whether two words describe the same loop:
the problem is provably unsolvable (Boone 1958), (Hatcher 2002, Cor. 1.28). The higher homotopy groups πn are wilder still: even for the 2-sphere, πn(S2) is non-zero for infinitely many n(Hatcher 2002, p. 98), and nobody knows them all. Homology
gives up the order of loops, and in exchange becomes computable — by the linear algebra of §1.5 Linear Algebra — in every dimension at once, detecting the sphere’s hollow along the way. Hatcher’s way of putting the bridge: abelianizing frees loops
from their basepoint, so that “loops become cycles” (Hatcher 2002, p. 99). Cycles are where Part III begins.
How hard is the fundamental group? Hard enough that a famous question about the simplest possible group is still open. The knot group
above was given by generators (the lassos) and relations (one per crossing), a description called a presentation. Some presentations describe the group with one element in disguise, and recognising them is the problem.
The source of this chapter’s thick letters, deformation retractions and homotopy equivalence, with many more pictures. Informal and short; read it next.
The full story of π₁: the complete proof that π₁(S¹) ≅ ℤ by lifting to the real line, van Kampen’s theorem (which proves the figure eight’s group is free), and covering spaces. A step up in rigour.
Topology (2nd edition), Chapter 9— James R. Munkres
Sections 51–60 do paths, the fundamental group, covering spaces, π₁(S¹) ≅ ℤ and deformation retracts with complete, careful proofs. The standard undergraduate text.
Algebraic Topology: An Introduction— William S. Massey
A classic, patient textbook built around surfaces and the fundamental group. Good if you want every detail of π₁ and covering spaces done carefully.
A course recorded at the African Institute for Mathematical Sciences in 2014 (35 videos): the topology most useful in practice, taught with pictures instead of algebraic machinery. Its motto could be this chapter’s — look at the generic case, spot an invariant, solve the problem by deformation.
The first hour of a filmed fourth-year Oxford course: the fundamental group as an invariant, and the homotopy invariance any good invariant should have. A brisk review of this chapter at university pace.
The second hour turns from loops to chains and cycles — the step this chapter ends on — and draws a two-holed surface whose waist is the boundary of one half, the example at the end of this chapter.
An animated lesson that uses winding numbers to solve two-dimensional equations — the homotopy invariance of the winding number put to work. No prerequisites beyond this chapter.
A friendly short paper sorting letters up to homeomorphism — the finer cousin of this chapter’s sorting up to homotopy.
Picture-Hanging Puzzles— E. D. Demaine, M. L. Demaine, Y. N. Minsky, J. S. B. Mitchell, R. L. Rivest, M. Pătraşcufree
Hang a picture on nails so that it falls when any one nail is pulled: the solutions are words in free groups, like the commutator of the last exercise.
A long, gentle video course that draws everything, including loops, homotopies and surfaces.
References
Allen Hatcher(2002). Algebraic Topology. Cambridge University Press.free online
Henri Poincaré(1895). Analysis situs. Journal de l’École Polytechnique, 2e série, cahier 1; English translation by John Stillwell in Papers on Topology (AMS, 2010).doi
Erik D. Demaine, Martin L. Demaine, Yair N. Minsky, Joseph S. B. Mitchell, Ronald L. Rivest and Mihai Pătraşcu(2014). Picture-Hanging Puzzles. Theory of Computing Systems 54(4), 531–550.free online
Dale Rolfsen(1976). Knots and Links. Publish or Perish, Berkeley; reprinted by AMS Chelsea, 2003.
William W. Boone(1958). The word problem. Proceedings of the National Academy of Sciences 44(10), 1061–1065.free online
James J. Andrews and Morton L. Curtis(1965). Free groups and handlebodies. Proceedings of the American Mathematical Society 16 (1965), 192–195.free online
Selman Akbulut and Robion Kirby(1985). A potential smooth counterexample in dimension 4 to the Poincaré conjecture, the Schoenflies conjecture, and the Andrews–Curtis conjecture. Topology 24 (1985), 375–390.doi
Ali Shehper, Anibal M. Medina-Mardones, Lucas Fagan, Bartłomiej Lewandowski, Angus Gruen, Yang Qiu, Piotr Kucharski, Zhenghan Wang and Sergei Gukov(2024). What makes math problems hard for reinforcement learning: a case study. preprint.free online