Reveal Hidden Content(also exit if n liars=0 when all remaining people must be truthers)
Reveal Hidden ContentEg with 4 truthers, 2 liars:
Reveal Hidden ContentAssume liars always say the next person is a truther
Reveal Hidden Contentif in order L->L->T->T->T->T
Reveal Hidden ContentNobody says the next person is a liar
Reveal Hidden Contentso we exit at the bracketed person:
Reveal Hidden ContentL->L->T->T->(T)->T
Reveal Hidden Contentand determine that the person N-liars+1 from the start
Reveal Hidden Contentmust be a truther:
Reveal Hidden ContentL->L->[T]->T->T->T
Reveal Hidden Contentif in order L->T->T->T->T->F
Reveal Hidden ContentNobody says the next person is a liar
Reveal Hidden Contentso we exit at the bracketed person:
Reveal Hidden ContentL->T->T->T->(T)->F
Reveal Hidden Contentand determine that the person N-liars+1
Reveal Hidden Contentfrom the start must be a truther:
Reveal Hidden ContentL->T->[T]->T->T->F
Reveal Hidden Contentif in order T->T->T->T->F->F
Reveal Hidden Contentwhen we get to the fourth T he says the next guy is a liar
Reveal Hidden Contentso we remove them
Reveal Hidden ContentT->T->(T)->F
Reveal Hidden ContentNow we are on the bracketed guy who is the correct
Reveal Hidden Contentthreshold from the
Reveal Hidden Contentend and we determine that the guy in square brackets is a truther
Reveal Hidden ContentT->[T]->T->F
Reveal Hidden Contentif in order T->T->T->F->F->T
Reveal Hidden ContentThe second T says the next guy is a liar,
Reveal Hidden Contentso we remove them and are on the bracketed guy:
Reveal Hidden ContentT->(T)->F->T with N liars = 1
Reveal Hidden ContentHe says the *next* guy is a liar too, so we remove them,
Reveal Hidden Content(T)->T and now N liars is 0
Reveal Hidden Contentso we exit declaring all remaining guys to be truthers.