I'm studying Breadth-First Search (BFS) from the CLRS book and I'm having trouble understanding the proof that each distance from the source node calculated by BFS is the shortest distance from the source node.
The book presents three lemmas to prove this:
Lemma 1: For any edge $(u, v) \in E$ in a graph $G = (V, E)$, the shortest distance from the source node $s$ to node $v$ is bounded by: δ(s,v)≤δ(s,u)+1
Lemma 2: The distance calculated by BFS from the source node $s$ to node $v$ is an upper bound on the shortest distance: v.d≥δ(s,v)
Lemma 3: During the execution of BFS, the queue contains nodes in the order $<v_1, v_2, v_3, ..., v_r>$, and the following properties hold: 𝑣 𝑟 . 𝑑 ≤ 𝑣 1 . 𝑑 + 1 and 𝑣 𝑖 . 𝑑 ≤ 𝑣 𝑖 + 1 . 𝑑
Proof by Contradiction: Suppose, for the sake of contradiction, that $v.d > \delta(s, v)$. Then, there exists a node $u$ preceding $v$ in the shortest path from $s$ to $v$. The book asserts that $\delta(s, u) = u.d$. My question is: how can we be sure that the shortest distance $\delta(s, u)$ is equal to the BFS distance $u.d$?