Are you then going to continue, and define what value is?
The right way to define this is to say that objects have a value representation consisting
of a fixed subset of the bits of their object representation, and that the value of an object
is the sequence of bits in the value representation.
How does that interact with == ?
Typically we consider equal things to have equal values and == returns true iff values are equal.
Consider -0 == 0, for example. And in general, a user-defined class can have the same "value" stored with different bit representations.