[proofplan]
We use the subset expansion of the [characteristic polynomial](/page/Characteristic%20Polynomial) and split the sum according to whether a subset contains the element $e$. The part not containing $e$ is read through deletion, while the part containing $e$ is rewritten through contraction by replacing each subset containing $e$ with $A\cup\{e\}$ for $A\subset E\setminus\{e\}$. The three cases differ only in the rank identities satisfied by $e$: a loop gives cancellation, a non-loop non-coloop gives the deletion-minus-contraction formula, and a coloop gives the factor $t-1$.
[/proofplan]
[step:Split the characteristic polynomial according to whether subsets contain $e$]
Let $r_M:2^E\to \mathbb N\cup\{0\}$ denote the rank function of $M$, and let $r(M):=r_M(E)$ denote the rank of $M$. We use the subset expansion
\begin{align*}
\chi_M(t)=\sum_{B\subset E}(-1)^{|B|}t^{r(M)-r_M(B)}.
\end{align*}
Every subset $B\subset E$ either satisfies $e\notin B$, in which case $B=A$ for a unique subset $A\subset E\setminus\{e\}$, or satisfies $e\in B$, in which case $B=A\cup\{e\}$ for a unique subset $A\subset E\setminus\{e\}$. Therefore
\begin{align*}
\chi_M(t)=\sum_{A\subset E\setminus\{e\}}(-1)^{|A|}t^{r(M)-r_M(A)}-\sum_{A\subset E\setminus\{e\}}(-1)^{|A|}t^{r(M)-r_M(A\cup\{e\})}.
\end{align*}
[guided]
The point of the proof is to compare $\chi_M(t)$ with the characteristic polynomials of the two matroids whose ground set is $E\setminus\{e\}$: the deletion $M\setminus e$ and the contraction $M/e$. To make that comparison possible, we first write every subset of $E$ in one of two forms.
Let $r_M:2^E\to \mathbb N\cup\{0\}$ be the rank function of $M$, and write $r(M):=r_M(E)$. By the subset expansion defining the characteristic polynomial,
\begin{align*}
\chi_M(t)=\sum_{B\subset E}(-1)^{|B|}t^{r(M)-r_M(B)}.
\end{align*}
Now partition the indexing set $2^E$ into the subsets that do not contain $e$ and the subsets that do contain $e$. If $B$ does not contain $e$, then $B$ is a subset $A\subset E\setminus\{e\}$. If $B$ does contain $e$, then $B=A\cup\{e\}$ for a unique subset $A\subset E\setminus\{e\}$, namely $A=B\setminus\{e\}$. In the second case, the sign changes because
\begin{align*}
(-1)^{|A\cup\{e\}|}=(-1)^{|A|+1}=-(-1)^{|A|}.
\end{align*}
Substituting these two descriptions into the subset expansion gives
\begin{align*}
\chi_M(t)=\sum_{A\subset E\setminus\{e\}}(-1)^{|A|}t^{r(M)-r_M(A)}-\sum_{A\subset E\setminus\{e\}}(-1)^{|A|}t^{r(M)-r_M(A\cup\{e\})}.
\end{align*}
This identity is the common starting point for all three cases.
[/guided]
[/step]
[step:Identify the two sums when $e$ is neither a loop nor a coloop]
Assume that $e$ is neither a loop nor a coloop. Since $e$ is not a coloop, deletion does not lower the rank, so
\begin{align*}
r(M\setminus e)=r(M).
\end{align*}
For every subset $A\subset E\setminus\{e\}$, the rank function of deletion satisfies
\begin{align*}
r_{M\setminus e}(A)=r_M(A).
\end{align*}
Thus the first sum in the split expression is
\begin{align*}
\sum_{A\subset E\setminus\{e\}}(-1)^{|A|}t^{r(M)-r_M(A)}=\chi_{M\setminus e}(t).
\end{align*}
Since $e$ is not a loop, $r_M(\{e\})=1$. The contraction rank function is
\begin{align*}
r_{M/e}(A)=r_M(A\cup\{e\})-1
\end{align*}
for every $A\subset E\setminus\{e\}$. Also
\begin{align*}
r(M/e)=r(M)-1.
\end{align*}
Therefore
\begin{align*}
r(M)-r_M(A\cup\{e\})=r(M/e)-r_{M/e}(A).
\end{align*}
Hence the second sum in the split expression is
\begin{align*}
\sum_{A\subset E\setminus\{e\}}(-1)^{|A|}t^{r(M)-r_M(A\cup\{e\})}=\chi_{M/e}(t).
\end{align*}
Substituting these two identifications into the split expression gives
\begin{align*}
\chi_M(t)=\chi_{M\setminus e}(t)-\chi_{M/e}(t).
\end{align*}
[/step]
[step:Pair the two summands when $e$ is a loop]
Assume that $e$ is a loop. Then, for every subset $A\subset E\setminus\{e\}$,
\begin{align*}
r_M(A\cup\{e\})=r_M(A).
\end{align*}
Using the split expression from the first step, the two sums are identical and occur with opposite signs:
\begin{align*}
\chi_M(t)=\sum_{A\subset E\setminus\{e\}}(-1)^{|A|}t^{r(M)-r_M(A)}-\sum_{A\subset E\setminus\{e\}}(-1)^{|A|}t^{r(M)-r_M(A)}.
\end{align*}
Thus
\begin{align*}
\chi_M(t)=0.
\end{align*}
[/step]
[step:Extract the factor $t-1$ when $e$ is a coloop]
Assume that $e$ is a coloop. Then deletion lowers rank by one, so
\begin{align*}
r(M\setminus e)=r(M)-1.
\end{align*}
Equivalently, since contraction by a coloop has the same rank function on subsets of $E\setminus\{e\}$ as deletion, we have
\begin{align*}
r(M/e)=r(M)-1.
\end{align*}
For every subset $A\subset E\setminus\{e\}$, the coloop property gives
\begin{align*}
r_M(A\cup\{e\})=r_M(A)+1.
\end{align*}
The contraction rank formula gives
\begin{align*}
r_{M/e}(A)=r_M(A\cup\{e\})-1=r_M(A).
\end{align*}
Therefore the first sum in the split expression satisfies
\begin{align*}
\sum_{A\subset E\setminus\{e\}}(-1)^{|A|}t^{r(M)-r_M(A)}=t\sum_{A\subset E\setminus\{e\}}(-1)^{|A|}t^{r(M/e)-r_{M/e}(A)}=t\chi_{M/e}(t).
\end{align*}
The second sum satisfies
\begin{align*}
\sum_{A\subset E\setminus\{e\}}(-1)^{|A|}t^{r(M)-r_M(A\cup\{e\})}=\sum_{A\subset E\setminus\{e\}}(-1)^{|A|}t^{r(M/e)-r_{M/e}(A)}=\chi_{M/e}(t).
\end{align*}
Substituting these two identities into the split expression yields
\begin{align*}
\chi_M(t)=t\chi_{M/e}(t)-\chi_{M/e}(t).
\end{align*}
Hence
\begin{align*}
\chi_M(t)=(t-1)\chi_{M/e}(t).
\end{align*}
This proves all three cases.
[/step]