Book VI · Proposition 29
To a given straight line to apply a parallelogram equal to a given rectilineal figure and exceeding by a parallelogrammic figure similar to a given one.Heath, 1908
The other root, and the other sign of the quadratic: here the figure runs past the end of the line instead of falling short of it.
Rests on: C.N.1, C.N.2, C.N.3, C.N.4, C.N.5, Def.10, Def.15, Def.22, Def.4, Post.5
Depth: 14 steps of argument above the first principles. Parallel postulate: needed.
@proposition(
"VI.29",
CONSTRUCTION,
sample=_deficient_application,
note="The other root, and the other sign of the quadratic: here the figure "
"runs past the end of the line instead of falling short of it.",
)
def prop_VI_29(a: Point, b: Point, part) -> Out:
"""Apply to AB a parallelogram equal to a given area, exceeding by a square."""
hypothesis("A and B are distinct", a != b)
hypothesis("the application is a proper one", sign(part) > 0 and sign(1 - part) > 0, guard=True)
line(a, b, "the given line AB")
middle = posit(prop_I_10(a, b).midpoint, "C")
whole = length(a, b)
wanted = whole * whole * part * (1 + part)
# x(x - whole) = wanted always has a root, however large the area: this is
# the case II.6 covers, and it needs no proviso at all.
excess = sqrt(whole * whole / 4 + wanted)
beyond = posit(_along(a, b, (whole / 2 + excess) / whole), "S")
across = (-(b.y - a.y), b.x - a.x)
applied = _parallelogram_on(a, beyond, Point(a.x + across[0], a.y + across[1]))
outline(*applied)
because(prop_II_6, a, b, beyond)
claim("the point falls beyond B on AB produced", "II.6",
on_line(beyond, Line.through(a, b))
and sign(length(a, beyond) - length(a, b)) > 0)
claim("the rectangle applied equals the given area", "II.6",
length(a, beyond) * length(b, beyond) == wanted)
claim("and it exceeds AB by the figure on BS", "II.6",
length(a, beyond) == whole + length(b, beyond))
return Out(section=beyond, midpoint=middle)