\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{amsthm}
\usepackage{mathrsfs}
\usepackage{bbold}
\usepackage[framemethod=TikZ]{mdframed}

\usepackage{setspace}
\usepackage{enumitem}

\renewcommand\thesection{\Roman{section}}
\renewcommand\thesubsection{\arabic{subsection}}
\renewcommand\thesubsubsection{\alph{subsubsection}}

% ------------------------------------ %

\newcounter{thm}\setcounter{thm}{0}
\renewcommand{\thethm}{\arabic{thm}}
\newenvironment{thm}[2][]{
    \refstepcounter{thm}
    \ifstrempty{#1}
        {\mdfsetup{
            frametitle={%
                {\strut Theorem~\thethm}}}
            }
        {\mdfsetup{
            frametitle={%
                {\strut Theorem~\thethm:~#1}}}
        }
    \begin{mdframed}[]\relax%
    \label{#2}}{\end{mdframed}
}

\newcounter{lem}[section]\setcounter{lem}{0}
\renewcommand{\thelem}{\arabic{section}.\arabic{lem}}
\newenvironment{lem}[2][]{
    \refstepcounter{lem}
    \ifstrempty{#1}
        {\mdfsetup{
            frametitle={%
                {\strut Lemma~\thelem}}}
            }
        {\mdfsetup{
            frametitle={%
                {\strut Lemma~\thelem:~#1}}}
        }
    \begin{mdframed}[]\relax%
    \label{#2}}{\end{mdframed}}

\newcounter{prop}[subsection]\setcounter{prop}{0}
\renewcommand{\theprop}{\arabic{section}.\arabic{prop}}
\newenvironment{prop}[2][]{
    \refstepcounter{prop}
    \ifstrempty{#1}
        {\mdfsetup{
            frametitle={%
                {\strut Proposition~\theprop}}}
            }
        {\mdfsetup{
            frametitle={%
                {\strut Proposition~\theprop:~#1}}}
        }
    \begin{mdframed}[]\relax%
    \label{#2}}{\end{mdframed}}

\newcounter{defn}[section]\setcounter{defn}{0}
\renewcommand{\thedefn}{\arabic{defn}}
\newenvironment{defn}[2][]{
    \refstepcounter{defn}
    \ifstrempty{#1}
        {\mdfsetup{
            frametitle={%
                {\strut Definition~\thedefn}}}
            }
        {\mdfsetup{
            frametitle={%
                {\strut Definition~\thedefn:~#1}}}
        }
    \begin{mdframed}[]\relax%
    \label{#2}}{\end{mdframed}}

\theoremstyle{remark}
\newtheorem*{rmk}{Remark}
\newtheorem*{note}{Note}

% ------------------------------------ %

\usepackage{titlesec}

\titleformat{\section}
{\bfseries}
{\thesection. }
{0em}
{\setstretch{0.4}}[\titlerule]

\titleformat{\subsection}
{}
{\thesubsection. }
{0em}
{\setstretch{0.4}}

\titleformat{\subsubsection}
{}
{\thesubsubsection \,- }
{0em}
{\setstretch{0.4}}

\setlength{\parindent}{0em}

% ------------------------------------ %

\usepackage{fancyhdr}

\pagestyle{fancy}
\fancyhf{}
\lhead{\nouppercase{\leftmark}}
\rfoot{Page \thepage}

% ------------------------------------ %

\usepackage{dirtytalk}
