>>151を更に変更。(>>150のコードも参考にしています。)
・>>145の指摘に従い、予測条件を狭めた(制約を強くした)。
・述語「制約/1」を「予測/1」へ変更(否定->肯定)することで、ユーザ記述ルールの表現をより自然なものとした。
・出題に合わせて、述語「競技結果/1」を「発表順位/1」に、変数「_結果情報」を「_順位情報」に変更。
・出題に合わせて、出力形式を(「競技者=順位」から)「順位=競技者」へ変更。

発表順位(_順位情報) :-
  競技者(X), 競技者(Y), 競技者(Z),
  X ¥= Y, X ¥= Z, Y ¥= Z,
  _順位情報 = [1 = X, 2 = Y, 3 = Z],
  制約(_順位情報).

制約(_順位情報) :- ¥+(予測(_順位情報)).


% 推論ファクト

競技者(a).
競技者(b).
競技者(c).


(続く)