In computer science this difference is called value types vs identity types. Value types are “equal” if their value is the same whereas, identity types are “equal” if they are the same actual instance. So what “equal” means changes.
For instance (using fantasy syntax), newVector(1,2) == newVector(1,2) as they are conceptually the same object, but newPerson ("John Smith") ≠ newPerson ("John Smith") as two persons can be different people even of they share their name, so they cannot be assumed to be the same.
I have no idea how this maps to actual math though.
In computer science this difference is called value types vs identity types. Value types are “equal” if their value is the same whereas, identity types are “equal” if they are the same actual instance. So what “equal” means changes.
For instance (using fantasy syntax),
new Vector(1,2) == new Vector(1,2)as they are conceptually the same object, butnew Person ("John Smith") ≠ new Person ("John Smith")as two persons can be different people even of they share their name, so they cannot be assumed to be the same.I have no idea how this maps to actual math though.