\documentclass[12pt]{article}
\usepackage[margin=1in]{geometry}
\usepackage{amsmath,amsthm,amsfonts,latexsym,amssymb,xcolor,graphicx}
\usepackage{tikz}
\usepackage{scalerel}
\usepackage{fancyhdr}
\pagestyle{fancy}
\setlength{\headheight}{50pt}

\begin{document}
\lhead{Model Theory \\ Assignment 1 \\ Problem 1} 
\rhead{Hermione Granger \\ Harry Potter\\ Ron Weasley} %% List all group members' names

\noindent
1. This is the problem.

\bigskip
\bigskip

\noindent
\emph{Proof.}
This is the \color{blue} solution. \color{black}
\begin{enumerate}
\item[(a)]  It uses 
\item[(b)]  a lot of 
\item[(c)]  math symbols, 
\item[(d)]  like
\end{enumerate}  

\[
\models, \vdash, \wedge, \vee, \neg, \to, \leftrightarrow, 
\mathbb N = \langle \textsf{natural numbers}; +, \cdot \rangle, 
\textrm{Th}_{\mathcal L}(\mathbf A), \varphi, 2^{\aleph_0}
\]
fancy stuff

\[
\left[MP\stackrel{\rm def}{=} \frac{\alpha, (\alpha\to \beta)}{\beta} \right],
\quad \left(2020^{2019^{\rotatebox{70}{$\ddots$}^{\; 2^1}}}\right)\scalerel*[7pt]{!}{\Bigg|},
\quad
\begin{bmatrix}
  1 & 0\\
  0 & 1
\end{bmatrix}
\begin{pmatrix}
  1 & 0\\
  0 & 1
\end{pmatrix}
=
\begin{vmatrix}
  1 & 0\\
  0 & 1
\end{vmatrix}
\]
and organized stuff

\[
\begin{array}{rlcl}
m+(n+S(k)) &= m+S(n+k) &\hphantom{AAAAA} &(\textrm{It's true})\\
     &= S(m+(n+k)) &            &(\textrm{Because})\\
     &= S((m+n)+k) &            &(\textrm{Because})\\
     &= (m+n)+S(k) &            &(\textrm{Because})\\
\end{array}
\]


\qed

\end{document}
