Alice and Bob want to know Carol’s birthday. Carol gives them a list of 10 possible dates: March 11, 12, 15; April 13, 14; May 10, 12 and June 10, 11, 13. Carol then tells Alice the month of her birthday, and Bob the day of her birthday. Alice and Bob say the following:
Alice: I don’t know Carol’s birthday, but Bob doesn’t know either.
Bob: Previously I didn’t know Carol’s birthday, but now I do.
Alice: I now also know Carol’s birthday.
When is Carol’s birthday? Explain your reasoning.

If Alice knows that Bob doesn’t know Carol’s birthday, what does that tell us about the month?

If the month was March, could Alice be so sure?

Now that we know Carol’s birthday is either in May or June (why?), Bob knows too! After he works that out the same way we did, he now knows the date. From his confidence, which day can we rule out?

Alice now knows the date as well. Let’s try following the same reasoning to deduce the day.

As Alice doesn’t know, it must be in a month with more than one day. This doesn’t give us anything.
However, as she knows Bob doesn’t know it, every day in the month told to Alice must be present in at least another month from Carol’s list of possible dates. Hence it can’t be March or April. Therefore it must be either in May or June.
Bob can work this out, and from the fact that he then says he now knows the date, it must be one that is not shared by both May and June. Hence it is either May 12th, June 11th or June 13th.
Alice knows the answer because Bob does. This implies to Alice it’s not the 10th (as noted above) which is the only extra information she has. Thus it must be the 12th May as otherwise she could not distinguish June 11th or June 13th.