Reasoning as search