Three injera, four friends
Hana and three friends in Addis Ababa have 3 injera to share equally. That is flatbreads for people, so nobody can have a whole one.
Hana has an idea. She cuts each injera into equal pieces. Now there are pieces, and each friend takes of them. Each piece is one quarter of an injera, so each friend gets three quarters:
In whole-number arithmetic, was " remainder ". Fractions are how we answer "how much?" exactly, when the answer is not a whole number. In this lesson you will see that a fraction is a number in its own right, with its own place on the number line.
Fractions live on the number line
Take the stretch of number line from to and cut it into equal parts. Each part has length (one quarter). Three of those parts, laid end to end from , reach the point .
So a fraction is not only "part of a pizza". It is a length, and a point on the number line, just like , and . Some fractions are bigger than : five quarters, , is one whole and one more quarter, which we can write as the mixed number . Whole numbers are fractions too: .
Fractions and decimals on one line
Add your own numbers. Which ones land on the same point?
- 1/4
- 3/4
- 5/4
- 0.5
- 2/4
From smallest to largest
1/4 < 0.5 = 2/4 < 3/4 < 5/4
With 4 equal parts in each whole, which points land exactly on a tick mark?
1/4 = 0.25 · 0.5 = 2/4 = 1/2 · 3/4 = 0.75 · 5/4 = 1.25
The words we need
Definition— unit fraction
Let be a whole number bigger than . Cut the stretch from to into equal parts. The length of each part is the unit fraction .
Definition— fraction
For whole numbers and with , the fraction is the length of parts of size , laid end to end. The bottom number is the denominator: it names the size of the parts. The top number is the numerator: it counts how many parts.
Definition— equivalent fractions
Two fractions are equivalent when they mark the same point on the number line, that is, when they are the same number. There is a quick test: and are equivalent exactly when .
Definition— decimal
Decimals continue place value to the right of the ones. The first place after the decimal point counts tenths, the next hundredths, the next thousandths. So means tenths and hundredths, which is .
The denominator can never be : nobody can cut a whole into equal parts.
Worked examples
Example— Families of equivalent fractions
Cut every half into pieces and you get quarters: . Cut every half into pieces and you get sixths: . So
Going the other way, : both and are times something, so we can join pairs of eighths into quarters. A fraction is in simplest form (or lowest terms) when no whole number bigger than divides both the top and the bottom.
Example— Comparing
Which is bigger, or ? Their pieces are different sizes, so rewrite both with twelfths: and . Now the pieces are the same size, and pieces are more than . So .
With the same numerator, the bigger denominator means smaller pieces: , because fifths are bigger than eighths.
Example— Adding and subtracting
- .
- .
- . Same denominator, so just add the numerators.
Example— Decimals and fractions
- , , .
- , because .
- : multiply top and bottom by to make hundredths.
- Which is bigger, or ? Write as : that is hundredths, and is hundredths. So .
Example— A whole number times a fraction
means groups of thirds, which is thirds: . In general, . The size of the pieces stays the same, and there are times as many of them.
Explore with fraction bars
All the bars below are the same length, so they all show the same whole.
Compare. Change the numerators and denominators. How does the widget decide which fraction is bigger?
Compare fractions
Each strip is the same whole. Change the fractions and compare how much is shaded.
5/8<2/3<3/4
Cut each whole into 24 equal pieces: then just count the pieces.
3/4 = 18/242/3 = 16/245/8 = 15/24
Equivalent fractions. Move the slider to cut every part into smaller pieces. The bar does not change, but its name does.
Equivalent fractions
Cut every part into the same number of pieces. The pieces change, but the amount stays the same.
2/3=(2 × 1) / (3 × 1)=2/3
This is the simplest form: the pieces cannot be grouped into fewer equal parts.
The same amount, written different ways (tap one):
Adding. Watch how both fractions are re-cut into pieces of the same size before anything is added.
Adding and subtracting fractions
To add or subtract, first cut both wholes into pieces of the same size.
Step 1 of 3
1/2 + 1/3 = ?
The pieces are different sizes (cut into 2 and into 3), so we can't add or subtract the pieces yet.
Why the rules work
Why
Start with : the whole is cut into equal parts, and we take of them. Now cut every part into smaller equal pieces. The whole now has pieces. Each old part became new pieces, so our old parts are new pieces. We cut, but we did not move anything, so the length is the same:
Why the cross-multiplication test works
To compare and , rewrite both with the same pieces, using the rule above. Multiply the first by on top and bottom, and the second by :
Now both fractions count pieces of the same size, . Two counts of same-sized pieces give the same length exactly when the counts are equal. So exactly when . In the same way, exactly when .
Example— Using the test
Is ? Check: and . Yes! Is ? but . No: since , .
Why we add with a common denominator
We can only add counts of the same thing: sixths and sixths are sixths, just as apples and apples are apples. Halves and thirds are different-sized pieces, so we first re-cut both into sixths. In general,
Theorem— the tempting mistake
is not .
Proof
Adding to must give something bigger than . But is smaller than , because is less than . So cannot be the answer. (The correct answer is .)
∎
Why is bigger than
The digits of a decimal are counts of tenths, hundredths and thousandths. To compare, use the same place values: and . Thirty hundredths are more than twenty-five hundredths. Comparing " with " compares hundredths with tenths, which are different-sized pieces.
Which fractions have a decimal that stops?
A decimal with places is a number of thousandths, like . So a fraction has a decimal that stops exactly when it can be rewritten with denominator , , or another power of ten.
- can: , so .
- can: , so .
- cannot!
Theorem— one third never stops
There is no power of ten that can be rewritten over. So the decimal of goes on forever:
Proof
Suppose , or over some other power of ten. By the cross-multiplication test, , so would be a multiple of . But , and . So is one more than a multiple of , and it is not a multiple of itself. The same is true of every power of ten: , , , and so on.
∎
For grown-ups · the general rule
A fraction in lowest terms has a decimal that stops exactly when its denominator has no prime factors other than and (see factors and primes). One direction is easy: if the denominator is made of s and s, multiply top and bottom by enough s and s to pair them all up into s. The other direction needs the fact that prime factorisations are unique, since the only prime factors of are and . This is proved in divisibility and unique factorisation. Lowest terms matter: has a in its denominator, yet stops.
Gideon's precise statements
- "." — True. and .
- "A bigger denominator always means a bigger fraction." — False. . One counterexample settles it.
- "." — False. is less than .
- "." — False. .
- " can be written with denominator ." — False. is not a multiple of .
For grown-ups · the same ideas in Lean, a proof checker
Lean checks proofs. Here we build fractions from scratch: a fraction is a pair of whole numbers with a denominator bigger than , and "equivalent" means the cross-multiplication test.
/-- A fraction `num / den` of whole numbers. The denominator must not be `0`: it says how
many equal parts the whole is cut into. -/
structure Frac where
/-- The numerator: how many parts we take. -/
num : Nat
/-- The denominator: how many equal parts make one whole. -/
den : Nat
/-- A whole cannot be cut into `0` parts. -/
den_pos : 0 < den/-- `a / b` and `c / d` are **equivalent** (they are the same number) when `a × d = c × b`:
written over the common denominator `b × d`, they have the same numerator. -/
def Frac.Equiv (x y : Frac) : Prop := x.num * y.den = y.num * x.denEquivalent fractions. Multiplying top and bottom by the same gives an equivalent fraction, and Lean checks some examples by multiplying:
/-- Multiplying the numerator and the denominator by the same `n > 0` gives an equivalent
fraction: `(n × a) / (n × b) = a / b`. Cutting every part into `n` smaller parts makes `n`
times as many parts, each `n` times smaller. -/
theorem scale_equiv (a b n : Nat) (hb : 0 < b) (hn : 0 < n) :
frac (n * a) (n * b) (Nat.mul_pos hn hb) ≈ frac a b hb := by
-- Unfolded, the claim is `(n × a) × b = a × (n × b)`: reorder the product.
change n * a * b = a * (n * b)
rw [Nat.mul_comm n a, Nat.mul_assoc]/-- `2/4`, `3/6` and `50/100` are all equivalent to `1/2`. -/
theorem two_quarters : frac 2 4 ≈ frac 1 2 ∧ frac 3 6 ≈ frac 1 2 ∧ frac 50 100 ≈ frac 1 2 := by
decideIf two fractions are both equivalent to a third, they are equivalent to each other. The proof multiplies out and then cancels a factor, which is allowed because denominators are never :
/-- If `a/b ≈ c/d` and `c/d ≈ e/f`, then `a/b ≈ e/f`. We multiply out, use both facts, and
cancel the factor `d`, which is allowed because `d > 0` (`Nat.eq_of_mul_eq_mul_right`).
`ac_rfl` reorders a product; multiplication is commutative and associative. -/
theorem equiv_trans {x y z : Frac} (h1 : x ≈ y) (h2 : y ≈ z) : x ≈ z := by
obtain ⟨a, b, _⟩ := x
obtain ⟨c, d, hd⟩ := y
obtain ⟨e, f, _⟩ := z
change a * d = c * b at h1
change c * f = e * d at h2
change a * f = e * b
apply Nat.eq_of_mul_eq_mul_right hd
calc a * f * d = (a * d) * f := by ac_rfl
_ = (c * b) * f := by rw [h1]
_ = (c * f) * b := by ac_rfl
_ = (e * d) * b := by rw [h2]
_ = e * b * d := by ac_rflComparing.
/-- With the same denominator, the fraction with the bigger numerator is bigger:
`a / b < c / b` exactly when `a < c` (same-sized pieces, so compare how many). -/
theorem same_den_lt (a c b : Nat) (hb : 0 < b) : frac a b hb < frac c b hb ↔ a < c := by
change a * b < c * b ↔ a < c
exact Nat.mul_lt_mul_right hb/-- A bigger denominator means a *smaller* piece: if `b < d` then `1/d < 1/b`.
Cutting the whole into more parts makes each part smaller. -/
theorem bigger_den_smaller_piece (b d : Nat) (hb : 0 < b) (hd : 0 < d) (h : b < d) :
frac 1 d hd < frac 1 b hb := by
change 1 * b < 1 * d
rw [Nat.one_mul, Nat.one_mul]
exact h/-- `2/3 < 3/4`, because over the common denominator `12` they are `8/12` and `9/12`. -/
theorem three_quarters_gt_two_thirds : frac 2 3 < frac 3 4 := by decideAdding. The rule, the examples, and a theorem that matters more than it looks. If we swap a fraction for an equivalent one, say for , the sum is still the same number. Without this theorem, "adding fractions" would not even make sense!
/-- `a/b + c/d = (a × d + c × b) / (b × d)`: rewrite both fractions over the common
denominator `b × d`, then add the numerators. -/
def Frac.add (x y : Frac) : Frac :=
⟨x.num * y.den + y.num * x.den, x.den * y.den, Nat.mul_pos x.den_pos y.den_pos⟩/-- `1/2 + 1/3 = 5/6`. The rule gives `(1 × 3 + 1 × 2) / (2 × 3) = 5/6`. -/
theorem half_plus_third : (frac 1 2).add (frac 1 3) ≈ frac 5 6 := by decide/-- Adding tops and bottoms is wrong: `1/2 + 1/3` is **not** `2/5`. In fact `2/5` is smaller
than `1/2`, and a sum of two positive fractions must be bigger than each of them. -/
theorem half_plus_third_not_two_fifths :
¬ ((frac 1 2).add (frac 1 3) ≈ frac 2 5) ∧ frac 2 5 < frac 1 2 := by decide/-- The answer to an addition does not depend on which equivalent fractions we use:
if `x ≈ x'` and `y ≈ y'` then `x + y ≈ x' + y'`. So adding `2/4 + 1/3` gives the same number
as `1/2 + 1/3`. The proof multiplies out and uses the two cross-multiplication facts. -/
theorem add_respects_equiv {x x' y y' : Frac} (hx : x ≈ x') (hy : y ≈ y') :
x.add y ≈ x'.add y' := by
obtain ⟨a, b, _⟩ := x
obtain ⟨a', b', _⟩ := x'
obtain ⟨c, d, _⟩ := y
obtain ⟨c', d', _⟩ := y'
change a * b' = a' * b at hx
change c * d' = c' * d at hy
change (a * d + c * b) * (b' * d') = (a' * d' + c' * b') * (b * d)
calc (a * d + c * b) * (b' * d') = (a * b') * (d * d') + (c * d') * (b * b') := by
rw [Nat.add_mul]; ac_rfl
_ = (a' * b) * (d * d') + (c' * d) * (b * b') := by rw [hx, hy]
_ = (a' * d' + c' * b') * (b * d) := by rw [Nat.add_mul]; ac_rfl/-- `4 × 2/3 = 8/3`, which is `2 2/3`: eight thirds, or two wholes and two thirds. -/
theorem four_times_two_thirds : (frac 2 3).natMul 4 ≈ frac 8 3 := by decideDecimals.
/-- `0.25 < 0.3`: as fractions, `25/100 < 3/10`, because `3/10 = 30/100`. -/
theorem decimals_compare : frac 25 100 < frac 3 10 ∧ frac 3 10 ≈ frac 30 100 := by decide/-- `1/8 = 125/1000 = 0.125` and `3/8 = 375/1000 = 0.375`: since `8 × 125 = 1000`,
eighths can be written as thousandths. -/
theorem eighth_as_decimal : frac 1 8 ≈ frac 125 1000 ∧ frac 3 8 ≈ frac 375 1000 := by decide/-- Every power of ten leaves remainder `1` when divided by `3`: `10 = 9 + 1`,
`100 = 99 + 1`, `1000 = 999 + 1`, … Proved by induction, using that the remainder of a
product depends only on the remainders of the factors (`Nat.mul_mod`). -/
theorem ten_pow_mod_three (k : Nat) : 10 ^ k % 3 = 1 := by
induction k with
| zero => rfl
| succ n ih => rw [Nat.pow_succ, Nat.mul_mod, ih]/-- `1/3` has no finite decimal: there are no `m` and `k` with `1/3 = m / 10^k`.
By cross-multiplication that would mean `10^k = 3 × m`, a multiple of `3`, but every power
of ten leaves remainder `1` when divided by `3`. -/
theorem third_not_terminating (m k : Nat) :
¬ (frac 1 3 ≈ frac m (10 ^ k) (Nat.pow_pos (by decide))) := by
intro h
change 1 * 10 ^ k = m * 3 at h
have hrem : 10 ^ k % 3 = m * 3 % 3 := by rw [← h, Nat.one_mul]
rw [ten_pow_mod_three, Nat.mul_mod_left] at hrem
-- `hrem : 1 = 0`, which is false.
exact absurd hrem (by decide)Lean's own fractions. Lean also has a ready-made type of fractions, Rat (Mathlib calls it ). Its library contains the cross-multiplication test, and it can check our examples exactly:
/-- In Lean's own type of fractions `Rat`, `a/b = c/d` exactly when `a × d = c × b`
(for nonzero `b`, `d`). This applies core Lean's theorem `Rat.divInt_eq_divInt_iff`. -/
theorem rat_cross_mul {a b c d : Int} (hb : b ≠ 0) (hd : d ≠ 0) :
(a : Rat) / b = c / d ↔ a * d = c * b := by
rw [← Rat.divInt_eq_div, ← Rat.divInt_eq_div]
exact Rat.divInt_eq_divInt_iff hb hd/-- The lesson's examples in Lean's `Rat`: `1/2 + 1/3 = 5/6`, `1/2 + 1/3 ≠ 2/5`,
`0.25 < 0.3` and `0.125 = 1/8`. The kernel evaluates both sides exactly. -/
theorem rat_examples :
(1 : Rat) / 2 + 1 / 3 = 5 / 6 ∧ (1 : Rat) / 2 + 1 / 3 ≠ 2 / 5 ∧
(0.25 : Rat) < 0.3 ∧ (0.125 : Rat) = 1 / 8 := by
decide +kernelWhat is not formalised here: our home-made fractions use whole numbers only (no negative fractions), and the general rule about decimals that stop is proved only for . The other direction of the general rule needs unique prime factorisation.
Margaret tests the rules
"""Adding fractions: the right rule, a tempting wrong rule, and computer decimals.
Python's fractions.Fraction does exact arithmetic with fractions. We use it to
compare the rule a/b + c/d = (ad + cb)/(bd) with the tempting wrong rule
"add the tops and add the bottoms", (a + c)/(b + d), on every pair of
fractions between 0 and 1 with denominators up to 12; to check the
cross-multiplication test ad = cb against exact equality; and to see why a
computer's ordinary decimals (floats) can disagree with exact fractions.
"""
from fractions import Fraction
def add_rule(a, b, c, d):
"""Numerator and denominator of a/b + c/d by the common-denominator rule."""
return a * d + c * b, b * d
def wrong_rule(a, b, c, d):
"""The tempting mistake: add the numerators and add the denominators."""
return a + c, b + d
def equivalent(a, b, c, d):
"""Cross-multiplication test: a/b and c/d are the same number."""
return a * d == c * b
def fractions_in_unit_interval(max_den):
"""All pairs (a, b) with 1 <= a <= b <= max_den: fractions in (0, 1]."""
return [(a, b) for b in range(1, max_den + 1) for a in range(1, b + 1)]
def compare_rules(max_den):
"""Return (pairs, right rule correct, wrong rule correct, wrong in between)."""
fracs = fractions_in_unit_interval(max_den)
right = wrong = between = 0
for a, b in fracs:
for c, d in fracs:
exact = Fraction(a, b) + Fraction(c, d)
right += Fraction(*add_rule(a, b, c, d)) == exact
mediant = Fraction(*wrong_rule(a, b, c, d))
wrong += mediant == exact
low, high = sorted([Fraction(a, b), Fraction(c, d)])
between += low <= mediant <= high
return len(fracs) ** 2, right, wrong, between
def cross_test_agrees(max_num, max_den):
"""Return (pairs, agreements, equal pairs) for the cross-multiplication test."""
fracs = [(a, b) for a in range(max_num + 1) for b in range(1, max_den + 1)]
exact = {f: Fraction(*f) for f in fracs}
pairs = agree = equal = 0
for a, b in fracs:
for c, d in fracs:
pairs += 1
same = exact[(a, b)] == exact[(c, d)]
agree += equivalent(a, b, c, d) == same
equal += same
return pairs, agree, equal
def main():
num, den = add_rule(1, 2, 1, 3)
wn, wd = wrong_rule(1, 2, 1, 3)
print(f"1/2 + 1/3 by the common-denominator rule: {num}/{den}")
print(f"1/2 + 1/3 by 'add tops, add bottoms': {wn}/{wd}"
f" = {float(Fraction(wn, wd))}, but 1/2 = 0.5")
print(" The wrong answer is smaller than one of the parts!")
print()
pairs, right, wrong, between = compare_rules(12)
print(f"All {pairs:,} pairs of fractions in (0, 1], denominators up to 12:")
print(f" right rule equals the exact sum: {right:,} of {pairs:,}")
print(f" wrong rule equals the exact sum: {wrong:,} of {pairs:,}")
print(f" wrong rule lands between the two: {between:,} of {pairs:,}")
pairs, agree, equal = cross_test_agrees(24, 12)
print(f"Cross-multiplication test versus exact equality, {pairs:,} pairs:")
print(f" they agree {agree:,} times ({equal:,} pairs are equal numbers)")
print()
print(f"Floats: 0.1 + 0.2 == 0.3 is {0.1 + 0.2 == 0.3};"
f" 0.1 + 0.2 = {0.1 + 0.2!r}")
exact = Fraction(1, 10) + Fraction(2, 10) == Fraction(3, 10)
print(f"Fractions: 1/10 + 2/10 == 3/10 is {exact}")
print()
print("Epistemic status: the checks are complete for the fractions listed,")
print("so they prove nothing about larger denominators; the lesson's argument")
print("(same-sized pieces, then count) covers every fraction. The float")
print("result is a real counterexample: binary floats cannot store 0.1 exactly.")
if __name__ == "__main__":
main()The computer's ordinary decimals are stored in base two, where cannot be written exactly, just as cannot be written exactly in base ten. Exact fractions have no such problem.
"""Which fractions have decimals that stop?
Long division turns a fraction into a decimal. The remainders can only be
0, 1, ..., b - 1, so either a remainder of 0 appears (the decimal stops) or
a remainder repeats (the digits repeat forever). We print the decimals of
1/2 to 1/20 and then test the rule: a fraction in lowest terms has a decimal
that stops exactly when its denominator is built from 2s and 5s only.
"""
from math import gcd
def decimal_expansion(a, b):
"""Long division of a/b (b > 0, a >= 0).
Returns (whole part, digits before the repeat, repeating digits); the
repeating list is empty when the decimal stops.
"""
if b <= 0 or a < 0:
raise ValueError("need a >= 0 and b > 0")
whole, r = divmod(a, b)
digits, seen = [], {}
while r and r not in seen:
seen[r] = len(digits)
digit, r = divmod(10 * r, b)
digits.append(digit)
if r == 0:
return whole, digits, []
start = seen[r]
return whole, digits[:start], digits[start:]
def show(a, b):
"""The decimal as text, with the repeating block in brackets: 0.1(6)."""
whole, fixed, repeat = decimal_expansion(a, b)
text = "".join(map(str, fixed))
if repeat:
text += "(" + "".join(map(str, repeat)) + ")"
return f"{whole}.{text}" if text else str(whole)
def only_twos_and_fives(n):
"""True if n > 0 has no prime factors other than 2 and 5."""
if n <= 0:
raise ValueError("n must be positive")
for p in (2, 5):
while n % p == 0:
n //= p
return n == 1
def check_rule(max_den):
"""Return (fractions checked, rule correct, decimals that stop)."""
checked = correct = stops = 0
for b in range(2, max_den + 1):
for a in range(1, b):
checked += 1
terminates = decimal_expansion(a, b)[2] == []
stops += terminates
correct += terminates == only_twos_and_fives(b // gcd(a, b))
return checked, correct, stops
def main():
print("Long division of 1/b; brackets mark digits that repeat forever:")
cells = [f"1/{b:<2} = {show(1, b)}" for b in range(2, 21)]
for i in range(0, len(cells), 2):
print(" " + "".join(f"{c:<36}" for c in cells[i:i + 2]).rstrip())
print()
checked, correct, stops = check_rule(100)
print(f"All {checked:,} fractions a/b with 1 <= a < b <= 100:")
print(f" {stops:,} have decimals that stop; the rest repeat forever.")
print(" Rule: 'stops exactly when the lowest-terms denominator uses only")
print(f" 2s and 5s' is right in {correct:,} of {checked:,} cases.")
print(f" Careful with lowest terms: 3/12 = {show(3, 12)} stops, because"
f" 3/12 = 1/4.")
print()
print("Epistemic status: long division here is exact (whole-number")
print("remainders, no rounding), so each expansion is correct; the rule is")
print("checked completely for these 4,950 fractions only. Why it holds for")
print("every fraction: a stopping decimal is m/10^k, and the only prime")
print("factors of 10^k are 2 and 5.")
if __name__ == "__main__":
main()Your turn
Take your time. You can open a hint whenever you like.
1. Fractions and decimals
Warm-upHumanFill in the missing numerator: .
2. Fractions and decimals
Warm-upHumanOn a number line, which point is further from : or ?
3. Fractions and decimals
CoreHumanSipho says . What is the best reply?
4. Fractions and decimals
CoreHumanWork out . Write the answer in twelfths: .
5. Fractions and decimals
CoreHumanKiri ran km and Ana ran km. Who ran further?
6. Fractions and decimals
Warm-upHumanWrite as a fraction with denominator : .
7. Fractions and decimals
CoreHumanWhat is ?
8. Fractions and decimals
StretchHumanWhich of these fractions have a decimal that stops? (Choose all that apply.)
9. Fractions and decimals
CoreFormalIn Lean, Gideon says that the fractions and are equivalent when a * d = c * b. Which statement does Lean need to check to show that is equivalent to ?
10. Fractions and decimals
StretchComputationalWrite add_fractions(a, b, c, d) that returns the sum as a pair (numerator, denominator) in simplest form. The starter uses the wrong rule from the lesson, so the tests fail. Use , then divide top and bottom by their greatest common factor, math.gcd.
Things that trip people up
Misconception
"Add the tops and add the bottoms": . The answer is smaller than , so it cannot be a sum that includes . Re-cut into same-sized pieces first: .
Misconception
"A bigger denominator means a bigger fraction." The denominator tells you how many pieces the whole is cut into. More pieces means smaller pieces, so .
Misconception
", because ." The counts hundredths and the counts tenths. Write as to compare hundredths with hundredths: .
Misconception
"Fractions are only parts of shapes." Shapes are a good start, but a fraction is a number. It has a place on the number line, it can be bigger than (), and it can be the answer to a division ().
Misconception
"Adding the same number to the top and bottom gives an equivalent fraction." is not . Equivalent fractions come from multiplying top and bottom by the same number.
Other ways of seeing
Geometry— Fractions are points and lengths
A geometer sees as a point on a line, found by cutting the unit length into equal parts. Ancient Greek geometers knew how to do that cutting with only a straightedge and compass, using parallel lines (Euclid, Elements, Book VI). In this picture, equivalent fractions are one point with many names. Comparing fractions means asking which point is further to the right.
Number theory— Lowest terms, and the primes 2 and 5
A number theorist notices that simplest form is about common factors. is in lowest terms when the greatest common factor of and is . And whether a decimal stops depends only on the primes in the denominator, because . In base twelve, which uses , the fraction would stop. See factors and primes.
Algebra— Division always works now
With whole numbers alone, has no exact answer. With fractions, every division by a number other than has one: . Every fraction except also has a partner that multiplies with it to make : . Later, with negative numbers included, the fractions form the rational numbers. There, all four operations work (except division by zero), and algebraists call a system like that a field. Some numbers, such as , are not fractions at all (real numbers).
Wonder further
Which whole numbers have a partner that multiplies with them to make ? Almost none, as this trail shows, until fractions are allowed. It is optional.
Wonder Trail · Optional · never gradedInverses and structureEvery integer can be added to another integer to get . So why can almost no integer be multiplied by another integer to get ?Follow the trail Wonder Trail · Optional · never gradedHalfway to the wallWalk halfway to a wall. Then walk half of what is left, then half of that, and so on, forever. Do you ever reach the wall? How can infinitely many steps add up to a finite distance?Follow the trailA fraction is a whole family
Think of all the names for one half: They form a set, a family of equivalent fractions. Every fraction belongs to exactly one family, and the families never overlap. Mathematicians say that "is equivalent to" is an equivalence relation. It is reflexive (each fraction is equivalent to itself), symmetric, and transitive (Lean proved equiv_trans above). Its families are called equivalence classes (relations and partitions).
One way to say what the number "one half" is: it is the whole family. The Lean theorem add_respects_equiv says that adding works family by family. It does not matter which member of a family you pick.
History and global context
- Egypt. Scribes wrote almost every fraction as a sum of different unit fractions. The Rhind Mathematical Papyrus (around 1550 BCE) begins with a table of such sums, for example .
- Mesopotamia. Babylonian scribes wrote fractions in base , about four thousand years ago. We still split an hour into minutes and a minute into seconds.
- China. The Nine Chapters on the Mathematical Art, compiled about two thousand years ago, gives rules for adding, subtracting and comparing fractions with a common denominator. It also reduces fractions to lowest terms by repeatedly subtracting the smaller number from the larger.
- India. Indian mathematicians wrote a fraction as the numerator above the denominator, without a line between them. The horizontal fraction bar later appears in Arabic writing, for example in the 12th-century work of al-Ḥaṣṣār in the Maghreb.
- Decimal fractions. Abu'l-Ḥasan al-Uqlīdisī, writing in Damascus around 952 CE, already used decimal fractions. Jamshīd al-Kāshī in Samarkand explained them fully in his Key to Arithmetic (1427). In Flanders, Simon Stevin's booklet De Thiende (1585) spread decimals across Europe.
Further reading
- Hung-Hsi Wu, Understanding Numbers in Elementary School Mathematics (2011). Builds fractions on the number line, exactly as in this lesson.
- Liping Ma, Knowing and Teaching Elementary Mathematics (1999). Chapter 3 is about dividing fractions.
- Richard Courant and Herbert Robbins, What Is Mathematics? (1941). Chapter 2 is on rational numbers and decimals.
- Victor J. Katz, A History of Mathematics: An Introduction (1993). The history of fractions in many cultures.