Book XI · Proposition 31
Parallelepipedal solids which are on equal bases and of the same height are equal to one another.Heath, 1908
Rests on: C.N.1, C.N.2, C.N.3, C.N.4, C.N.5, Def.10, Def.15, Def.4, Post.5, XI.Def.10, XI.Def.3, XI.Def.8
Depth: 14 steps of argument above the first principles. Parallel postulate: needed.
Nothing. It draws no intersections and reads nothing off the picture.
@proposition("XI.31", THEOREM, sample=samples3.corner_and_arms)
def prop_XI_31(o: Point3, a: Point3, b: Point3, c: Point3) -> Out:
"""Parallelepipeds on equal bases and of the same height are equal."""
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"))
# A second base in the same plane, of the same area but not the same figure:
# one side doubled and the other halved leaves the parallelogram on them
# equal to the first, which is I.35 and I.36 done with the arms themselves.
stretched = posit3(_along(o, a, Fraction(2)), "P")
shrunk = posit3(_along(o, b, Fraction(1, 2)), "Q")
second = _built(parallelepiped(o, stretched, shrunk, c, "the second solid"))
because(prop_XI_30, o, a, b, c)
claim("the two bases are equal, and are not the same figure", "I.35",
_base_area(o, a, b) == _base_area(o, stretched, shrunk)
and not _same_figure(first.face_points(0), second.face_points(0)))
claim("the bases are in one plane and the tops in one plane, so the heights "
"are the same", "XI.14",
first.face_plane(0) == second.face_plane(0)
and first.face_plane(1) == second.face_plane(1))
claim("and the solids are equal to one another", "XI.31",
content(first) == content(second))
return Out(solids=(first, second))