I have following:
Proposition Let $\bf A$ be a $m$ by $n$ matrix and $\bf b ≠ O$ then the linear system $\bf Ax = b$ has a solution $\implies$ $rank(\mathbf{A \mid b}) = rank(\mathbf A)$.
My attempt:
Below I will use $\bf R$ to denote $rref(A)$.
$(\rightarrow)$
We prove by contradiction.
Suppose $\bf Ax = b $ has solution and $rank(\mathbf{A \mid b}) ≠ rank(\mathbf A)$
We are required to consider two cases:
$rank(\mathbf{A \mid b}) > rank(\mathbf A)$
$rank(\mathbf{A \mid b}) < rank(\mathbf A)$
1.
Suppose $rank(\mathbf{A \mid b}) > rank(\mathbf A)$.
$\mathbf{A \mid b}$ is row equivalent to $\bf R \mid b'$, therefore $rank(\mathbf{A \mid b}) = rank(\bf R \mid b')$
$\mathbf{A}$ is row equivalent to $\bf R$, therefore $rank(\mathbf{A}) = rank(\bf R)$
Therefore, we have $rank(\mathbf{ R \mid b'}) > rank(\mathbf R)$
It follows that there must be at least one row such that
$$\mathbf{R \mid b'} = \left(\begin {array}{cccc|c} \cdots & \cdots & \cdots & \cdots & \cdots \\ \cdots & \cdots & \cdots & \cdots & \cdots \\ \cdots &\cdots & \cdots & \cdots & \cdots \\ 0 & 0 & \cdots & 0 & a\\ \cdots & \cdots & \cdots & \cdots & \cdots \\ \end{array}\right)$$
Where $a ≠ 0$.
But that would mean that linear system is inconsistent. Since $\bf R \mid b'$ is equivalent to $\mathbf{A \mid b}$, it follows that linear system $\bf Ax = b$ is inconsistent as well, which contradicts the fact that $\bf Ax = b$ has solution. Hence $rank(\mathbf{A \mid b}) \not > rank(\mathbf A)$
2.
Suppose $rank(\mathbf{A \mid b}) < rank(\mathbf A)$. Let $rank(\mathbf A) = m$.
$\mathbf{A \mid b}$ is row equivalent to $\bf R \mid b'$, therefore $rank(\mathbf{A \mid b}) = rank(\bf R \mid b')$
$\mathbf{A}$ is row equivalent to $\bf R$, therefore $rank(\mathbf{A}) = rank(\bf R)$
So we have $rank(\mathbf{R}) = m$, and $rank(\mathbf{R \mid b'}) < m$
Consider matrix $(\mathbf{R \mid b'})$ $$\mathbf{R \mid b'} = \left(\begin {array}{c|c} \mathbf{r}_1 & b_{1}\\ \mathbf{r}_2 & b_{2}\\ \vdots & \vdots\\ \mathbf{r}_m & b_{m}\\ \vdots & \vdots\\ \end{array}\right)$$
Since $rank(\bf R \mid b')$ $< m$, it follows that row vectors $\bf r$ are linearly dependent, and vector $\mathbf{r}_m$ can be written as the linear combination of the preceding vectors. This is a contradiction, since we've said that $rank(\mathbf{A}) = rank(\mathbf{R}) = m$, which implies that vectors $\bf r$ must be linearly independent. Therefore, $rank(\bf R \mid b')$ $\not < m$, and since $rank(\mathbf{A \mid b}) = rank(\bf R \mid b')$ , it implies that $rank(\bf A \mid b)$ $\not < m$.
We've shown that both cases are impossible, and thus we can conclude that $rank(\mathbf{A \mid b}) = rank(\mathbf A)$. $\Box$
Is it correct?
Actually, the initial proposition required to show $\iff$, but as you can see, post would get too long, hence I tried to prove $\implies$ first.
Well, the proof is actually simpler: $Ax=b$ has a solution iff $b$ lies in the column space of $A$ iff rank of $A$ equals rank of $A|b$. It all follows from the definitions.