Skip to main content\(\require{cancel}\require{upgreek} \newcommand{\ds}{\displaystyle}
\renewcommand{\textcolor}[2]{{\color{#1}{#2}}}
\newcommand{\es}{ {\varnothing}}
\newcommand{\st}{ \;\mathrm{s.t.}\; }
\newcommand{\so}{ \;\mid\; }
\newcommand{\pow}[1]{ \mathcal{P}\left(#1\right) }
\newcommand{\set}[1]{ \left\{#1\right\} }
\renewcommand{\neg}{\sim}
\newcommand{\rel}[1][R]{\;\mathcal{#1}\;}
\newcommand{\nrel}[1][R]{\;\cancel{\mathcal{#1}}\;}
\newcommand{\dee}[1]{\mathrm{d}#1}
\newcommand{\diff}[2]{\dfrac{\mathrm{d}#1}{\mathrm{d}#2}}
\renewcommand{\mod}[1]{\ (\mathrm{mod}\ #1)}
\newcommand{\lcm}{\mathrm{lcm}}
\let\oldepsilon\epsilon
\renewcommand{\epsilon}{\varepsilon}
\newcommand{\ceil}[1]{\left\lceil #1 \right\rceil}
\newcommand{\lt}{<}
\newcommand{\gt}{>}
\newcommand{\amp}{&}
\definecolor{fillinmathshade}{gray}{0.9}
\newcommand{\fillinmath}[1]{\mathchoice{\colorbox{fillinmathshade}{$\displaystyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\textstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptstyle \phantom{\,#1\,}$}}{\colorbox{fillinmathshade}{$\scriptscriptstyle\phantom{\,#1\,}$}}}
\)
PLP: An introduction to mathematical proof
August 15, 2023