Book VI · Proposition 27
Of all the parallelograms applied to the same straight line and deficient by parallelogrammic figures similar and similarly situated to that described on the half of the straight line, that parallelogram is greatest which is applied to the half of the straight line and is similar to the defect.Heath, 1908
A maximum, proved without calculus: of all the deficient parallelograms on a line, the one on the half is the greatest.
Used by: VI.28
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, V.Def.5
Depth: 16 steps of argument above the first principles. Parallel postulate: needed.
@proposition(
"VI.27",
THEOREM,
sample=_deficient_application,
note="A maximum, proved without calculus: of all the deficient parallelograms "
"on a line, the one on the half is the greatest.",
)
def prop_VI_27(a: Point, b: Point, part) -> Out:
"""Parallelograms on AB deficient by a figure similar to that on the half."""
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")
# Applying to AD leaves a defect similar to the one on the half, so the
# parallelogram is as AD by DB -- greatest when the two are equal.
d = posit(_along(a, b, part), "D")
across = (-(b.y - a.y), b.x - a.x)
applied = _parallelogram_on(a, d, Point(a.x + across[0] / 2, a.y + across[1] / 2))
on_half = _parallelogram_on(a, middle, Point(a.x + across[0] / 2, a.y + across[1] / 2))
outline(*applied)
outline(*on_half)
because(prop_VI_23, applied[0], applied[1], applied[3],
on_half[0], on_half[1], on_half[3])
claim("each applied parallelogram is as the rectangle contained by the "
"segments it leaves", "VI.23",
_area(*applied) == length(a, d) * length(a, b) / 2
and _area(*on_half) == length(a, middle) * length(a, b) / 2)
# The maximum is the whole content, so it is tested against the whole line
# rather than against the one position that happened to be sampled.
elsewhere = [_along(a, b, Fraction(k, 12)) for k in range(1, 12)]
claim("and that on the half is not less than any other applied to the line",
"II.5",
all(sign(length(a, middle) * length(middle, b)
- length(a, point) * length(point, b)) >= 0
for point in elsewhere + [d]))
because(prop_II_5, a, d, b)
claim("with equality only when the application is to the half itself", "II.5",
all(point == middle
or sign(length(a, middle) * length(middle, b)
- length(a, point) * length(point, b)) > 0
for point in elsewhere))
return Out(greatest=on_half)