In "AI: A Modern Approach" (Russell & Norvig, 4th edition), section 3.5.2 "A* search" includes this sentence on page 88:
In addition, with a consistent heuristic, the first time we reach a state it will be on an optimal path, so we never have to re-add a state to the frontier, and never have to change an entry in reached.
There are three claims here:
- The first time we reach a state it will be on an optimal path.
- We never have to re-add a state to the frontier.
- We never have to change an entry in reached.
I believe that claims (1) and (3) are false. To see this easily, consider the heuristic $h(n) = 0$ for all $n$. Clearly it is consistent. With this heuristic, A* is just Dijkstra's algorithm. But in Dijkstra's algorithm, the first time we reach a state (i.e. add it to the frontier, as defined on p. 72) it certainly might not be on an optimal path, and we may have to update its entry in reached (i.e. the parent pointer, as seen in the pseudocode in Figure 3.7 on p. 73) as soon as we discover a shorter path to it.
So is this simply an error in the book, or am I missing something here?