\usepackage{amsmath, amsthm, amssymb, amsfonts}
\usepackage{thmtools}
\usepackage{graphicx}
\usepackage{setspace}
\usepackage{geometry}
\usepackage{layout}
\usepackage{float}
\usepackage{hyperref}
\usepackage[utf8]{inputenc}
\usepackage[english]{babel}
\usepackage{framed}
\usepackage[dvipsnames]{xcolor}
\usepackage{soul}
\usepackage{tcolorbox}
\usepackage{systeme}
\usepackage{multicol}

\colorlet{LightGray}{White!90!Periwinkle}
\colorlet{LightOrange}{Orange!15}
\colorlet{LightRed}{Red!15}
\colorlet{LightGreen}{Green!15}

\let\implies\Rightarrow
\let\impliedby\Leftarrow
\let\iff\Leftrightarrow
\let\vec\overrightarrow

\newcommand{\HRule}[1]{\rule{\linewidth}{#1}}

\declaretheoremstyle[name=Theorem,]{thmsty}
\declaretheorem[style=thmsty,numberwithin=section]{theorem}
\tcolorboxenvironment{theorem}{colback=LightGray}

\declaretheoremstyle[name=Proposition,]{prosty}
\declaretheorem[style=prosty,numberlike=theorem]{proposition}
\tcolorboxenvironment{proposition}{colback=LightOrange}

\declaretheoremstyle[name=Principle,]{prcpsty}
\declaretheorem[style=prcpsty,numberlike=theorem]{principle}
\tcolorboxenvironment{principle}{colback=LightGreen}

\declaretheoremstyle[name=Note,]{notesty}
\declaretheorem[style=notesty,numbered=no]{note}
\tcolorboxenvironment{note}{colback=LightRed}

\declaretheoremstyle[name=Definition,]{defnsty}
\declaretheorem[style=defnsty,numbered=no]{defn}
\tcolorboxenvironment{defn}{colback=LightGray}

\setstretch{1.2}
\geometry{
    top=1cm,
    headheight=12pt,
    headsep=25pt,
    footskip=30pt,
    left=1.5cm,
    right=1.5cm
}

\newcommand\hr{
    \noindent\rule[0.5ex]{\linewidth}{0.5pt}
}

\newenvironment{amatrix}[1]{%
  \left(\begin{array}{@{}*{#1}{c}|c@{}}
}{%
  \end{array}\right)
}
