[3] is not an expression, so it should not be labeled.
[3] = [2] would just be [x] = [2]
Also, [5] = [3] is obviously wrong because expression 5 has no information about other parts of the program. Instead it would be [5] = [x].
Other than that, looks good.
Jay