\newcommand{\theoref}[1]{Thm.~\ref{The:#1}}
\newcommand{\theorefs}[2]{Thms.~\ref{The:#1} and~\ref{The:#2}}
\newcommand{\theorefsp}[3]{Thms.~\ref{The:#1}, \ref{The:#2}, and~\ref{The:#3}}
\newcommand{\lemref}[1]{Lem.~\ref{Lem:#1}}
\newcommand{\lemrefs}[2]{Lemmas~\ref{Lem:#1} and~\ref{Lem:#2}}
\newcommand{\lemrefsp}[3]{Lemmas~\ref{Lem:#1},~\ref{Lem:#2}, and~\ref{Lem:#3}}
\newcommand{\corref}[1]{Cor.~\ref{Cor:#1}}
\newcommand{\figref}[1]{Fig.~\ref{Fi:#1}}
\newcommand{\figrefs}[2]{Figs.~\ref{Fi:#1} and~\ref{Fi:#2}}
\newcommand{\defref}[1]{Defn.~\ref{De:#1}}
\newcommand{\defrefs}[2]{Defns.~\ref{De:#1} and~\ref{De:#2}}
\newcommand{\sdefref}[1]{Strawman Defn.~\ref{De:#1}}
\newcommand{\lineref}[1]{line~[\ref{Li:#1}]}
\newcommand{\linerefs}[2]{lines~[\ref{Li:#1}] and~[\ref{Li:#2}]}
\newcommand{\linerefsp}[3]{lines~[\ref{Li:#1}], [\ref{Li:#2}], and~[\ref{Li:#3}]}
\newcommand{\linerefspp}[4]{lines~[\ref{Li:#1}], [\ref{Li:#2}], [\ref{Li:#3}], and~[\ref{Li:#4}]}
\newcommand{\lineseqref}[2]{lines~[\ref{Li:#1}]--[\ref{Li:#2}]}
\renewcommand{\eqref}[1]{Eqn.~(\ref{Eq:#1})}
\newcommand{\eqrefs}[2]{Eqns.~(\ref{Eq:#1}) and~(\ref{Eq:#2})}
\newcommand{\eqrefsp}[3]{Eqns.~(\ref{Eq:#1}), (\ref{Eq:#2}), and~(\ref{Eq:#3})}
\newcommand{\eqrefspp}[4]{Eqns.~(\ref{Eq:#1}), (\ref{Eq:#2}), (\ref{Eq:#3}), and~(\ref{Eq:#4})}
\newcommand{\eqrefspOr}[3]{Eqns.~(\ref{Eq:#1}), (\ref{Eq:#2}), or~(\ref{Eq:#3})}
\newcommand{\eqrefsppOr}[4]{Eqns.~(\ref{Eq:#1}), (\ref{Eq:#2}), (\ref{Eq:#3}), or~(\ref{Eq:#4})}
\newcommand{\eqseqref}[2]{Eqns.~(\ref{Eq:#1})--(\ref{Eq:#2})}
\newcommand{\formref}[1]{Formula~(\ref{Eq:#1})}
\newcommand{\formrefs}[2]{Formulas~(\ref{Eq:#1}) and~(\ref{Eq:#2})}
\newcommand{\formrefsw}[2]{Formulas~(\ref{Eq:#1}) with~(\ref{Eq:#2})}
\newcommand{\formrefsp}[3]{Formulas~(\ref{Eq:#1}), (\ref{Eq:#2}), and~(\ref{Eq:#3})}
\newcommand{\formrefspp}[4]{Formulas~(\ref{Eq:#1}), (\ref{Eq:#2}), (\ref{Eq:#3}), and~(\ref{Eq:#4})}
\newcommand{\formrefspOr}[3]{Formulas~(\ref{Eq:#1}), (\ref{Eq:#2}), or~(\ref{Eq:#3})}
\newcommand{\formrefsppOr}[4]{Formulas~(\ref{Eq:#1}), (\ref{Eq:#2}), (\ref{Eq:#3}), or~(\ref{Eq:#4})}
\newcommand{\tableref}[1]{Tab.~\ref{Ta:#1}}
\newcommand{\tablerefs}[2]{Tabs.~\ref{Ta:#1} and~\ref{Ta:#2}}
\newcommand{\sectref}[1]{\S\ref{Se:#1}}
\newcommand{\sectrefs}[2]{\S\ref{Se:#1} and~\S\ref{Se:#2}}
\newcommand{\sectrefsp}[3]{\S\ref{Se:#1}, \S\ref{Se:#2}, and~\S\ref{Se:#3}}
\newcommand{\sectseqref}[2]{\S\ref{Se:#1}--\S\ref{Se:#2}}
\newcommand{\appref}[1]{App.~\ref{App:#1}}
\newcommand{\apprefs}[2]{Apps.~\ref{App:#1} and~\ref{App:#2}}
\newcommand{\exref}[1]{Ex.~\ref{Exa:#1}}
\newcommand{\exrefs}[2]{Exs.~\ref{Exa:#1} and~\ref{Exa:#2}}
\newcommand{\exrefsp}[3]{Exs.~\ref{Exa:#1}, \ref{Exa:#2}, and~\ref{Exa:#3}}
\newcommand{\exrefspp}[4]{Exs.~\ref{Exa:#1}, \ref{Exa:#2}, \ref{Exa:#3}, and~\ref{Exa:#4}}
\newcommand{\ruleref}[1]{Rule~(\ref{Rule:#1})}
\newcommand{\rulerefs}[2]{Rules~(\ref{Rule:#1}) and~(\ref{Rule:#2})}
\newcommand{\rulerefsp}[3]{Rules~(\ref{Rule:#1}), (\ref{Rule:#2}), and~(\ref{Rule:#3})}
\newcommand{\rulerefspp}[4]{Rules~(\ref{Rule:#1}), (\ref{Rule:#2}), (\ref{Rule:#3}), and~(\ref{Rule:#4})}
\newcommand{\prodref}[1]{Prod.~(\ref{Prod:#1})}
\newcommand{\prodrefs}[2]{Prods.~(\ref{Prod:#1}) and~(\ref{Prod:#2})}
\newcommand{\prodrefsp}[3]{Prods.~(\ref{Prod:#1}), (\ref{Prod:#2}), and~(\ref{Prod:#3})}
\newcommand{\prodrefspp}[4]{Prods.~(\ref{Prod:#1}), (\ref{Prod:#2}), (\ref{Prod:#3}), and~(\ref{Prod:#4})}
\newcommand{\constraintref}[1]{Constraint~(\ref{Eq:#1})}
\newcommand{\constraintrefs}[2]{Constraints~(\ref{Eq:#1}) and~(\ref{Eq:#2})}
\newcommand{\constraintrefsp}[3]{Constraints~(\ref{Eq:#1}), (\ref{Eq:#2}), and~(\ref{Eq:#3})}
\newcommand{\itemref}[1]{item~\ref{It:#1}}
\newcommand{\itemrefs}[2]{items~\ref{It:#1} and~\ref{It:#2}}
\newcommand{\itemrefsp}[3]{items~\ref{It:#1}, \ref{It:#2}, and~\ref{It:#3}}
\newcommand{\itemrefspp}[4]{items~\ref{It:#1}, \ref{It:#2}, \ref{It:#3}, and~\ref{It:#4}}
\newcommand{\itemseqref}[2]{items~[\ref{It:#1}]--[\ref{It:#2}]}
\newcommand{\Itemref}[1]{Item~\ref{It:#1}}
\newcommand{\Itemrefs}[2]{Items~\ref{It:#1} and~\ref{It:#2}}
\newcommand{\Itemrefsp}[3]{Items~\ref{It:#1}, \ref{It:#2}, and~\ref{It:#3}}
\newcommand{\Itemrefspp}[4]{Items~\ref{It:#1}, \ref{It:#2}, \ref{It:#3}, and~\ref{It:#4}}
\newcommand{\Itemseqref}[2]{Items~[\ref{It:#1}]--[\ref{It:#2}]}
\newcommand{\algref}[1]{Alg.~\ref{Alg:#1}}
\newcommand{\algrefs}[2]{Algs.~\ref{Alg:#1} and~\ref{Alg:#2}}
\newcommand{\algrefsp}[3]{Algs.~\ref{Alg:#1}, \ref{Alg:#2}, and~\ref{Alg:#3}}
\newcommand{\algrefspp}[4]{Algs.~\ref{Alg:#1}, \ref{Alg:#2}, \ref{Alg:#3}, and~\ref{Alg:#4}}
\newcommand{\assumptionref}[1]{Assumption~(\ref{Assumption:#1})}
\newcommand{\assumptionrefs}[2]{Assumptions~(\ref{Assumption:#1}) and~(\ref{Assumption:#2})}
\newcommand{\footnoteref}[1]{footnote~\ref{Footnote:#1}}
\newcommand{\footnoterefs}[2]{footnote~\ref{Footnote:#1} and~\ref{Footnote:#2}}
