The current way how $Arbitrary'T' is implemented creates an unknown but fixed value of the given type. However, this is unsound, since different uses of this constant in the same verification should be allowed to have different values.
What we need here is to identify the syntactic instances, as done with the translation of choose, where the source location is used to distinguish instances.