Book VI · Proposition 12
To three given straight lines to find a fourth proportional.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, V.Def.5
Depth: 15 steps of argument above the first principles. Parallel postulate: needed.
@proposition(
"VI.12",
CONSTRUCTION,
sample=lambda rng: samples.segment(rng)
+ (Fraction(rng.randint(2, 7), 4), Fraction(rng.randint(2, 7), 4)),
)
def prop_VI_12(a: Point, b: Point, second, third) -> Out:
"""To three given lines, find the fourth proportional."""
hypothesis("A and B are distinct", a != b)
hypothesis("the given lines are genuine magnitudes",
sign(second) > 0 and sign(third) > 0, guard=True)
line(a, b, "the first given line AB")
c = posit(_along(a, b, second), "C")
aside = posit(Point(a.x + (b.y - a.y), a.y - (b.x - a.x)), "D")
line(a, aside, "a line through A")
e = posit(_along(a, aside, third), "E")
line(b, e, "the join BE")
fourth = posit(_along(a, aside, third * second), "F")
line(c, fourth, "the parallel through C")
because(prop_I_31, c, b, e)
because(prop_VI_2, a, b, e, c, fourth)
claim("CF is parallel to BE", "I.31",
parallel(Line.through(c, fourth), Line.through(b, e)))
claim("so AB is to AC as AE is to AF", "VI.2",
length(a, b) * length(a, fourth) == length(a, c) * length(a, e))
return Out(fourth=fourth)