Challenge 2: Finding All Red Fruits With ; — Possible Solution ==================================================================== SWI-Prolog session: ?- assertz(color(apple, red)). true. ?- assertz(color(cherry, red)). true. ?- color(X, red). X = apple ; X = cherry. Explanation: Two separate facts both state that a fruit is red -- apple and cherry. The single query color(X, red) asks "for what X is color(X, red) true?", and because TWO facts genuinely satisfy that question, Prolog reports the first (X = apple) and then waits. Pressing ; asks explicitly for another solution, and Prolog searches further through its database, finding cherry as well. This is the exact multiple-answers behavior the chapter previews as a first taste of backtracking. WHY THIS WORKS AS AN ANSWER ------------------------------ This reproduces the chapter's own multiple-facts-multiple-answers example directly, with genuinely two facts satisfying the same query and both answers retrieved in turn via ;.