First-order problem-solving