Skip to content
The Lumenary
K–2Ages 5–8 35 min

Measuring length and time

Line things up, count units end to end with no gaps, start the ruler at 0 — and read the clock to the hour and half hour.

Formally verified · 14 LeanComputationally tested · 1 PythonAI-drafted · awaiting human reviewMathematically reviewed: Awaiting human review

Your guides: Chloe, Margaret, Gideon

MotivationH

Whose is longer?

In a school playground in Lima, Lucía and Wei are having a jumping contest. Lucía jumps from the line. Wei jumps from a stone a little way in front of the line. "Mine is longer!" says Wei.

Is it? Wei started further forward, so it is hard to tell. And when they measure their jumps with their feet, heel to toe, Lucía counts 9 feet and Wei counts 11. But Wei has smaller feet than Lucía…

Measuring sounds easy, but there are some clever ideas hiding inside it. By the end of this lesson you will know how to settle the contest fairly.

IntuitionH

Comparing: line them up

To see which of two pencils is longer, put them side by side with their ends lined up at the same starting line. The one that sticks out further is longer.

Left: the pencils start at the same line, so we can see the top one is longer. Right: they do not start at the same line, and the shorter pencil looks longer.

But what if the two things cannot be put side by side? Kofi wants to know if the table will fit through the classroom door. Both are too heavy to move!

Kofi cuts a piece of string exactly as long as the table is wide. Then he carries the string to the door. The door is wider than the string. So the door is wider than the table, and the table will fit. The string carried the length from one place to the other.

DefinitionsH

Big ideas

Definition— unit

A unit is a fixed amount that we use for measuring: a paper clip, a cube, a hand span, a centimetre, a metre. Every copy of a unit is exactly the same size.

Definition— length

The length of an object is how many units fit along it, end to end. There must be no gaps between the units and no overlaps.

Definition— measuring

To measure a length, start at one end of the object, lay copies of the unit along it, one after another, and count them. If the last unit does not fit exactly, say so: "a bit more than 4 clips", or "between 4 and 5 clips".

Worked examplesH

Let's measure together

Example— A pencil in paper clips

Amara's pencil is exactly 5 small paper clips long. Her brother measures the same pencil with large paper clips and gets 3. The pencil did not change! The number changed because the unit changed.

Example— Smaller unit, bigger number

The same table is 6 hand spans wide, or 24 paper clips wide, or 72 centimetres wide. The smaller the unit, the more copies you need, so the smaller the unit, the bigger the number.

Example— Settling the jumping contest

Lucía's 9 feet and Wei's 11 feet cannot be compared, because their feet are different units. To be fair, both must jump from the same line, and both jumps must be measured with the same unit — for example with a tape measure marked in centimetres, starting at 0 on the line.

Example— Gaps and overlaps

54?6?
Top: clips laid end to end along the pencil — 5 clips, the right answer. Middle: clips with gaps reach the end too soon, so we count only 4. Bottom: clips that overlap need 6 to reach the end.

If you leave gaps, each clip seems to cover more of the pencil than it really does, so you count too few clips. If the clips overlap, you count too many. Only clips laid exactly end to end give the right answer.

Explore

Measure it yourself

First measure with paper clips and hand spans. Then switch to the centimetre ruler. Try the pencil with every unit: which unit gives the biggest number? Which gives the smallest?

Measure the pencil

Measure with clips and hand spans first, then switch to the ruler.

01234567891011121314151617181920cm
Drag the object, or use the buttons. When it has focus, the arrow keys move it.

Careful: the end of a ruler is often not at 0. Line the object up with the 0 mark, or subtract the start.

ExplanationH

How a ruler works

A ruler is just a row of centimetre units glued end to end, with numbers to count them for you. The number at a mark tells you how many units there are from 0 to that mark.

So to measure, put one end of the object at 0 and read the number at the other end. If the object starts at 3 instead, the number at the other end counts 3 units that are not under the object. Take them away: an object from 3 to 18 is 18−3=1518 - 3 = 15 centimetres long.

Be careful to count the spaces, not the marks. From 0 to 4 there are 5 marks (0, 1, 2, 3, 4) but only 4 spaces — and it is the spaces that are the units.

