Book XII · Proposition 7
Any prism which has a triangular base is divided into three pyramids equal to one another which have triangular bases.Heath, 1908
Needs: XII.5
Used by: XII.10
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.12, XI.Def.13, XI.Def.9
Depth: 18 steps of argument above the first principles. Parallel postulate: needed.
Nothing. It draws no intersections and reads nothing off the picture.
@proposition("XII.7", THEOREM, sample=samples3.polygon_base)
def prop_XII_7(a: Point3, b: Point3, c: Point3, d: Point3) -> Out:
"""A prism on a triangular base divides into three equal pyramids on
triangular bases."""
hypothesis("the four points are not in one plane", not coplanar(a, b, c, d))
step = vector_between(a, d)
whole = _drawn(prism((a, b, c), step, "the prism"))
top = whole.vertices[3:]
pieces = (pyramid((a, b, c), top[0], "the first pyramid"),
pyramid((b, c, top[0]), top[2], "the second"),
pyramid((b, top[0], top[1]), top[2], "the third"))
for piece in pieces:
_drawn(piece)
because(prop_XII_5, a, b, c, d)
held = [content(piece) for piece in pieces]
claim("the three pyramids have triangular bases", "XI.Def.12",
all(len(piece.faces) == 4 for piece in pieces))
claim("they are equal to one another", "XII.7", held[0] == held[1] == held[2])
claim("and together they are the prism", "XII.7",
held[0] + held[1] + held[2] == content(whole))
return Out(pyramids=pieces, prism=whole)