Solving logic problems