This crayon does not start at 0

Read the start and the end. How long is the crayon really?

01234567891011121314151617181920cm
Drag the object, or use the buttons. When it has focus, the arrow keys move it.

Careful: the end of a ruler is often not at 0. Line the object up with the 0 mark, or subtract the start.

ExplanationH

A wiggly worm is not shorter

Take a piece of string and lay it straight next to a ruler. Now make it wiggly, like a worm. Its two ends are closer together — but is the string shorter?

No! Nothing was cut off. If you straighten it again it reaches exactly as far as before. Bending a string changes where its ends are, not how long it is. To measure a wiggly string, straighten it first, or measure each straight piece and add them up.

6 units33
The same string, straight and bent. Both are 6 units long; only the distance between the ends has changed.
ExplanationH

Telling the time

We measure time with units too: seconds, minutes, hours and days. A clock counts them for us.

An analogue clock has two hands. The short hand points to the hour. The long hand shows the minutes: it goes once all the way round the clock every hour.

  • At 3 o'clock the long hand points straight up to 12, and the short hand points to 3. A digital clock shows 3:00.
  • At half past 3 the long hand has gone halfway round and points down to 6. The short hand has moved halfway from 3 towards 4. A digital clock shows 3:30: thirty minutes, half of the sixty minutes in an hour.
1234567891011123:001234567891011123:30
3 o'clock (3:00) and half past 3 (3:30). The long hand shows the minutes, the short hand the hour. At half past, the short hand is halfway between 3 and 4.

O'clock and half past

Press + to move on half an hour at a time. Watch where the short hand goes.

1234567891011120510152025303540455055

Hour hand (short) · Minute hand (long)

12-hour clock

3:00 a.m.

24-hour clock

03:00

3 o'clock · a.m. means between midnight and noon.

Drag either hand, or use the buttons. When a hand has focus, the arrow keys move it.

Formal mathematicsF

Gideon's yes-or-no game

Gideon reads a statement. Is it true or false?

  1. "If the rope is longer than the stick, and the stick is longer than the pencil, then the rope is longer than the pencil." — True, always.
  2. "Measuring with smaller clips gives a smaller number." — False! Smaller units give bigger numbers.
  3. "If a pencil lies from 3 to 18 on a ruler, it is 18 centimetres long." — False. It is 18−3=1518 - 3 = 15 centimetres long. Reading the end number only works when the pencil starts at 0.
  4. "A bent string is shorter than a straight one." — False. Bending moves the ends closer, but the string is just as long.
  5. "Two half hours make one hour." — True, whatever time you start at.
For grown-ups · the same game in Lean, a proof checker

Lengths are whole numbers of units, so they are natural numbers (Nat), and "A is longer than B" is written b < a. The first statement is a library theorem; the string trick is a one-line rewrite.

longer_transLean 4Applies a library theoremFormally verified
/-- If A is longer than B, and B is longer than C, then A is longer than C.
(Lengths `a, b, c` in whole units; "A is longer than B" is `b < a`.)
This applies core Lean's `Nat.lt_trans`. -/
theorem longer_trans {a b c : Nat} (hab : b < a) (hbc : c < b) : c < a :=
  Nat.lt_trans hbc hab
Axioms used: No axiomsformal/Lumenary/Measurement.leanTry it in the Lean web editor
compare_with_stringLean 4Proved here from basic factsFormally verified
/-- Comparing two things that cannot be put side by side, using a string as a go-between.
Cut a string exactly as long as the table (`string = table`). If the door is wider than the
string (`string < door`), the door is wider than the table. -/
theorem compare_with_string {door table string : Nat} (h₁ : string = table)
    (h₂ : string < door) : table < door := by
  rw [← h₁]
  exact h₂
Axioms used: No axiomsformal/Lumenary/Measurement.leanTry it in the Lean web editor

Smaller units give bigger numbers: if something is kk big units long and one big unit is m≥2m \ge 2 small units, then it is k⋅mk \cdot m small units long, and k⋅1<k⋅mk \cdot 1 < k \cdot m.

