Loading hyperref
in a document class is always problematic, because it usually has to come last (except for cleveref
and a few other packages).
Anyway, this is not the main problem: the biggest one is that the theorem-like environments are declared before you can load cleveref
.
In my opinion the class should provide a cleveref
option, so as to load the package at the right spot, that is, after loading hyperref
and before declaring theorem-like environments and other counters.
Loading hyperref
and cleveref
before loading the class is the worst advice I can think to. Modifying the class is out of the question.
You can solve the issue by redeclaring the environments and marking the input so the copy editors will know what's going on.
\documentclass[EJP]{ejpecp}
\usepackage{cleveref}
%%% I have to redefine the theorem-like environments
%%% in order to use cleveref; output will be exactly the
%%% same, because the environments are declared in the
%%% same styles as in the class.
\makeatletter
\def\redeclare@theorems#1{%
\@for\next:=#1\do{\expandafter\redeclare@theorem\next}%
}
\def\redeclare@theorem#1#2{%
\expandafter\let\csname #1\endcsname\relax
\expandafter\let\csname end#1\endcsname\relax
\newtheorem{#1}[theorem]{#2}%
}
\theoremstyle{ejpecpbodyit}
\redeclare@theorems{%
{assumptions}{Assumptions},%
{assumption}{Assumption},%
{claim}{Claim},%
{condition}{Condition},%
{conjecture}{Conjecture},%
{corollary}{Corollary},%
{definitions}{Definitions},%
{definition}{Definition},%
{facts}{Facts},%
{fact}{Fact},%
{heuristics}{Heuristics},%
{hypothesis}{Hypothesis},%
{hypotheses}{Hypotheses},%
{lemma}{Lemma},%
{notations}{Notations},%
{notation}{Notation},%
{proposition}{Proposition}%
}
\theoremstyle{ejpecpbodyrm}
\redeclare@theorems{%
{example}{Example},%
{exercise}{Exercise},%
{problem}{Problem},%
{question}{Question},%
{remark}{Remark}%
}
\makeatother
%%% end of modifications
\SHORTTITLE{Title}
\TITLE{Title}
\AUTHORS{Me}
\KEYWORDS{EJP; ECP; typesetting; \LaTeX} % Separate items with ;
\AMSSUBJ{NA} % Edit. Separate items with ;
\SUBMITTED{January 2, 2013} % Edit.
\ACCEPTED{December 13, 2014} % Edit.
\VOLUME{0}
\YEAR{2016}
\PAPERNUM{0}
\DOI{10.1214/YY-TN}
\begin{document}
\section{Introduction}
\begin{proposition}\label{prop:zeronotone}
One has $0 \neq 1$.
\end{proposition}
\Cref{prop:zeronotone} is very useful.
\begin{theorem}\label{thm:zeronotone}
One has $0 \neq 1$.
\end{theorem}
\Cref{thm:zeronotone} is very useful.
\end{document}
In the large lists you can of course omit the environments you don't use.

The added code can also be abbreviated, taking into account that all declarations are of the form \newtheorem{foo}[theorem]{Foo}
:
%%% I have to redefine the theorem-like environments
%%% in order to use cleveref; output will be exactly the
%%% same, because the environments are declared in the
%%% same styles as in the class.
\makeatletter
\def\redeclare@theorems#1{%
\@for\next:=#1\do{\expandafter\redeclare@theorem\expandafter{\next}}%
}
\def\redeclare@theorem#1{\lowercase{%
\expandafter\let\csname #1\endcsname\relax
\expandafter\let\csname end#1\endcsname\relax
\newtheorem{#1}}[theorem]{#1}%
}
\theoremstyle{ejpecpbodyit}
\redeclare@theorems
{Assumptions,Assumption,Claim,Condition,Conjecture,Corollary,%
Definitions,Definition,Facts,Fact,Heuristics,Hypothesis,%
Hypotheses,Lemma,Notations,Notation,Proposition}
\theoremstyle{ejpecpbodyrm}
\redeclare@theorems{Example,Exercise,Problem,Question,Remark}
\makeatother
%%% end of modifications