Book XIII · Proposition 18
To set out the sides of the five figures and to compare them with one another.Heath, 1908
Needs: X.73 XI.21 XIII.13 XIII.14 XIII.15 XIII.16 XIII.17
Rests on: X.85-90, XI.Def.11, XI.Def.14, XI.Def.25, XI.Def.26, XI.Def.27, XI.Def.28
Depth: 5 steps of argument above the first principles. Parallel postulate: not needed.
Nothing. It draws no intersections and reads nothing off the picture.
@proposition("XIII.18", THEOREM, sample=samples3.sphere_about)
def prop_XIII_18(o: Point3, a: Point3) -> Out:
"""Set out the sides of the five figures and compare them with one another."""
hypothesis("the sphere has a positive radius", o != a)
hypothesis("the diameter of the sphere is rational",
is_rational_line(sqrt(4 * space_len2(o, a))))
line3(o, a, "the radius of the sphere all five are comprehended in")
sides = (because(prop_XIII_13, o, a).side2,
because(prop_XIII_14, o, a).side2,
because(prop_XIII_15, o, a).side2,
because(prop_XIII_16, o, a).side2,
because(prop_XIII_17, o, a).side2)
across = 4 * space_len2(o, a)
claim("the side of the pyramid is greater than the side of the octahedron, "
"and that than the side of the cube", "XIII.15",
sign(sides[0] - sides[1]) > 0 and sign(sides[1] - sides[2]) > 0)
claim("the side of the cube is greater than the side of the icosahedron, "
"and that than the side of the dodecahedron", "XIII.17",
sign(sides[2] - sides[3]) > 0 and sign(sides[3] - sides[4]) > 0)
claim("the first three have to the diameter a ratio a number can name, and "
"the last two have not", "X.73",
all(isinstance(span / across, Fraction) for span in sides[:3])
and not any(isinstance(span / across, Fraction) for span in sides[3:]))
claim("and there is no sixth figure", "XI.21",
len(_regular_solids()) == 5
and set(_regular_solids()) == {(3, 3), (3, 4), (3, 5), (4, 3), (5, 3)})
return Out(sides=sides, diameter2=across, figures=_regular_solids())