A logical approach to reasoning by analogy