Solving Logic Problems