Currently fiddling around with truth tellers and liars.
Take this sentence which we label S:
S : This sentence is false.
A truth teller can be translate into this:
S <=> ~S
A liar can be translate into this:
S <=/=> ~S
Both formulation can be checked for satisfiablity via
CLP(B) as found in SWI-Prolog or Jekejeke Prolog:
?- use_module(library(clpb)).
?- sat(S=:= ~S).
false.
?- sat(S=\= ~S), labeling([S]).
S = 0 ;
S = 1.
Can we use Prolog CLP(B) similarly to solve the below riddle.
Two doors with two guards - one lies, one tells the truth
https://puzzling.stackexchange.com/q/2188/66207