Book I · Proposition 39

I.39

Equal triangles which are on the same base and on the same side are also in the same parallels.Heath, 1908
ABCD
24 lines and circles drawn, of which 7 helper constructions drew the fainter ones

Every step, checked

What it needs, and what needs it

Needs: I.31 I.37

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

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

What it takes on trust

The proposition as code

@proposition(
    "I.39",
    THEOREM,
    sample=_equal_triangles_same_base,
)
def prop_I_39(a: Point, b: Point, c: Point, d: Point) -> Out:
    base = Line.through(a, b)
    hypothesis("C and D are on the same side of AB", same_side(c, d, base))
    hypothesis("the triangles ABC and ABD are equal", eq_area((a, b, c), (a, b, d)))
    outline(a, b, c)
    outline(a, b, d)
    line(c, d)

    # The parallel Euclid supposes drawn through C is drawable; where it cuts
    # BD is the point his argument compares against, and I.37 speaks of it.
    alongside = prop_I_31(c, a, b).parallel
    cut = meet_one(alongside, Line.through(b, d))
    because(prop_I_37, a, b, c, cut)

    claim("were CD not parallel to AB, a parallel through C would cut BD and I.37 would "
          "make a part equal the whole", "I.37", parallel(Line.through(c, d), base))
    return Out()