Book III · Proposition 27

III.27

In equal circles angles standing on equal circumferences are equal to one another, whether they stand at the centres or at the circumferences.Heath, 1908

Cited by IV.11 to show the inscribed pentagon is equiangular: its five sides cut off five equal arcs, so the five angles standing on them agree.

OABDPEFG
10 lines and circles drawn, of which 2 helper constructions drew the fainter ones

Every step, checked

What it needs, and what needs it

Needs: III.20

Used by: III.29 IV.11 IV.15 IV.16

Rests on: C.N.1, C.N.3, C.N.4, C.N.5, Def.10, Def.15, Def.4, Post.5

Depth: 13 steps of argument above the first principles. Parallel postulate: needed.

What it takes on trust

The proposition as code

@proposition(
    "III.27",
    THEOREM,
    sample=_equal_arcs_in_equal_circles,
    note="Cited by IV.11 to show the inscribed pentagon is equiangular: its five "
    "sides cut off five equal arcs, so the five angles standing on them agree.",
)
def prop_III_27(
    o: Point, a: Point, b: Point, d: Point,
    p: Point, e: Point, f: Point, g: Point,
) -> Out:
    """Arc AB in the circle about O, arc EF in the equal circle about P."""
    hypothesis("the two circles are equal", eq_len(o, a, p, e))
    hypothesis("A, B and D lie on the first circle",
               eq_len(o, a, o, b) and eq_len(o, a, o, d))
    hypothesis("E, F and G lie on the second", eq_len(p, e, p, f) and eq_len(p, e, p, g))
    hypothesis("the arcs stood on are equal, being cut off by equal angles at the "
               "centres", angle_at(a, o, b) == angle_at(e, p, f))
    hypothesis("each is less than a semicircle", angle_at(a, o, b) < STRAIGHT)
    # An angle "stands on" an arc from the other arc. The centre of a circle is
    # on the major side of a minor chord, which is how that is said exactly.
    hypothesis("D and G stand on the major arcs",
               same_side(d, o, Line.through(a, b)) and same_side(g, p, Line.through(e, f)))

    circle(o, a, "the first circle")
    circle(p, e, "the second, equal to it")
    for centre, ends in ((o, (a, b)), (p, (e, f))):
        line(centre, ends[0], "a radius")
        line(centre, ends[1], "a radius")
    outline(a, d, b, close=False)
    outline(e, g, f, close=False)

    at_first = angle_at(a, d, b)
    at_second = angle_at(e, g, f)
    because(prop_III_20, o, a, d, b)
    because(prop_III_20, p, e, g, f)

    claim("the angle at the circumference is half the angle at the centre, in each "
          "circle", "III.20",
          at_first.doubled() == angle_at(a, o, b) and at_second.doubled() == angle_at(e, p, f))
    # The angles at the centres are equal by hypothesis -- that is what equal
    # arcs in equal circles means (III.Def.11) -- so this is the step that does
    # the work: halves of equals are equal.
    claim("therefore the angles at the circumferences are equal, being the halves "
          "of equal angles", "C.N.1", at_first == at_second)
    return Out(angles=(at_first, at_second))