AからEの5人はそれぞれ正直者か嘘つきのどちらかであり、誰が正直者か嘘つきかはお互いに知っている。
嘘つきなら必ず嘘をつく。嘘つきの可能性があるのは誰か?

A「Bは正直者である」
B「Aは正直者である」
C「Bが嘘つきなら私も嘘つきである」
D「Cが正直なら私も正直である」
E「Dが嘘つきなら私も嘘つきであるし、Dが正直ものなら私も正直者である」

TE5=Tuples[{0,1},5];
fm5[x_]:=Module[
{a,b,c,d,e},
{a,b,c,d,e}=x;
AllTrue[{
(a==1 && b==1) || (a==0 && b==0), (* A「Bは正直者である」*)
(b==1 && a==1) || (b==0 && a==0), (*B「Aは正直者である」*)
(c==1 && (Implies[b==0,c==0])) || (b==0 && !(Implies[b==0,c==0])), (* C「Bが嘘つきなら私も嘘つきである」*)
(d==1 && (Implies[c==1,d==1])) || (d==0 && !(Implies[c==1,d==1])), (* D「Cが正直なら私も正直である」*)
(e==1 && d==e) || (e==0 && d!=e) (* E「Dが嘘つきなら私も嘘つきであるし、Dが正直ものなら私も正直者である」*)
},#==True&]
]
Select[TE5,fm5]