Book XI · Proposition 24

XI.24

If a solid be contained by parallel planes, the opposite planes in it are equal and parallelogrammic.Heath, 1908

Every step, checked

What it needs, and what needs it

Needs: I.34 XI.14 XI.16

Used by: XI.25 XI.29

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.3, XI.Def.8

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

What it takes on trust

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

The proposition as code

@proposition("XI.24", THEOREM, sample=samples3.corner_and_arms)
def prop_XI_24(o: Point3, a: Point3, b: Point3, c: Point3) -> Out:
    """A solid contained by parallel planes has opposite faces equal and
    parallelogrammic."""
    hypothesis("the three arms are not in one plane", not coplanar(o, a, b, c))
    solid = _built(parallelepiped(o, a, b, c, "the solid"))
    faces = [solid.face_points(index) for index in range(6)]
    planes = [solid.face_plane(index) for index in range(6)]
    opposite = ((0, 1), (2, 3), (4, 5))

    claim("the solid is contained by planes parallel two and two", "XI.14",
          all(parallel_planes(planes[here], planes[there])
              and planes[here] != planes[there] for here, there in opposite))
    claim("the opposite sides of each face are parallel, so each is a "
          "parallelogram", "XI.16",
          all(_is_parallelogram(face) for face in faces))
    claim("and the opposite faces are equal to one another", "I.34",
          all(_same_figure(faces[here], faces[there]) for here, there in opposite))
    return Out(solid=solid, faces=tuple(faces))