smaller_unit_bigger_numberLean 4Proved here from basic factsFormally verified
/-- Measuring with a smaller unit gives a bigger number. If something is `k` big units long
(`k ≥ 1`) and one big unit is `m` small units (`m ≥ 2`), then it is `k * m` small units
long, and `k < k * m`:
`k = k · 1 < k · m`. -/
theorem smaller_unit_bigger_number (k m : Nat) (hk : 0 < k) (hm : 1 < m) : k < k * m :=
  calc k = k * 1 := (Nat.mul_one k).symm
    _ < k * m := Nat.mul_lt_mul_of_pos_left hm hk
Axioms used: No axiomsformal/Lumenary/Measurement.leanTry it in the Lean web editor

Laying units end to end with a gap after each one: reach adds up the units and gaps. With no gaps, nn units reach exactly nn units; with gaps, they reach further, which is why counting them gives too small a number.

reachLean 4Formally verified
/-- Lay copies of one unit end to end, with a gap after each copy (a gap of `0` means no
gap). Each entry of `gaps` is one copy of the unit followed by its gap; the result is how
far the row of units reaches. -/
def reach (unit : Nat) : List Nat → Nat
  | [] => 0
  | gap :: gaps => unit + gap + reach unit gaps
Axioms used: No axiomsformal/Lumenary/Measurement.leanTry it in the Lean web editor
reach_no_gapsLean 4Proved here from basic factsFormally verified
/-- With no gaps, `n` copies of a unit reach exactly `n` units: measuring is counting units
laid end to end. Proof by induction on the number of copies. -/
theorem reach_no_gaps (unit n : Nat) : reach unit (List.replicate n 0) = n * unit := by
  induction n with
  | zero => simp [reach]
  | succ n ih => simp only [List.replicate, reach, ih, Nat.add_zero, Nat.succ_mul, Nat.add_comm]
Axioms used: propextformal/Lumenary/Measurement.leanTry it in the Lean web editor
gaps_reach_furtherLean 4Proved here from basic factsFormally verified
/-- Gaps make a row of units reach further than the number of units says: `n` copies with
gaps reach at least `n` units. So if the row ends exactly at the end of an object, counting
the copies gives a number that is too small (or exactly right, if there were no gaps). -/
theorem gaps_reach_further (unit : Nat) (gaps : List Nat) : gaps.length * unit ≤ reach unit gaps := by
  induction gaps with
  | nil => simp [reach]
  | cons g gs ih =>
    simp only [List.length_cons, Nat.succ_mul, reach]
    omega
Axioms used: propext, Quot.soundformal/Lumenary/Measurement.leanTry it in the Lean web editor

The ruler: reading the end number gives the length exactly when the object starts at 0, and there is always one more mark than spaces.

rulerLengthLean 4Formally verified
/-- An object lying along a ruler from the mark `start` to the mark `finish` is
`finish - start` units long. -/
def rulerLength (start finish : Nat) : Nat := finish - start
Axioms used: No axiomsformal/Lumenary/Measurement.leanTry it in the Lean web editor
read_end_iff_start_zeroLean 4Proved here from basic factsFormally verified
/-- Reading the number at the end of the object gives its length **exactly when** the object
starts at 0 (for an object of positive length). This is why we line things up with 0. -/
theorem read_end_iff_start_zero (start finish : Nat) (h : start < finish) :
    rulerLength start finish = finish ↔ start = 0 := by
  unfold rulerLength
  omega
Axioms used: propext, Classical.choice, Quot.soundformal/Lumenary/Measurement.leanTry it in the Lean web editor
marks_lengthLean 4Applies a library theoremFormally verified
/-- There is always one more mark than spaces: from `start` to `finish` there are
`(finish - start) + 1` marks but only `finish - start` units. Counting marks instead of the
spaces between them gives an answer one too big. This applies core Lean's
`List.length_range'`. -/
theorem marks_length (start finish : Nat) :
    (marks start finish).length = rulerLength start finish + 1 :=
  List.length_range'
Axioms used: No axiomsformal/Lumenary/Measurement.leanTry it in the Lean web editor

A string is a list of straight pieces. Bending it points the pieces in new directions but keeps their lengths, so (by induction on the pieces) the total length never changes — while the far end can land somewhere quite different.

