>>257
Fazzy version なら可能性 theCase に対して

theCase において X は嘘つきであるか、Xの証言とtheCaseが適合する。

がすべての証人Xについて成立することが条件。

theCase は theCase!!i が i 番目の証人が正直ならTrue, 嘘つきならFalseをとるList。
map not theCase はその True と False をひっくり返したもの。
(map (¥x -> x theCase) ts) は (map (¥x -> x theCase) ts)!!i が i 番目の証人の証言とtheCaseが矛盾しないときにTrue、矛盾するときFalseになるList。
各証人にたいしていずれかが True になることが条件だからそれを zipWith (||) で論理和をとっておいて and ですべて True となっているかを確認しています。

まぁ、ホントはこんな技使うべきではないんですけどね。
可読性落ちるし。
ちなみに
(||) = (証人が嘘つき ∨ 証言とtheCaseが矛盾しない)
のかわりに
(==) = (証人が嘘つきなら証言はtheCaseと矛盾、証人が正直なら証言はtheCaseと適合)
をもちいれば嘘つきが常に嘘つくVersionのsolverになります。