Book IV · Proposition 12
About a given circle to circumscribe an equilateral and equiangular pentagon.Heath, 1908
The pentagon of IV.11 turned outside in: its vertices become the points where the circumscribed pentagon touches.
Rests on: C.N.1, C.N.2, C.N.3, C.N.4, C.N.5, Def.10, Def.15, Def.19, Def.22, Def.3, Def.4, Post.1, Post.3, Post.5
Depth: 17 steps of argument above the first principles. Parallel postulate: needed.
@proposition(
"IV.12",
CONSTRUCTION,
sample=samples.segment,
note="The pentagon of IV.11 turned outside in: its vertices become the points "
"where the circumscribed pentagon touches.",
)
def prop_IV_12(o: Point, a: Point) -> Out:
"""Circumscribe a regular pentagon about the circle about O through A."""
hypothesis("the circle has positive radius", o != a)
around = circle(o, a, "the given circle")
touches = prop_IV_11(o, a).pentagon
tangents = [_tangent_at(o, point) for point in touches]
corners = [
posit(meet_one(tangents[index], tangents[(index + 1) % 5]), "GHKLM"[index])
for index in range(5)
]
outline(*corners)
for point in touches:
because(prop_III_16, o, point)
because(prop_I_47, corners[0], touches[0], o)
because(prop_I_8, o, touches[0], corners[0], o, touches[1], corners[1])
claim("each side touches the circle at a vertex of the inscribed pentagon", "III.16",
all(on_circle(point, around) for point in touches)
and all(right_angle(o, touches[i], corners[i]) for i in range(5)))
claim("the circumscribed pentagon is equilateral", "I.47",
all(eq_len(corners[i], corners[(i + 1) % 5], corners[0], corners[1])
for i in range(5)))
claim("and equiangular", "I.8",
all(eq_angle(corners[i - 1], corners[i], corners[(i + 1) % 5],
corners[4], corners[0], corners[1]) for i in range(5)))
return Out(pentagon=tuple(corners), touching=touches)