A Triangle-Filling Curve

Motivated by Cantor‘s result, that the unit interval and the unit square have the same (infinite) number of points, Peano constructed a continuous map from the unit interval {[0,1]} onto the unit square {[0,1]\times [0,1]} in 1890. This was the first example of a space-filling curve. A year later, Hilbert came up with a variation of Peano’s curve and soon others (including Sierpinski, Lebesgue, Schoenberg) followed in constructing space-filling curves, which became a popular subject [1].

In 1913, the Hungarian mathematician George Pólya also defined a function [2], but instead of a square, its range is a right triangle {T}. In this post, I’ll describe Pólya’s function {P\colon[0,1]\rightarrow T} and mention an interesting fact about its differentiability, proved by Peter Lax [3].

The construction of {P(t)\in T} for any number {t\in[0,1]} is fairly simple. Write each {t} into a binary fraction

\displaystyle t=0.d_1d_2d_3\dots, \ \ \ \ \ (1)

meaning that {t=\sum_{n=1}^\infty d_n2^{-n}} with {d_n\in\{0,1\}}, and assign a sequence of nested triangles {T_1,T_2,T_3,\dots} to it as follows. First, split the initial triangle {T} into two similar triangles using its altitude, like this:

The initial triangle T split into two similar triangles TS and TL. The smallest angle of T is denoted by theta.
Figure 1. The initial triangle {T} split into two similar triangles {T_S} and {T_L}. The smallest angle of {T} is denoted by {\theta}.

Then with the additional assumption that {T} is not isosceles, the two smaller triangle aren’t of equal size. Let’s call the smaller one {T_S} and the larger {T_L}. Set {T_1=T_S} if {d_1=0} and {T_1=T_L} if {d_1=1}. Now, replace {T} with {T_1} and iterate the process to get {T_2,T_3} and so on. At each step, these triangles {T_1,T_2,T_3,\dots} become smaller and smaller, shrinking to a point, which they all have in common. This point is {P(t)}. Here are some examples. For {t=0}, we have {d_n=0} for all {n}, hence {T_n} is always the smaller triangle and the limit point is {P(0)=A} (see Figure 1). Similarly, for {t=1}, we must always choose the larger triangle, therefore {P(1)=B}. There are, however, numbers which have two different representations (1). For example, {t=1/2} can be written as {0.100\dots} or as {0.011\dots}. As it turns out, it doesn’t matter, which we pick {P(t)} will be the same for both, {P(1/2)=C}.



Figure 2. The sequence of nested triangles, for t=0, t=1, and t=1/2.
Figure 2. The sequence of nested triangles, for {t=0}, {t=1}, and {t=1/2}.

For {P} to be a triangle-filling curve, it must be a continuous surjective function of {t}. This is established by

Pólya’s Theorem. The function {P} maps the interval {[0,1]} continuously onto the triangle {T}.

As for smoothness, space-filling curves are very ugly functions. Since they’re not rectifiable, one expects them to be not differentiable. In fact, this was the homework Peter Lax gave his students. Prove that Pólya’s function {P} is nowhere differentiable! When nobody turned in the proof, He decided to work out the details and got the following surprising result:

Lax’s Differentiability Theorem. Denote by {\theta} the smaller angle of {T}.

  1. If {30^\circ\leq\theta<45^\circ}, then {P} is nowhere differentiable.
  2. If {15^\circ\leq\theta<30^\circ}, then {P} is not differentiable on a set of measure {1}, but has derivative zero on a nondenumerable set.
  3. If {\theta<15^\circ}, then {P'=0} on a set of measure {1}.

A nice elementary proof can be found in [3]. It’s really worth checking out.


  1. Sagan, H., Space-filling curves, Universitext, Springer-Verlag, New York, 1994.
  2. Pólya, G., Über eine Peanosche Kurve, Bull. Acad. Sci. Cracovie, Ser. A, 305-313, 1913.
  3. Lax, P.D., The Differentiability of Pólya’s Function, Adv. Math. 10, 456-464, 1973. doi: 10.1016/0001-8708(73)90125-4

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s