The interior map was only half the story
The previous guides built the Riemann mapping theorem and proved it the hard way: out of a normal family of injective maps you extracted, by Montel's theorem, a limit that maximizes |f'(z_0)| and turns out to be a conformal bijection of your region onto the open unit disk. Read the conclusion carefully, though, and you notice a gap. Everything that theorem promises happens strictly inside the disk: f is holomorphic and one-to-one on the open region, and its image is the open disk |w| < 1. The boundary — the edge of your region, the unit circle on the other side — was never mentioned at all.
And the boundary is exactly where the real questions live. If you are solving a Dirichlet problem — a steady temperature with prescribed values along the rim of a region — your data sit on the boundary, and to transplant them you need the map to reach the boundary and carry those values across faithfully. The interior theorem alone cannot do this. A map can be a perfect conformal bijection of the inside while doing something wild as you approach the edge: oscillating, failing to have a limit, or smearing many boundary points onto one. So this final guide asks the boundary questions head-on: does the map extend to the edge, and is that extension well-behaved?
When the boundary matches up: Caratheodory's theorem
The clean answer is Caratheodory's theorem, and its statement is as satisfying as you could hope: if the boundary of your simply connected region is a Jordan curve — a closed curve that does not cross itself, the boundary of a region you could draw in one continuous loop without lifting the pen — then the Riemann map extends to a homeomorphism of the closed region onto the closed disk. In plain words, f stretches continuously all the way out to the edge, and on the edge it is a one-to-one, onto, continuous correspondence between your boundary curve and the unit circle, with a continuous inverse to match.
This is the theorem that makes transplanting boundary data legitimate. Once you know the boundary correspondence is a genuine homeomorphism, a temperature prescribed at each point of your region's rim becomes, unambiguously, a temperature prescribed at the matching point of the unit circle — no value gets lost, none gets duplicated. You solve the Dirichlet problem on the disk, where it is a routine Poisson-integral computation, and carry the answer back. Caratheodory is the bridge plank that lets the whole transplant strategy touch down on solid ground at both ends, not just float over the interior.
Be honest about the hypothesis, because it is doing real work. The theorem needs a Jordan boundary — no self-crossings, no pinch points, no infinitely-spiky coastline. Drop that and the correspondence can fail in vivid ways. Map onto a slit disk (a disk with a radial cut removed) and the two banks of the slit, which are different boundary points of the region, get reached from different sides yet correspond to the same geometric cut — a single edge point of your region can answer to two arc points on the circle. The cure for these pathologies is a refined notion called a prime end, which counts boundary points the way the map sees them rather than the way the plane sees them; with prime ends the correspondence is restored in full generality.
How smoothness reaches the edge: reflection
Caratheodory gives continuity up to a Jordan boundary, but for polygons and other piecewise-analytic edges we want more — we want the map to be holomorphic right across the boundary, not merely continuous up to it. The tool that delivers this is the Schwarz reflection principle from the harmonic-functions rung. Recall its promise: if a holomorphic map sends a straight segment of its boundary onto a straight segment of the target, you can reflect it across that segment to extend it holomorphically to the other side. The map's good behaviour does not stop at the wall; reflection punches a hole through the wall and continues the map beyond it.
This is exactly the lever we need for a polygon. The sides of a polygon are straight segments, and a conformal map from the upper half-plane onto a polygon sends a segment of the real axis onto each straight side. So along the open interior of every side, the map is analytic and can be reflected across — meaning it is genuinely holomorphic there, not just continuous. The only places this argument refuses to run are the polygon's corners, where two sides meet at an angle and the boundary stops being a single straight segment. The corners are precisely where the map must do something special, and pinning down that special behaviour is what produces an explicit formula.
The Schwarz-Christoffel formula: an explicit map at last
Here is the payoff the whole rung has been building toward, and it answers a complaint you were entitled to make: the Riemann mapping theorem is non-constructive — it swears a conformal map onto the disk exists but never writes one down. For one richly useful family of targets, polygons, the Schwarz-Christoffel mapping breaks that silence and hands you an honest formula. It maps the upper half-plane (or the disk) conformally onto the interior of any polygon, and you get to read the corners straight out of the integrand.
Schwarz-Christoffel map (half-plane -> polygon):
f(z) = A + C * integral from 0 to z of
(w - x_1)^(a_1 - 1) (w - x_2)^(a_2 - 1) ... (w - x_n)^(a_n - 1) dw
x_1 < x_2 < ... < x_n are real prevertices on the boundary (the real axis)
a_k * pi is the interior angle of the polygon at the k-th corner
exponent a_k - 1 bends the map by the right amount at each corner
A, C fix position, size, and rotation of the polygon
derivative: f'(z) = C * (z - x_1)^(a_1 - 1) ... (z - x_n)^(a_n - 1)
-> arg f'(z) jumps by (a_k - 1) pi as z crosses x_k = the turn at corner kThe mechanism is beautifully visual once you watch the derivative. The image direction of the map is the argument of f'(z); as z walks rightward along the real axis, it travels along a straight side of the polygon because arg f'(z) is constant on the gap between two prevertices — the modulus changes (sides have different lengths) but the direction holds. Then z crosses a prevertex x_k, the factor (z - x_k)^(a_k - 1) flips its argument, and arg f'(z) jumps by (a_k - 1) pi. That jump is exactly the angle you turn through at a corner of the polygon. String the jumps together and the moving point traces the polygon, side by side, corner by corner.
- Read off the geometry: label the polygon's corners and their interior angles, writing each interior angle as a_k * pi (so a right angle gives a_k = 1/2, a straight pass-through gives a_k = 1).
- Place the prevertices: choose real points x_1 < x_2 < ... < x_n on the boundary that will map to the corners — you may fix three of them freely, matching the three-point freedom of the Riemann map.
- Assemble the integrand: form the product of (w - x_k)^(a_k - 1) over all corners, and integrate from a base point to z to get f.
- Solve the parameter problem: choose the remaining prevertices and the constants A, C so that the side lengths and placement come out right — this is the genuinely hard, usually numerical step.
The honest fine print
Schwarz-Christoffel is not a free lunch, and pretending otherwise would betray the spirit of the whole subject. The formula tells you the shape of the map — the integrand is forced by the angles — but it does not tell you where to put the prevertices x_k or what the constants A and C are. Determining those is the notorious parameter problem, and except for very symmetric polygons it has no closed-form solution; in practice you solve it numerically. So the map is explicit in form yet still demands real work to pin down, a fair reminder that 'explicit' and 'effortless' are different words.
And the corners deserve a closer look, because that is where the integrand stops being holomorphic. At a prevertex x_k the exponent a_k - 1 is generally not a whole number, so the factor (z - x_k)^(a_k - 1) is a complex power — and complex powers are multivalued, demanding a branch and a branch cut to even be defined. The construction quietly insists you take the principal branch and keep z in the upper half-plane, where everything stays single-valued. The reflection argument from two sections ago is what guarantees the map is still perfectly holomorphic along the open sides between corners; the corners are exactly the isolated points where smoothness genuinely breaks, mirroring the polygon's own sharp turns.
Closing the rung: from compactness to a curve you can draw
Stand back and watch the rung close on itself. It opened by asking what survives a locally uniform limit of holomorphic functions — and the answer, that holomorphy survives, gave you a space of maps stable enough to take limits in. Montel's theorem turned local boundedness into compactness, the extremal problem of maximizing |f'(z_0)| picked out a champion from that compact family, and Schwarz's lemma together with Hurwitz's theorem proved the champion is a bijection. That chain delivered the abstract Riemann map. This guide then walked it out to the boundary and, for polygons, replaced the abstract existence with a curve you can integrate by hand.
Keep the two honest boundaries of the whole story in view, the same two the theorem has insisted on all along. First, the Riemann map exists only for a *simply connected* region — one with no holes — and never for the whole plane, a restriction forced way back by Liouville's theorem since a bounded entire function must be constant. Second, the abstract theorem is non-constructive, which is precisely why Schwarz-Christoffel is so prized: for the one family where we can write the map down, we should. Between the pure compactness argument and this concrete formula, you now hold both halves of conformal mapping — the proof that the map is there, and, when the target is a polygon, the means to actually compute it.