I am currently using this in the preamble:
\theoremstyle{plain}% default
\newtheorem{thm}{Theorem}[section]
\newtheorem{lem}[thm]{Lemma}
\newtheorem{prop}[thm]{Proposition}
\newtheorem*{cor}{Corollary}
\theoremstyle{definition}
\newtheorem{defn}{Definition}[section]
\newtheorem{conj}{Conjecture}[section]
\newtheorem{exmp}{Example}[section]
\theoremstyle{remark}
\newtheorem*{rem}{Remark}
\newtheorem*{note}{Note}
\newtheorem{case}{Case}
On the whole, this works exactly as I want it to. However for cases within a proof, I want the numbering to start at 1 again within each theorem: eg it should read:
Thm 1: blah blah
Proof:
Case 1:
Case 2:
Thm 2: blah blah blah
Proof:
Case 1:
Case 2:
Rather than in the second theorem the cases starting from 3 which is what currently happens.
Google suggested using something to do with numbered_within but I haven't managed to get the formatting right for this to work yet.. any ideas?

\newtheorem[thm]{Case}. Or you can use\begin{proof}[Case I]\end{proof}. – Sigur Apr 29 '14 at 21:20\makeatletter\@addtoreset{case}{thm}\makeatother... – Werner Apr 29 '14 at 21:26Package wise I am using amsmath and amsthm. Will experiment. – Zoe Kelly Apr 29 '14 at 21:41
\@addtoreset{case}{lem}\@addtoreset{case}{prop}... – Werner Apr 29 '14 at 21:45\setcounter{case}{0}[put this before your next case environment] at ftp://ftp.ams.org/pub/tex/doc/amscls/amsthdoc.pdf#page=6 – bjd2385 Sep 19 '16 at 15:18