About degree of a smooth map between Manifolds

So from chapter 5 of Milnor's Topology from the Differentiable Viewpoint, there are two theorems about the degree of a smooth map where the degree is defined as follows:
$f: M \to N$ is a smooth map between manifolds of same dimension, M is compact without boundary and N is connected.

$deg(f;y) = \sum_{x \in f^{-1}(y)} sign(df_x)$ , where $y$ varies over the set of regular values of $f$.

From the fact that $\#f^{-1}y$ is a locally constant function and determinant is a smooth map, we can say that $deg(f;y)$ is locally constant.

Now the theorems are as follows:

Theorem A: The integer $deg(f; y)$ does not depend on the choice of regular value y.

Theorem B: If $f$ is smoothly homotopic to $g$, then $deg$ $f$ = $deg$ $g$.

For the proof of theorem A, I thought about using the fact that since $deg(f;y)$ is a locally constant function and $N$ being a connected manifold, we should have that $deg(f;y)$ is constant but then $y$ varies over all regular values of f which may not be even connected. I think I have to use Sard's theorem but I have got no clue.

For the proof of theorem B, Milnor states that "The proof will be essentially the same as that in §4" which states that $deg$ $mod (2)$ of smoothly homotopic maps are equal. But then again I don't understand how to use that.

I have been thinking about these two for over a day now. A sketch of the proofs or even some hint will be appreciated.


For theorem 2 (assuming theorem 1): let $y$ be a regular value of $f$ and assume $f_n: M \rightarrow N$ be converging in $\mathscr{C}^1$ to $f$.

Consider small coordinate patches $U_i$ around the points $x_i$ and a coordinate patch $V$ around $y$. We can choose the $U_i$ so that they are disjoint and such that the sign of $d_uf$ (as seen in the patches $U_i$ and $V$) does depend on $U$: in particular $f: U_i \rightarrow V$ is a local diffeomorphism. Now consider smaller $U’_i \subset U_i$ containing the point of $f^{-1}(y)$ such that the closure in $M$ of $U’_i$ is contained in $U_i$.

Now, assume that $f_n \rightarrow f$ in $\mathscr{C}^1$ topology.

Then, if $n$ is large enough, for each $i$, $f_n(\overline{U’_i}) \subset V$, and the sign of $(df_n)_{|U’_i}$ is constant equal to that of $df_{|U_i}$.

Also, we have some $\delta > 0$ such that $d(f(x),y) \geq \delta$ for $x \notin U’_i$. So for $n$ large enough, $x \notin U’_i$, $d(f_n(x),y) > \delta/2$, hence $f_n^{-1}(y)$ is contained in the reunion of the $U_i$.

Note now that if $f_n(a_n)=y$, then $a_n$ can be partitioned in finitely many subsequences that each converge to some point in $f^{-1}(y)$.

So all it remains to do is to show that with these assumptions, for all $i$ and all $n$ large enough there is some open $V$ containing $f^{-1}(y) \cap U’_i$ such that $f_n^{-1}(y)$ has exactly one element in $V$.

Uniqueness: assume $f_n(a_n)=f_n(b_n)$ in the same $U’_i$ for infinitely many $n$. We can assume (in coordinate patches) that $\frac{a_n-b_n}{|a_n-b_n|}=\delta_n$ converges to some unit vector $u$. Since $0=\int_0^1{f_n’(a_n+t(b_n-a_n)) \cdot \delta_n}$, $0=f’(p) \cdot u$, where $p$ is the point in $U’_i \cap f^{-1}(y)$ and we get a contradiction since $y$ is regular.

Existence: with the appropriate coordinate patches or subpatches, we may assume $U’_i=V=B(0,1)$ and $f=Id$ and $f_n$ converge uniformly on $U’_i$ to $f$ (that’s mostly to simplify, it works in a more general setting). Let $x_n \in \overline{B}(0,1/2)$ a minimum of $|f_n|$. Then $|f_n(x_n)| \leq |f_n(0)| \rightarrow 0$. Let $x_{k_n}$ be a convergent subsequence to $t$, then $f(t)=0$, so $t=0$, so if $n$ is large enough $x_n$ is an actual local minimum (on $B(0,1/2)$) of $|f_n|$. Now, $0=|(\nabla |f_n|^2)(x_n)|=|f_n(x_n)||(\nabla f_n)(x_n)|$. Since $|\nabla f_n| \geq 1/2$ on $B(0,1/2)$ for large enough $n$, it follows $f_n(x_n)=0$ and we are done.