[proofplan]
We prove each inequality directly from the definitions of the four cardinal characteristics. A cover of $X$ by members of $\mathcal{I}$ witnesses a family whose union is outside $\mathcal{I}$, giving the [first inequality](/theorems/2897). A cofinal subfamily of $\mathcal{I}$ covers all singletons, hence covers $X$, and also produces a set outside $\mathcal{I}$ by choosing one point outside each cofinal member. Finally, any set outside $\mathcal{I}$ is the union of its singleton subsets, so its cardinality bounds the additivity from above.
[/proofplan]
[step:Use an ideal cover of $X$ to bound additivity by covering number]
Let $\mathcal{C} \subset \mathcal{I}$ be any family such that $\bigcup \mathcal{C} = X$. Since $X \notin \mathcal{I}$, this same family satisfies $\bigcup \mathcal{C} \notin \mathcal{I}$. Therefore $\mathcal{C}$ is admissible in the defining minimisation for $\operatorname{add}(\mathcal{I})$, and hence
\begin{align*}
\operatorname{add}(\mathcal{I}) \leq |\mathcal{C}|.
\end{align*}
Taking the minimum over all such covering families $\mathcal{C}$ gives
\begin{align*}
\operatorname{add}(\mathcal{I}) \leq \operatorname{cov}(\mathcal{I}).
\end{align*}
[/step]
[step:Use cofinality to turn a cofinal family into a cover of $X$]
Let $\mathcal{A} \subset \mathcal{I}$ be cofinal in $\mathcal{I}$, meaning that for every $B \in \mathcal{I}$ there exists $A \in \mathcal{A}$ with $B \subset A$. We claim that $\bigcup \mathcal{A} = X$.
Indeed, let $x \in X$. By hypothesis, the singleton $\{x\}$ belongs to $\mathcal{I}$. Since $\mathcal{A}$ is cofinal in $\mathcal{I}$, there exists $A_x \in \mathcal{A}$ such that $\{x\} \subset A_x$. Hence $x \in A_x \subset \bigcup \mathcal{A}$. Since $x \in X$ was arbitrary, $X \subset \bigcup \mathcal{A}$, while $\bigcup \mathcal{A} \subset X$ because every member of $\mathcal{A}$ is a subset of $X$. Thus $\bigcup \mathcal{A} = X$.
Therefore $\mathcal{A}$ is admissible in the defining minimisation for $\operatorname{cov}(\mathcal{I})$, so
\begin{align*}
\operatorname{cov}(\mathcal{I}) \leq |\mathcal{A}|.
\end{align*}
Taking the minimum over all cofinal families $\mathcal{A} \subset \mathcal{I}$ gives
\begin{align*}
\operatorname{cov}(\mathcal{I}) \leq \operatorname{cof}(\mathcal{I}).
\end{align*}
[guided]
The point of cofinality is that a cofinal family is large enough to dominate every member of the ideal. We apply that domination to the smallest ideal sets available: singletons.
Let $\mathcal{A} \subset \mathcal{I}$ be cofinal in $\mathcal{I}$. This means that whenever $B \in \mathcal{I}$, some $A \in \mathcal{A}$ contains it. Now fix an arbitrary point $x \in X$. The hypothesis that $\mathcal{I}$ contains all singletons gives $\{x\} \in \mathcal{I}$. Applying cofinality to the ideal member $B := \{x\}$, there exists $A_x \in \mathcal{A}$ such that
\begin{align*}
\{x\} \subset A_x.
\end{align*}
Therefore $x \in A_x$, and since $A_x$ is one of the sets in $\mathcal{A}$, we have
\begin{align*}
x \in \bigcup \mathcal{A}.
\end{align*}
Because this holds for every $x \in X$, we get $X \subset \bigcup \mathcal{A}$. The reverse inclusion $\bigcup \mathcal{A} \subset X$ holds because every $A \in \mathcal{A}$ is a subset of $X$. Hence
\begin{align*}
\bigcup \mathcal{A} = X.
\end{align*}
Thus every cofinal family in $\mathcal{I}$ is automatically a cover of $X$ by members of $\mathcal{I}$. Since $\operatorname{cov}(\mathcal{I})$ is the least possible size of such a cover, we have
\begin{align*}
\operatorname{cov}(\mathcal{I}) \leq |\mathcal{A}|.
\end{align*}
Taking the least possible size of a cofinal family gives
\begin{align*}
\operatorname{cov}(\mathcal{I}) \leq \operatorname{cof}(\mathcal{I}).
\end{align*}
[/guided]
[/step]
[step:Write any non-ideal set as a union of singletons]
Let $Y \subset X$ be any set such that $Y \notin \mathcal{I}$. Define the singleton family
\begin{align*}
\mathcal{S}_Y := \{\{y\} : y \in Y\}.
\end{align*}
By the hypothesis on singletons, $\mathcal{S}_Y \subset \mathcal{I}$. Also,
\begin{align*}
\bigcup \mathcal{S}_Y = Y.
\end{align*}
Since $Y \notin \mathcal{I}$, the family $\mathcal{S}_Y$ is admissible in the defining minimisation for $\operatorname{add}(\mathcal{I})$. Therefore
\begin{align*}
\operatorname{add}(\mathcal{I}) \leq |\mathcal{S}_Y|.
\end{align*}
The map $Y \to \mathcal{S}_Y$ given by $y \mapsto \{y\}$ is a bijection, so $|\mathcal{S}_Y| = |Y|$. Thus
\begin{align*}
\operatorname{add}(\mathcal{I}) \leq |Y|.
\end{align*}
Taking the minimum over all $Y \subset X$ with $Y \notin \mathcal{I}$ gives
\begin{align*}
\operatorname{add}(\mathcal{I}) \leq \operatorname{non}(\mathcal{I}).
\end{align*}
[/step]
[step:Choose one point outside each cofinal ideal set to bound uniformity by cofinality]
Let $\mathcal{A} \subset \mathcal{I}$ be cofinal in $\mathcal{I}$. For each $A \in \mathcal{A}$, the set $X \setminus A$ is nonempty; otherwise $A = X$, contradicting $A \in \mathcal{I}$ and $X \notin \mathcal{I}$. Choose a point $x_A \in X \setminus A$ for each $A \in \mathcal{A}$, and define
\begin{align*}
Y_{\mathcal{A}} := \{x_A : A \in \mathcal{A}\}.
\end{align*}
The indexing map $\mathcal{A} \to Y_{\mathcal{A}}$ given by $A \mapsto x_A$ is surjective, so
\begin{align*}
|Y_{\mathcal{A}}| \leq |\mathcal{A}|.
\end{align*}
We claim that $Y_{\mathcal{A}} \notin \mathcal{I}$. Suppose instead that $Y_{\mathcal{A}} \in \mathcal{I}$. By cofinality of $\mathcal{A}$, there exists $A_0 \in \mathcal{A}$ such that $Y_{\mathcal{A}} \subset A_0$. But $x_{A_0} \in Y_{\mathcal{A}}$ by definition of $Y_{\mathcal{A}}$, while $x_{A_0} \notin A_0$ by the choice of $x_{A_0} \in X \setminus A_0$. This is a contradiction. Therefore $Y_{\mathcal{A}} \notin \mathcal{I}$.
Since $Y_{\mathcal{A}}$ is admissible in the defining minimisation for $\operatorname{non}(\mathcal{I})$, we have
\begin{align*}
\operatorname{non}(\mathcal{I}) \leq |Y_{\mathcal{A}}| \leq |\mathcal{A}|.
\end{align*}
Taking the minimum over all cofinal families $\mathcal{A} \subset \mathcal{I}$ gives
\begin{align*}
\operatorname{non}(\mathcal{I}) \leq \operatorname{cof}(\mathcal{I}).
\end{align*}
Combining the inequalities proved in the preceding steps yields
\begin{align*}
\operatorname{add}(\mathcal{I}) \leq \operatorname{cov}(\mathcal{I}) \leq \operatorname{cof}(\mathcal{I})
\end{align*}
and
\begin{align*}
\operatorname{add}(\mathcal{I}) \leq \operatorname{non}(\mathcal{I}) \leq \operatorname{cof}(\mathcal{I}).
\end{align*}
[/step]