Book VII · Proposition 33
Given as many numbers as we please, to find the least of those which have the same ratio with them.Heath, 1908
Used by: X.5
Depth: 2 steps of argument above the first principles. Parallel postulate: not needed.
Nothing. It draws no intersections and reads nothing off the picture.
@proposition(
"VII.33",
CONSTRUCTION,
sample=lambda rng: (rng.randint(2, 200), rng.randint(2, 200)),
)
def prop_VII_33(a: int, b: int) -> Out:
hypothesis("both are numbers", a > 1 and b > 1, guard=True)
least = least_terms(a, b)
because(prop_VII_21, a, b) if coprime(a, b) else None
because(prop_VII_22, a, b)
claim("the pair found has the same ratio", "VII.33", least[0] * b == least[1] * a)
claim("it is in least terms, being prime to one another", "VII.22",
coprime(*least))
claim("and no smaller pair has that ratio", "VII.21",
not any(x * b == y * a
for x in range(1, least[0]) for y in range(1, least[1])))
return Out(least=least)