bend_keeps_lengthLean 4Proved here from basic factsFormally verified
/-- **A bent string is exactly as long as before.** However the pieces are pointed, the
lengths being added up are the same. Proof by induction on the pieces. -/
theorem bend_keeps_length (newDir : Piece → Dir) (s : List Piece) :
    stringLength (bend newDir s) = stringLength s := by
  induction s with
  | nil => rfl
  | cons p ps ih => simp only [bend, List.map, stringLength] at ih ⊢; rw [ih]
Axioms used: No axiomsformal/Lumenary/Measurement.leanTry it in the Lean web editor
bent_string_exampleLean 4Proved here from basic factsFormally verified
/-- A string 6 units long, first straight and then bent into an L: the length is the same,
but the far end lands somewhere else — closer to the start. Bending changes where the ends
are, not how long the string is. -/
theorem bent_string_example :
    stringLength [⟨.right, 6⟩] = stringLength [⟨.right, 3⟩, ⟨.up, 3⟩] ∧
    endPoint [⟨.right, 6⟩] = (6, 0) ∧ endPoint [⟨.right, 3⟩, ⟨.up, 3⟩] = (3, 3) := by
  decide
Axioms used: No axiomsformal/Lumenary/Measurement.leanTry it in the Lean web editor

Finally the clock face, counted in minutes after 12 o'clock and wrapping round every 720 minutes.

laterLean 4Formally verified
/-- Times on a 12-hour clock face, in minutes after 12 o'clock (`0 ≤ t < 720`).
`later t m` is the time `m` minutes after `t`; the clock wraps round after 720 minutes. -/
def later (t m : Nat) : Nat := (t + m) % 720
Axioms used: No axiomsformal/Lumenary/Measurement.leanTry it in the Lean web editor
half_hour_twiceLean 4Proved here from basic factsFormally verified
/-- Two half hours make an hour, at every time on the clock face — even across 12 o'clock. -/
theorem half_hour_twice (t : Nat) : later (later t 30) 30 = later t 60 := by
  unfold later
  omega
Axioms used: propext, Quot.soundformal/Lumenary/Measurement.leanTry it in the Lean web editor
half_past_sevenLean 4Proved here from basic factsFormally verified
/-- At half past seven (450 minutes after 12 o'clock) the short hand has reached 7 (it is
halfway to 8) and the long hand points at 6. Half an hour later it is 8 o'clock. -/
theorem half_past_seven :
    hourShown 450 = 7 ∧ minuteNumber 450 = 6 ∧ later 450 30 = 8 * 60 := by
  decide
Axioms used: No axiomsformal/Lumenary/Measurement.leanTry it in the Lean web editor

What is not formalised: real lengths are not whole numbers of units, and real measurements are never perfectly exact. Lean (with Mathlib) can talk about real-number lengths and measures, but not about how a ruler is laid on a real pencil — that is physics, not mathematics.

ComputationC

Margaret measures everything

For grown-ups · Margaret's program

Part 1 is exact arithmetic (whole centimetres divided by the size of the unit). Part 2 is a simulation with a seeded random-number generator, so every run gives the same numbers. A simulation shows what happened in these thousand tries; the explanation in the lesson (and the Lean theorem gaps_reach_further) shows why gaps can never make the count bigger.

Units, gaps and overlaps: measuring a pencil in paper clipsPythonExact computationExhaustive finite checkExperimental evidenceComputationally tested
"""Measuring with different units, and what gaps and overlaps do.

Part 1 measures six objects (whole centimetres, as in the lesson's ruler
widget) with three units: small paper clips (3 cm), large paper clips
(5 cm) and a child's hand span (12 cm). Each result is "exactly k" or
"between k and k + 1" units, and the smaller unit always gives the bigger
number. Part 2 simulates careless measuring: clips laid along a 15 cm pencil
with small random gaps, or with small random overlaps, counting the clips
that fit before the end. Gaps can only make the count too small, and overlaps
can only make it too big (or, by luck, right).

Runs unchanged in the browser (Pyodide) using only the standard library.
"""

from collections import Counter
import random
import textwrap

#: Object lengths in whole centimetres (the same as the ruler widget).
OBJECTS = {"key": 5, "leaf": 7, "crayon": 9, "feather": 11, "spoon": 13,
           "pencil": 15}
