Book XI · Proposition 2
If two straight lines cut one another, they are in one plane, and every triangle is in one plane.Heath, 1908
Also unsound in Euclid: the proof assumes the very thing about planes that XI.1 was meant to establish.
Needs: nothing earlier.
Rests on: XI.Def.7
Depth: 0 steps of argument above the first principles. Parallel postulate: not needed.
@proposition(
"XI.2",
THEOREM,
sample=samples3.cutting_lines,
note="Also unsound in Euclid: the proof assumes the very thing about planes "
"that XI.1 was meant to establish.",
)
def prop_XI_2(o: Point3, a: Point3, b: Point3) -> Out:
"""Two straight lines that cut one another are in one plane."""
# Euclid's own condition -- "if two straight lines cut one another" -- and
# not a guard of ours: two lines through O are one line exactly when the
# three points are in a straight line.
hypothesis("the two straight lines cut one another at O",
not collinear3(o, a, b))
surface = plane_through(o, a, b, "their plane")
line3(o, a)
line3(o, b)
line3(a, b, "the triangle is closed")
claim("the two lines lie in one plane", "XI.Def.7",
on_plane(o, surface) and on_plane(a, surface) and on_plane(b, surface))
claim("and so does the whole triangle they make", "XI.2",
all(on_plane(Point3(a.x + (b.x - a.x) * Fraction(k, 4),
a.y + (b.y - a.y) * Fraction(k, 4),
a.z + (b.z - a.z) * Fraction(k, 4)), surface)
for k in range(5)))
claim("the plane is the only one holding all three, being determined by them",
"XI.Def.7", plane_through(o, a, b) == surface)
return Out(plane=surface)