The Infinite Ramsey Theorem ($\mathsf{RT}$) is the statement
For any $r,p\in\mathbb{N}^{+}$ and any infinite set $A$, any $r$-coloring $c$ of $[A]^{p}$ has an infinite homogeneous subset.
Where $[r] = \{1,\ldots r\}$, and $[A]^{p}$ is the set of $p$-element subsets of $A$. A function $c:[A]^{p}\rightarrow [r]$ is called an $r$-coloring of $[A]^{p}$, and a subset $H\subseteq A$ is homogeneous for $c$ if $c$ is constant on ${[H]^{p}}$.
I am trying to prove $\mathsf{RT}$ by induction on $p$, but I am stuck in the general induction step. Here is what I have so far:
The case $p=1$, $r\in\mathbb{N}^{+}$ is simply the infinite pigeonhole principle and it is clear.
The case $p=2$, $r\in\mathbb{N}^{+}$ (which I thought solving would help me understand how to use an ultrafilter in the general induction step) goes as follows: Apply the Ultrafilter Theorem to extend the non-principal filter defined by the collection of all cofinite subsets of $A$ to a non-principal ultrafilter $U$ on $A$.
For each $a\in A$ and each color $i\in[r]$, let $A_{i}^{a} = \{b\in A-\{a\}:c(\{a,b\})=i\}$. Then, for each $a\in A$ we have a partition $\{A_{1}^{a},\ldots,A_{r}^{a},\{a\}\}$ of $A$, and since $U$ is a non-principal ultrafilter we must have exactly one of the $A_{i}^{a}\in U$. For each $a\in A$, let $i_{a}$ denote the unique color such that $A_{i_{a}}^{a}\in U$. The function $f:a\mapsto i_{a}$ is an $r$-coloring of $[A]^{1}$, and therefore there is an infinite homogeneous subset $X\in U$ for $f$. Let $k=f(X)$ (another way of seeing this is that sets $\{a\in A:i_{a}=1\},\ldots,\{a\in A:i_{a}=r\}$ form a partition of $A$. Therefore, exactly one of them is in $U$ since $U$ is an ultrafilter. Let $k$ denote the unique color such that $X = \{a\in A: i_{a} = k\}\in U$).
This set $X$ may already be homogeneous for $c$? In any case, since it is infinite we can pick $a_{0}\in X$. Let $X_{1}=X\cap A_{k}^{a_{0}}$. Since $U$ is a filter, $X_{1}\in U$ and is infinite, and there is $a_{1}\in X_{1}$. Note that $a_{0}$ and $a_{1}$ are distinct. Continue this process to obtain $a_{i}\in X_{i}=X\cap\bigcap_{j<i}A_{k}^{a_{i}}$, where $X_{i}\in U$ and is infinite.
We claim that the set $H=\{a_{i}:i\geq 0\}$ is homogeneous for $c$. Indeed, for all $i<j$ it is clear that $a_{j}\in A_{k}^{a_{i}}$. Therefore, $c(\{a_{i},a_{j}\})=k$, as desired.
Question 1: Have I made any mistakes so far?
Now, let $p\geq 2$ and the result to hold for all $r\in\mathbb{N}^{+}$ and for $p$. Let $c:[A]^{p+1}\to[r]$ be an $r$-coloring of $[A]^{p+1}$. Let $U$ be the same non-principal ultrafilter on $A$.
Question 2: How do I proceed?
Update
Here is an idea: For each $a\in A$ and each color $i\in[r]$, let $A_{i}^{a} = \{B\in [A-\{a\}]^{p}:c(B\cup\{a\})=i\}$. Then, for each $a\in A$ the sets $\{A_{1}^{a},\ldots,A_{r}^{a}\}$ partition $[A-\{a\}]^{p}$, which defines an $r$-coloring $c_{a}$ of $[A-\{a\}]^{p}$. Therefore, by the induction hypothesis, for each $a\in A$ there is a homogeneous subset $H_{a}\subseteq A-\{a\}$ for $c_{a}$. Since $U$ is a non-principal ultrafilter, for each $a\in A$ we have $H_{a}\in U$ is infinite. For each $a\in A$, let $k_{a} = c_{a}([H_{a}]^{p})$. The set $\{k_{a}:a\in A\}$ is indexed by an infinite set $A$, but is is a subset of $[r]$. Therefore, by the infinite pigeonhole principle there is $k\in[r]$ such that $k=k_{a}$ for infinitely many $a\in A$. Let $$H = \bigcup_{k_{a}=k}H_{a},$$ which is clearly in $U$ and is therefore infinite. We claim that $H$ is homogeneous for $c$. Indeed, let $H'\in[H]^{p+1}$. Pick any $a\in H'$. Then the set $H'-\{a\}\in [A-\{a\}]^{p}$, and $c_{a}(H'-\{a\}) = k$ hmm.. no there is something wrong here. This is not true necessarily...
A good hint would do :)