Challenge 2: A Missing Route Isn't Proof of Impossibility — Possible Solution ==================================================================== flights.pl: flight(paris, london). flight(london, paris). flight(paris, rome). Query: ?- \+ flight(london, tokyo). true. -- Why doesn't this prove such a flight is impossible? -- -- -- This query succeeds purely because flight(london, tokyo) cannot be -- PROVEN from the three facts actually loaded into this database -- -- none of them mention tokyo at all. Under the closed-world -- assumption, Prolog treats "cannot be proven" and "false" as the -- exact same thing, with no separate category for "simply not -- recorded here." In reality, this flights.pl file is obviously a -- tiny, incomplete sample of real-world flight data -- there could -- easily be a genuine London-Tokyo route that just never got entered -- as a fact. The query result only reflects what THIS database -- happens to contain, not any fact about whether such a flight -- actually exists in the world. Absence of evidence (no matching -- fact) is being reported as if it were evidence of absence (no such -- flight exists), which is exactly the real, well-documented -- limitation this chapter names. WHY THIS WORKS AS AN ANSWER ------------------------------ This runs a \+ query that succeeds only because of the database's own incompleteness, then explicitly names the closed-world assumption as the reason a "true" result here cannot be read as a genuine real-world fact, directly demonstrating the chapter's own absence-of-evidence warning with a fresh example rather than reusing the chapter's own tokyo query verbatim.