The issue is with the difference, according to Russell, between proper names and descriptions.
and the discussion in :
A proper name, in Kripke's terms, is a rigid designator, i.e. it must denote an object.
According to Kripke's reading of Russell, most of "names" are not "real" names, but only descriptions.
Russell's analysis of Descriptions can be illustrated by the well know example :
"the present King of France is bald"
which must be analyzed as :
∃x(King_of_France(x) & ∀y(King_of_France(y) → x=y) & bald(x)).
Due to to the fact that France is a republic, there is no present King of France; thus the clause King_of_France(x) is never satisfied, and so is the conjunction; thus, the existentially quantified sentence is false.
Conclusion : the sentence is false.
If we use insted a "real" propre name in a "logically perfect" language, we assume that it has reference; this is so in the current semantics for first-order logic.
Being so, we are entitled to assert the following logical law :
for any (individual) constant of the language.
Thus, what happens with Hamlet ?
If we are interpreting our language in the "real" world, clearly Hamlet has no reference, and thus we have not : ∃x(x=Hamlet). But we cannot "violate" logical laws...
Thus, we have to ban names (individual constants) without reference; expressions with names without reference are "un-grammatical", i.e. they are not well-formed expressions :
This illustrates one of the peculiarities of proper names: that, unlike descriptions, they are meaningless unless there is an object which they designate.
If we want to use "Hamlet" meaningfully, we have to treat it as a description, something like :
the fictional character of Shakespeare's play.