#: Units, in centimetres.
UNITS = {"small clip": 3, "large clip": 5, "hand span": 12}

def measure(length, unit):
    """Return (whole units that fit, centimetres left over)."""
    if unit <= 0:
        raise ValueError("a unit must have a positive length")
    return divmod(length, unit)

def describe(length, unit):
    """Say the measurement in words, honestly: 'exactly 3' or '3 to 4'."""
    whole, left = measure(length, unit)
    if left == 0:
        return f"exactly {whole}"
    if whole == 0:
        return "less than 1"
    return f"{whole} to {whole + 1}"

def smaller_unit_never_smaller_count(max_length=100, max_unit=20):
    """Check: if unit u < v then length // u >= length // v, for all cases."""
    return all(
        n // u >= n // v
        for n in range(max_length + 1)
        for u in range(1, max_unit + 1)
        for v in range(u + 1, max_unit + 1)
    )

def clips_that_fit(length, unit, spacings):
    """Lay clips from 0; after each clip move on by the next spacing.

    A positive spacing is a gap, a negative one an overlap. Return how many
    whole clips fit before the end of the object.
    """
    start, count = 0.0, 0
    for space in spacings:
        if start + unit > length + 1e-9:
            break
        count += 1
        start += unit + space
    return count

def simulate(length, unit, low, high, trials, seed):
    """Count clips for many measurers whose spacings are random in [low, high]."""
    rng = random.Random(seed)
    results = Counter()
    for _ in range(trials):
        spacings = [rng.uniform(low, high) for _ in range(4 * length)]
        results[clips_that_fit(length, unit, spacings)] += 1
    return dict(sorted(results.items()))

def main():
    print("1. Six objects measured in three units (exact):")
    print("   object    cm   " + "".join(f"{u:<13}" for u in UNITS).rstrip())
    for name, cm in OBJECTS.items():
        cells = "".join(f"{describe(cm, u):<13}" for u in UNITS.values())
        print(f"   {name:<8} {cm:3d}   {cells.rstrip()}")
    ok = smaller_unit_never_smaller_count()
    print("   A smaller unit never gives a smaller count, for every length")
    print(f"   0..100 cm and every pair of units 1..20 cm: {ok}")
    print()
    print("2. A 15 cm pencil measured with 3 cm clips by 1,000 measurers:")
    careful = clips_that_fit(15, 3, [0.0] * 10)
    print(f"   careful, no gaps or overlaps: {careful} clips")
    for label, low, high in [("gaps of 0.2-1 cm", 0.2, 1.0),
                             ("overlaps of 0.2-1 cm", -1.0, -0.2)]:
        counts = simulate(15, 3, low, high, 1000, seed=2024)
        shown = ", ".join(f"{k} clips: {n}" for k, n in counts.items())
        print(f"   {label:<21} {shown}")
    print()
    print(textwrap.fill(
        "Epistemic status: part 1 is exact arithmetic, and the check that a "
        "smaller unit never gives a smaller count is exhaustive for the "
        "lengths and units listed (not for all numbers). Part 2 is a seeded "
        "simulation, experimental evidence only; why gaps can never raise the "
        "count and overlaps can never lower it is explained in the lesson.",
        width=78,
    ))

if __name__ == "__main__":
    main()
Runs entirely in your browser, in an isolated worker. Nothing is sent to a server.
Exercises

Your turn

A few paper clips, a piece of string and a ruler will help. You can ask for a hint whenever you like.

1. Measuring length and time

Warm-upHuman

Wei and Lucía want to know whose pencil is longer. What is the fair way to compare them?

Choose one

2. Measuring length and time

Warm-upHuman

A leaf lies along a ruler. Its stem is at 0 and its tip is at 7. How many centimetres long is the leaf?

3. Measuring length and time

CoreHuman

A crayon does not start at 0. One end is at 3 and the other end is at 12. How many centimetres long is the crayon?

4. Measuring length and time

CoreHuman

Amara measures the same table twice: once with paper clips and once with her hand spans. Which measurement gives the bigger number?

Choose one

5. Measuring length and time

CoreHuman

