Book XI · Proposition 33

XI.33

Similar parallelepipedal solids are to one another in the triplicate ratio of their corresponding sides.Heath, 1908

Every step, checked

What it needs, and what needs it

Needs: XI.27

Used by: XI.37 XII.8

Rests on: VI.Def.1, XI.Def.11, XI.Def.9

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

What it takes on trust

Nothing. It draws no intersections and reads nothing off the picture.

The proposition as code

@proposition("XI.33", THEOREM, sample=samples3.corner_and_arms)
def prop_XI_33(o: Point3, a: Point3, b: Point3, c: Point3) -> Out:
    """Similar parallelepipeds are to one another in the triplicate ratio of
    their corresponding sides."""
    hypothesis("the three arms are not in one plane", not coplanar(o, a, b, c))
    first = _built(parallelepiped(o, a, b, c, "the first solid"))
    scale = Fraction(3, 2)
    arms = tuple(posit3(_along(o, point, scale), name)
                 for point, name in ((a, "P"), (b, "Q"), (c, "R")))
    second = _built(parallelepiped(o, *arms, "the second solid"))

    because(prop_XI_27, o, a, b, c, o, a, b, c)

    side, answering = length3(o, a), length3(o, arms[0])
    claim("the solids are similar, their edges in one ratio and their solid "
          "angles equal", "XI.Def.9",
          all(other == scale * scale * one for one, other in
              zip(edge_lengths(first), edge_lengths(second)))
          and _solid_angle_of(o, (a, b, c)) == _solid_angle_of(o, arms))
    claim("as the solid is to the solid, so is the cube on the side to the cube "
          "on the answering side", "XI.33",
          content(first) * answering * answering * answering
          == content(second) * side * side * side)
    return Out(solids=(first, second), sides=(side, answering))