The fundamental group of a compact, locally simply connected space is finitely generated
Let $X$ be a compact space that is also locally simply connected (any point has a local base of simply connected open sets). Prove that the fundamental group at any point is finitely generated.
Here's a proof that the fundamental group is finitely generated. The properties required of the space $X$ which I will require are that it is a compact (Hausdorff) space, has a cover by open simply connected sets, and which is locally path connected (i.e., there is a base for the topology consisting of path connected sets). As, by definition, a simply connected set is also path connected, the conditions are met for any compact locally simply connected space.
Lemma: Let $\mathcal{U}$ be an open cover for a compact space $X$. Then, there exists an open cover $\mathcal{V}$ such that, for all $V_1,V_2\in\mathcal{V}$ with $V_1\cap V_2\not=\emptyset$, there exists a $U\in\mathcal{U}$ with $V_1\cup V_2\subseteq U$.
I'll prove this in a moment, but first show that it implies that $X$ has finitely generated fundamental group. By the assumptions on $X$, we can let $\mathcal{U}$ be an open cover consisting of simply connected sets. Then, let $\mathcal{V}$ be as in the lemma. By breaking each element of $\mathcal{V}$ into its connected components (which will also be path connected, by local path connectedness of $X$), we can assume that each $V\in\mathcal{V}$ is path connected and non-empty. Also, by compactness of $X$, we can assume that $\mathcal{V}$ is a finite cover. Say, $\mathcal{V}=\{V_1,V_2,\ldots,V_n\}$.
Let $I=\{1,2,\ldots,n\}$ and, for each $i\in I$, choose a point $P_i\in V_i$. Also, define $J\subseteq I\times I$ to be the pairs $(i,j)$ such that $V_i\cap V_j\not=\emptyset$. As $V_i\cup V_j$ is path connected, we can find continuous $\gamma_{i,j}\colon[0,1]\to V_i\cup V_j$ with $\gamma_{ij}(0)=P_i$ and $\gamma_{ij}(1)=P_j$. Note that the path $\gamma_{ij}$ is unique up to homotopy. If $f\colon[0,1]\to V_i\cap V_j$ was any other path with $f(0)=P_i$ and $f(1)=P_j$ then, by the properties of $\mathcal{V}$ given in the lemma, there is a $U\in\mathcal{U}$ containing $V_i\cup V_j$ and, hence, containing the paths of $\gamma_{ij}$ and $f$. By simple connectedness of $U$, $f$ must be homotopic to $\gamma_{ij}$.
Now, consider any path $f\colon[0,1]\to X$ with $f(0),f(1)$ in $\{P_1,\ldots,P_n\}$. As $\{f^{-1}(V_i)\colon i\in I\}$ covers the unit interval, there exists $0=t_0\le t_1\le\cdots\le t_m=1$ such that each interval $[t_{k-1},t_k]$ is contained in one of the $f^{-1}(V_k)$, say, $V_{i_k}$. we can define $i_0$ such that $f(0)=P_{i_0}$ and, wlog, choose $i_m$ such that $f(1)=P_{i_m}$.
As $f(t_{k-1})\in V_{i_{k-1}}\cap V_{i_k}$ for each $k$, we see that $(i_{k-1},i_k)\in J$. We can define a path $f_k$ joining $P_{i_{k-1}}$ to $P_{i_k}$ by first taking a path joining $P_{k-1}$ to $f(t_{k-1})$, then take $f$ restricted to $[t_{k-1},t_k]$, then join $f(t_k)$ to $P_{i_k}$ along a path in $V_{i_k}$. Joining these paths together, $f_1 * f_2 * \cdots * f_m$, we get back to $f$ (up to homotopy equivalence). Then, as noted above, each $f_k$ must be homotopic to $\gamma_{i_{k-1}i_k}$. So, we have the homotopy equivalence, $$ f\cong\gamma_{i_0i_1}*\gamma_{i_1i_2}*\cdots *\gamma_{i_{m-1}i_m}. $$ Now let $\tilde I$ be the set of $i\in I$ such that $P_i$ is in the same path connected component of $X$ as $P$, and $\tilde J=J\cap (\tilde I\times\tilde I)$. For each $i\in\tilde I$, let $\gamma_i$ be a path jointing $P$ to $P_i$ and, for each $(i,j)\in\tilde J$, let $\tilde\gamma_{ij}=\gamma_i*\gamma_{ij}*\gamma_j^{-1}$ (here, I have used $\gamma^{-1}_j$ to denote the path $\gamma_j$ run backwards). Then, $\tilde\gamma_{ij}$ are paths joining $P$ to itself, and $$ f\cong\tilde\gamma_{i_0i_1}*\tilde\gamma_{i_1i_2}*\cdots *\tilde\gamma_{i_{m-1}i_m}. $$ So, the equivalence classes $[\tilde\gamma_{ij}]$ for $(i,j)\in\tilde J$ is a finite generating set for the fundamental group of $X$ at $P$.
Proof of lemma:
Note, that if $X$ was a metric space then Lebesgue's number lemma implies that for some $r > 0$, every open ball of radius $r$ is contained in a member of $\mathcal{U}$, and we can take $\mathcal{V}$ to be the collection of open balls of radius $r/2$. For non-metrizable spaces we need to do a bit more work. Actually, it can be shown that every open cover has an open star-refinement (this is a consequence of compact ⇒ paracompact ⇒ fully normal), which is a stronger version of the lemma, although we don't need that here.
First, as the space $X$ is compact, we can restrict $\mathcal{U}$ to be a finite open cover. Say, $\mathcal{U}=\{U_1,U_2,\ldots,U_n\}$. I'll prove the result by induction on $n$. The case with $n=1$ is clear, as we can take $\mathcal{V}=\mathcal{U}=\{X\}$.
Now, suppose that $n > 1$. Taking $\tilde U_2=U_2\cup\cdots\cup U_n$, we have $U_1\cup\tilde U_2=X$. So, $X\setminus U_1$ is a closed subset of $\tilde U_2$. As compact spaces are normal, we can find open sets $W_1,W_2$ with, $$ X\setminus U_1\subseteq W_1\subseteq\bar W_1\subseteq W_2\subseteq\bar W_2\subseteq\tilde U_2. $$ As $\{U_2,\ldots,U_n\}$ covers $\bar W_2$, the induction hypothesis gives an open cover $\mathcal{V}_0$ for $\bar W_2$ (with the subspace topology) such that, if $V_1,V_2\in\mathcal{V}_0$ have nonempty intersection then $V_1\cup V_2\subseteq U$ for some $U\in\mathcal{U}$.
Let us now set, \begin{align} \mathcal{V}_1&=\left\{V\cap W_1\colon V\in\mathcal{V}_0\right\},\\ \mathcal{V}_2&=\left\{V\cap W_2\cap U_1\colon V\in\mathcal{V}_0\right\}. \end{align} These are collections of open sets in the topology of $X$ and, for any $V_1,V_2\in\mathcal{V}_1\cup\mathcal{V}_2$ with nonempty intersection, then $V_1\cup V_2\subseteq U$ for some $U\in\mathcal{U}$. They cover $W_1\cup(W_2\cap U_1)$, which is equal to $W_2$. Furthermore, all elements of $\mathcal{V}_1$ are disjoint from $X\setminus\bar W_1\subseteq U_1$ and all elements of $\mathcal{V}_2$ are contained in $U_1$. Then, $$ \mathcal{V}=\mathcal{V}_1\cup\mathcal{V}_2\cup\{X\setminus \bar W_1\} $$ satisfies the requirements of the lemma.
I found this question interesting, here's my attempt at a solution, it should probably be checked as I'm not 100% certain...
Fix some basepoint $z \in X$
At each point $x \in X$, let $U_x$ be a simply connected open neighbourhood of $x$. The $U_x$ form an open cover so since $X$ is compact we can take a finite subcover $U_{x_1}, \dots, U_{x_n}$, where WLOG $z \in U_{x_1}$.
Now consider a path $f \colon I \to X$ based at $z$. The path $f$ passes through the $U_{x_i}$ in some order, beginning and terminating in $U_{x_1}$. This yields a finite sequence $S_f = (v_1, v_2, \dots, v_m)$ where $v_1 = v_m = x_1$. Note since each $U_{x_i}$ is simply connected, any two paths $f_1, f_2$ with $S_{f_1} = S_{f_2}$ are homotopic.
For each finite sequence, $S$ of length less than $2n$ such that if there exists a path $f$ with $S_f = S$ pick such an $f$ and let $G$ be the set of all such $f$'s. This is a finite set, and I claim it generates $\pi_1(X; z)$.
Let $f$ be any path in $X$ based at $z$ and consider $S_f$. If this has length less than $2n$ then $f$ is homotopic to an element of $G$ and so we are done. Otherwise we can pick minimal $i<j$ such that $v_i = v_j$. Then $f$ is homotopic to the composition of two loops $g$ and $f'$ where $S_g = (v_1, \dots, v_j, v_{i-1}, \dots, v_1)$ and $S_{f'} = (v_1, ... v_{i-1}, v_j, \dots v_n)$. Now $g \in G$ and $S_{f'}$ is shorter than $S_f$ so we can repeat this process until we express $f$ as the composition of elements in $G$.
Sorry, I was a bit rushed writing up the final section, let me know if anything is unclear and I can elaborate.