A pencil is really 5 paper clips long. Jomo lays clips along it, but leaves gaps between them. What happens to his count?

Choose one

6. Measuring length and time

CoreFormal

Gideon's game: is this statement true or false? "When I bend a string into a wiggly shape, it becomes shorter."

Choose one

7. Measuring length and time

CoreFormal

The rope is longer than the stick. The stick is longer than the pencil. Which statement must be true?

Choose one

8. Measuring length and time

CoreHuman

On a clock, the long hand points to 6, and the short hand is halfway between 9 and 10. What time is it?

Choose one

9. Measuring length and time

StretchComputational

It is 2 o'clock. Counting on in half hours like Margaret (2:30, 3:00, …), how many half hours is it until 4 o'clock?

Common misconceptionsH

Things that trip people up

Misconception

Starting to measure at 1. The units are the spaces between the marks. The first centimetre runs from 0 to 1, so line the end of the object up with 0. If it starts somewhere else, subtract the starting number.

Misconception

Leaving gaps or letting units overlap. Gaps make the number too small; overlaps make it too big. Lay each unit so it touches the one before, in a straight line.

Misconception

"A bent string is shorter." Bending brings the ends closer together, but no string was cut off. Straighten it and it is as long as before.

Misconception

"A bigger number always means a longer thing." Only when the unit is the same! "11 of Wei's feet" can be shorter than "9 of Lucía's feet", because Wei's feet are smaller. That is why people agreed on standard units like the centimetre.

Misconception

Mixing up the hands of the clock. The short hand shows the hour; the long hand shows the minutes. At half past 3 the short hand is between 3 and 4, not on 3 and not on 6.

ViewpointsH

Two ways of looking at measuring

Physics— The scientist: every measurement is approximate

A scientist knows that no measurement is perfectly exact. A pencil is never exactly 15 centimetres: with a better ruler you might find 15.2, and with a microscope 15.23. So scientists always say how precise a measurement is. To make measurements agree all over the world, everyone uses the same units: since 1983 the metre has been defined as the distance light travels in a vacuum in 1/299 792 458 of a second. Lengths that fall between whole units lead to fractions, and good guesses lead to estimation.

Geometry— The geometer: length does not change when you move

A geometer notices something we used all through this lesson: a stick has the same length wherever you carry it and however you turn it. That is what lets a string carry the length of the table to the door, and a ruler carry its centimetres to any object. Moves that keep lengths the same — slides, turns and flips — are the heart of geometry, as you can see in Shapes. Later, length leads on to area and angles in Area, perimeter and angles.

History & global context

Measuring around the world, long ago

  • Body units. Many peoples measured with their bodies: the foot, the hand span, the pace, and the cubit — the length from the elbow to the tip of the middle finger. In ancient Egypt, builders used carefully made cubit rods, so that everyone's cubit was the same.
  • The Indus valley. In cities of the Indus valley civilisation, more than 4,000 years ago, people used standard weights, and archaeologists have found measuring scales with fine marks, such as a piece of shell from Mohenjo-daro.
  • The metre. In the 1790s, scientists in France defined the metre as one ten-millionth of the distance from the North Pole to the equator. The metric system is now used by almost every country in the world.
  • Time. Shadow clocks and water clocks were used in ancient Egypt, Babylon, China and India. Dividing the hour into 60 minutes goes back to the Babylonian way of counting in sixties. In China, Su Song built a great water-powered astronomical clock tower in the 1090s, and in 1206 the engineer al-Jazarī, working in what is now Turkey, described ingenious water clocks in his Book of Knowledge of Ingenious Mechanical Devices.
Further reading

For grown-ups: further reading

  • Douglas H. Clements and Julie Sarama, Learning and Teaching Early Math: The Learning Trajectories Approach (2009; 2nd ed. 2014) — the chapters on length measurement explain unit iteration, gaps and overlaps, and the "start at 1" error.
  • Ken Alder, The Measure of All Things: The Seven-Year Odyssey and Hidden Error That Transformed the World (2002) — the story of the survey that defined the metre.
  • Robert P. Crease, World in the Balance: The Historic Quest for an Absolute System of Measurement (2011) — units of measurement across cultures and centuries.