Equality

external ~<#56964#>This section is as much about the connection between philosophy and computing as it is about programming. Students often figure out the basic idea, that there are two notions of equality, on their own during the discussion of structure or vector mutation. If so, this section can be skipped.<#56964#> As we mutate structures or vectors, we use words such as ``the vector now contains <#69992#><#56965#>false<#56965#><#69992#> in its first field'' to describe what happens. Behind those words is the idea that the vector stays the same---even though it changes. What this observation suggests is that there are really two notions of equality: the one we have used so far and a new one based on effects on a structure or vector. Understanding these two notions of equality is critically important for a programmer. We therefore discuss them in detail in the following two subsections.