diff --git a/README.md b/README.md
index acbf8ab..a21b7db 100644
--- a/README.md
+++ b/README.md
@@ -1 +1,10 @@
-# MyZKP: Introduction to Zero Knowledge Protocol
+# MyZKP: Building Zero Knowledge Proof from Scratch
+
+```
+ ███╗ ███╗ ██╗ ██╗ ███████╗ ██╗ ██╗ ██████╗
+ ████╗ ████║ ╚██╗ ██╔╝ ╚══███╔╝ ██║ ██╔╝ ██╔══██╗
+ ██╔████╔██║ ╚████╔╝ ███╔╝ █████╔╝ ██████╔╝
+ ██║╚██╔╝██║ ╚██╔╝ ███╔╝ ██╔═██╗ ██╔═══╝
+ ██║ ╚═╝ ██║ ██║ ███████╗ ██║ ██╗ ██║
+ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝
+```
\ No newline at end of file
diff --git a/book/latex/PRIMEarxiv.sty b/book/latex/PRIMEarxiv.sty
deleted file mode 100644
index 3640f76..0000000
--- a/book/latex/PRIMEarxiv.sty
+++ /dev/null
@@ -1,257 +0,0 @@
-%based on the Arxiv style of George Kour (available at https://github.com/kourgeorge/arxiv-style)
-
-\NeedsTeXFormat{LaTeX2e}
-
-\ProcessOptions\relax
-
-% fonts
-\renewcommand{\rmdefault}{ptm}
-\renewcommand{\sfdefault}{phv}
-
-% set page geometry
-\usepackage[verbose=true,letterpaper]{geometry}
-\AtBeginDocument{
- \newgeometry{
- textheight=9in,
- textwidth=6.5in,
- top=1in,
- headheight=14pt,
- headsep=25pt,
- footskip=30pt
- }
-}
-
-\widowpenalty=10000
-\clubpenalty=10000
-\flushbottom
-\sloppy
-
-\usepackage{fancyhdr}
-\fancyhf{}
-\pagestyle{fancy}
-\renewcommand{\headrulewidth}{0pt}
-\fancyheadoffset{0pt}
-\rhead{ \textit{PRIME AI paper}} %\scshape A preprint - \today \number\year
-\cfoot{\thepage}
-
-
-%Handling Keywords
-\def\keywordname{{\bfseries \emph Keywords}}%
-\def\keywords#1{\par\addvspace\medskipamount{\rightskip=0pt plus1cm
-\def\and{\ifhmode\unskip\nobreak\fi\ $\cdot$
-}\noindent\keywordname\enspace\ignorespaces#1\par}}
-
-% font sizes with reduced leading
-\renewcommand{\normalsize}{%
- \@setfontsize\normalsize\@xpt\@xipt
- \abovedisplayskip 7\p@ \@plus 2\p@ \@minus 5\p@
- \abovedisplayshortskip \z@ \@plus 3\p@
- \belowdisplayskip \abovedisplayskip
- \belowdisplayshortskip 4\p@ \@plus 3\p@ \@minus 3\p@
-}
-\normalsize
-\renewcommand{\small}{%
- \@setfontsize\small\@ixpt\@xpt
- \abovedisplayskip 6\p@ \@plus 1.5\p@ \@minus 4\p@
- \abovedisplayshortskip \z@ \@plus 2\p@
- \belowdisplayskip \abovedisplayskip
- \belowdisplayshortskip 3\p@ \@plus 2\p@ \@minus 2\p@
-}
-\renewcommand{\footnotesize}{\@setfontsize\footnotesize\@ixpt\@xpt}
-\renewcommand{\scriptsize}{\@setfontsize\scriptsize\@viipt\@viiipt}
-\renewcommand{\tiny}{\@setfontsize\tiny\@vipt\@viipt}
-\renewcommand{\large}{\@setfontsize\large\@xiipt{14}}
-\renewcommand{\Large}{\@setfontsize\Large\@xivpt{16}}
-\renewcommand{\LARGE}{\@setfontsize\LARGE\@xviipt{20}}
-\renewcommand{\huge}{\@setfontsize\huge\@xxpt{23}}
-\renewcommand{\Huge}{\@setfontsize\Huge\@xxvpt{28}}
-
-% sections with less space
-\providecommand{\section}{}
-\renewcommand{\section}{%
- \@startsection{section}{1}{\z@}%
- {-2.0ex \@plus -0.5ex \@minus -0.2ex}%
- { 1.5ex \@plus 0.3ex \@minus 0.2ex}%
- {\large\bf\raggedright}%
-}
-\providecommand{\subsection}{}
-\renewcommand{\subsection}{%
- \@startsection{subsection}{2}{\z@}%
- {-1.8ex \@plus -0.5ex \@minus -0.2ex}%
- { 0.8ex \@plus 0.2ex}%
- {\normalsize\bf\raggedright}%
-}
-\providecommand{\subsubsection}{}
-\renewcommand{\subsubsection}{%
- \@startsection{subsubsection}{3}{\z@}%
- {-1.5ex \@plus -0.5ex \@minus -0.2ex}%
- { 0.5ex \@plus 0.2ex}%
- {\normalsize\bf\raggedright}%
-}
-\providecommand{\paragraph}{}
-\renewcommand{\paragraph}{%
- \@startsection{paragraph}{4}{\z@}%
- {1.5ex \@plus 0.5ex \@minus 0.2ex}%
- {-1em}%
- {\normalsize\bf}%
-}
-\providecommand{\subparagraph}{}
-\renewcommand{\subparagraph}{%
- \@startsection{subparagraph}{5}{\z@}%
- {1.5ex \@plus 0.5ex \@minus 0.2ex}%
- {-1em}%
- {\normalsize\bf}%
-}
-\providecommand{\subsubsubsection}{}
-\renewcommand{\subsubsubsection}{%
- \vskip5pt{\noindent\normalsize\rm\raggedright}%
-}
-
-% float placement
-\renewcommand{\topfraction }{0.85}
-\renewcommand{\bottomfraction }{0.4}
-\renewcommand{\textfraction }{0.1}
-\renewcommand{\floatpagefraction}{0.7}
-
-\newlength{\@abovecaptionskip}\setlength{\@abovecaptionskip}{7\p@}
-\newlength{\@belowcaptionskip}\setlength{\@belowcaptionskip}{\z@}
-
-\setlength{\abovecaptionskip}{\@abovecaptionskip}
-\setlength{\belowcaptionskip}{\@belowcaptionskip}
-
-% swap above/belowcaptionskip lengths for tables
-\renewenvironment{table}
- {\setlength{\abovecaptionskip}{\@belowcaptionskip}%
- \setlength{\belowcaptionskip}{\@abovecaptionskip}%
- \@float{table}}
- {\end@float}
-
-% footnote formatting
-\setlength{\footnotesep }{6.65\p@}
-\setlength{\skip\footins}{9\p@ \@plus 4\p@ \@minus 2\p@}
-\renewcommand{\footnoterule}{\kern-3\p@ \hrule width 12pc \kern 2.6\p@}
-\setcounter{footnote}{0}
-
-% paragraph formatting
-\setlength{\parindent}{\z@}
-\setlength{\parskip }{5.5\p@}
-
-% list formatting
-\setlength{\topsep }{4\p@ \@plus 1\p@ \@minus 2\p@}
-\setlength{\partopsep }{1\p@ \@plus 0.5\p@ \@minus 0.5\p@}
-\setlength{\itemsep }{2\p@ \@plus 1\p@ \@minus 0.5\p@}
-\setlength{\parsep }{2\p@ \@plus 1\p@ \@minus 0.5\p@}
-\setlength{\leftmargin }{3pc}
-\setlength{\leftmargini }{\leftmargin}
-\setlength{\leftmarginii }{2em}
-\setlength{\leftmarginiii}{1.5em}
-\setlength{\leftmarginiv }{1.0em}
-\setlength{\leftmarginv }{0.5em}
-\def\@listi {\leftmargin\leftmargini}
-\def\@listii {\leftmargin\leftmarginii
- \labelwidth\leftmarginii
- \advance\labelwidth-\labelsep
- \topsep 2\p@ \@plus 1\p@ \@minus 0.5\p@
- \parsep 1\p@ \@plus 0.5\p@ \@minus 0.5\p@
- \itemsep \parsep}
-\def\@listiii{\leftmargin\leftmarginiii
- \labelwidth\leftmarginiii
- \advance\labelwidth-\labelsep
- \topsep 1\p@ \@plus 0.5\p@ \@minus 0.5\p@
- \parsep \z@
- \partopsep 0.5\p@ \@plus 0\p@ \@minus 0.5\p@
- \itemsep \topsep}
-\def\@listiv {\leftmargin\leftmarginiv
- \labelwidth\leftmarginiv
- \advance\labelwidth-\labelsep}
-\def\@listv {\leftmargin\leftmarginv
- \labelwidth\leftmarginv
- \advance\labelwidth-\labelsep}
-\def\@listvi {\leftmargin\leftmarginvi
- \labelwidth\leftmarginvi
- \advance\labelwidth-\labelsep}
-
-% create title
-\providecommand{\maketitle}{}
-\renewcommand{\maketitle}{%
- \par
- \begingroup
- \renewcommand{\thefootnote}{\fnsymbol{footnote}}
- % for perfect author name centering
- \renewcommand{\@makefnmark}{\hbox to \z@{$^{\@thefnmark}$\hss}}
- % The footnote-mark was overlapping the footnote-text,
- % added the following to fix this problem (MK)
- \long\def\@makefntext##1{%
- \parindent 1em\noindent
- \hbox to 1.8em{\hss $\m@th ^{\@thefnmark}$}##1
- }
- \thispagestyle{empty}
- \@maketitle
- \@thanks
- %\@notice
- \endgroup
- \let\maketitle\relax
- \let\thanks\relax
-}
-
-% rules for title box at top of first page
-\newcommand{\@toptitlebar}{
- \hrule height 2\p@
- \vskip 0.25in
- \vskip -\parskip%
-}
-\newcommand{\@bottomtitlebar}{
- \vskip 0.29in
- \vskip -\parskip
- \hrule height 2\p@
- \vskip 0.09in%
-}
-
-% create title (includes both anonymized and non-anonymized versions)
-\providecommand{\@maketitle}{}
-\renewcommand{\@maketitle}{%
- \vbox{%
- \hsize\textwidth
- \linewidth\hsize
- \vskip 0.1in
- \@toptitlebar
- \centering
- {\LARGE\sc \@title\par}
- \@bottomtitlebar
- % \textsc{ }\\ %A Preprint
- \vskip 0.1in
- \def\And{%
- \end{tabular}\hfil\linebreak[0]\hfil%
- \begin{tabular}[t]{c}\bf\rule{\z@}{24\p@}\ignorespaces%
- }
- \def\AND{%
- \end{tabular}\hfil\linebreak[4]\hfil%
- \begin{tabular}[t]{c}\bf\rule{\z@}{24\p@}\ignorespaces%
- }
- \begin{tabular}[t]{c}\bf\rule{\z@}{24\p@}\@author\end{tabular}%
- \vskip 0.4in \@minus 0.1in \center{ } \vskip 0.2in %\today
- }
-}
-
-% add conference notice to bottom of first page
-\newcommand{\ftype@noticebox}{8}
-\newcommand{\@notice}{%
- % give a bit of extra room back to authors on first page
- \enlargethispage{2\baselineskip}%
- \@float{noticebox}[b]%
- \footnotesize\@noticestring%
- \end@float%
-}
-
-% abstract styling
-\renewenvironment{abstract}
-{
- \centerline
- {\large \bfseries \scshape Abstract}
- \begin{quote}
-}
-{
- \end{quote}
-}
-
-\endinput
diff --git a/book/latex/fig/circom-overview.drawio b/book/latex/fig/circom-overview.drawio
deleted file mode 100644
index 5ef5962..0000000
--- a/book/latex/fig/circom-overview.drawio
+++ /dev/null
@@ -1,205 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/book/latex/main.tex b/book/latex/main.tex
deleted file mode 100644
index a291797..0000000
--- a/book/latex/main.tex
+++ /dev/null
@@ -1,1839 +0,0 @@
-\documentclass{article}
-
-
-\usepackage{PRIMEarxiv}
-
-\usepackage[utf8]{inputenc} % allow utf-8 input
-\usepackage[T1]{fontenc} % use 8-bit T1 fonts
-\usepackage{hyperref} % hyperlinks
-\usepackage{url} % simple URL typesetting
-\usepackage{booktabs} % professional-quality tables
-\usepackage{amsfonts} % blackboard math symbols
-\usepackage{nicefrac} % compact symbols for 1/2, etc
-\usepackage{multicol}
-\usepackage{microtype} % microtypography
-\usepackage{lipsum}
-\usepackage{fancyhdr} % header
-\usepackage{graphicx} % graphics
-\usepackage{listings}
-\graphicspath{{media/}} % organize your images and other figures under media/ folder
-
-\usepackage{amsmath}
-\usepackage{amsthm}
-\usepackage{amssymb}
-\usepackage{centernot}
-\usepackage{algorithm}
-\usepackage{algpseudocode}
-\usepackage{booktabs}
-\usepackage{graphicx,wrapfig,lipsum}
-\usepackage{color}
-\usepackage{xcolor}
-\usepackage{tcolorbox}
-\usepackage{bm}
-
-% Packages required for the code listing
-\usepackage{listings}
-
-\lstset{
- language = C++,
- backgroundcolor={\color[gray]{.90}},
-}
-
-\newcommand{\argmin}{\mathop{\rm arg~min}\limits}
-\newcommand{\argmax}{\mathop{\rm arg~max}\limits}
-
-\newcommand{\hideaki}[1]{\textcolor{olive}{\small{\bf [Hideaki: #1 ]}}}
-
-\tcbuselibrary{theorems}
-\newtcbtheorem
- []% init options
- {definition}% name
- {Definition}% title
- {%
- colback=green!5,
- colframe=green!35!black,
- fonttitle=\bfseries,
- }% options
- {def}% prefix
-
-\tcbuselibrary{theorems}
-\newtcbtheorem
- []% init options
- {theorem}% name
- {Theorem}% title
- {%
- colback=blue!5,
- colframe=blue!35!black,
- fonttitle=\bfseries,
- }% options
- {thm}% prefix
-
-\tcbuselibrary{theorems}
-\newtcbtheorem
- []% init options
- {proposition}% name
- {Proposition}% title
- {%
- colback=blue!5,
- colframe=blue!35!black,
- fonttitle=\bfseries,
- }% options
- {prop}% prefix
-
-\tcbuselibrary{theorems}
-\newtcbtheorem
- []% init options
- {lemma}% name
- {Lemma}% title
- {%
- colback=blue!5,
- colframe=blue!35!black,
- fonttitle=\bfseries,
- }% options
- {lem}% prefix
-
-\tcbuselibrary{theorems}
-\newtcbtheorem
- []% init options
- {corollary}% name
- {Corollary}% title
- {%
- colback=blue!5,
- colframe=blue!35!black,
- fonttitle=\bfseries,
- }% options
- {cor}% prefix
-
-\tcbuselibrary{theorems}
-\newtcbtheorem
- []% init options
- {assumption}% name
- {Assumption}% title
- {%
- colback=red!5,
- colframe=red!35!black,
- fonttitle=\bfseries,
- }% options
- {asm}% prefix
-
-\tcbuselibrary{theorems}
-\newtcbtheorem
- []% init options
- {protocol}% name
- {Protocol}% title
- {%
- colback=yellow!5,
- colframe=yellow!35!black,
- fonttitle=\bfseries,
- }% options
- {pro}% prefix
-
-%Header
-\pagestyle{fancy}
-\thispagestyle{empty}
-\rhead{ \textit{ }}
-
-% Define colors for the code
-\definecolor{commentgreen}{rgb}{0,0.5,0}
-\definecolor{stringred}{rgb}{0.6,0,0}
-\definecolor{keywordblue}{rgb}{0,0,0.75}
-\definecolor{backgray}{rgb}{0.95,0.95,0.95}
-
-% Define Rust language style
-\lstdefinelanguage{Rust}{
- morekeywords={
- as, break, const, continue, crate, else, enum, extern, false, fn, for, if, impl, in, let, loop, match, mod, move, mut, pub, ref, return, self, Self, static, struct, super, trait, true, type, unsafe, use, where, while, async, await, dyn
- },
- sensitive=true,
- morecomment=[l]{//}, % Line comments
- morecomment=[s]{/*}{*/}, % Block comments
- morestring=[b]" % Strings in double quotes
-}
-
-% Define the style for the listings
-\lstset{
- language=Rust,
- backgroundcolor=\color{backgray}, % Set background color
- basicstyle=\ttfamily\footnotesize, % Set font style and size
- keywordstyle=\color{keywordblue}\bfseries, % Keywords in blue and bold
- commentstyle=\color{commentgreen}\itshape, % Comments in green and italic
- stringstyle=\color{stringred}, % Strings in red
- numbers=left, % Line numbers on the left
- numberstyle=\tiny\color{gray}, % Line number style
- stepnumber=1, % Step between line numbers
- numbersep=5pt, % Space between numbers and code
- showstringspaces=false, % Don't show spaces in strings
- tabsize=4, % Tab width
- captionpos=b, % Caption position
- breaklines=true, % Break long lines
- breakatwhitespace=false, % Don't break at whitespace
- frame=single, % Frame around the code
- framerule=0.8pt, % Thickness of the frame
-}
-
-% Update your Headers here
-%\fancyhead[LO]{Running Title for Header}
-% \fancyhead[RE]{Firstauthor and Secondauthor} % Firstauthor et al. if more than 2 - must use \documentclass[twoside]{article}
-
-
-
-
-%% Title
-\title{Building Zero-Knowledge Proofs from Scratch
-%%%% Cite as
-%%%% Update your official citation here when published
-%\thanks{\textit{\underline{Citation}}:
-%\textbf{Authors. Title. Pages.... DOI:000000/11111.}}
-}
-
-\author{
- Hideaki Takahashi \\
- Columbia University \\
- ht2673@columbia.edu
-% Affiliation \\
-% Univ \\
-% City\\
-% \texttt{\{Author1, Author2\}email@email} \\
- %% examples of more authors
-% \And
-% Author3 \\
-% Affiliation \\
-% Univ \\
-% City\\
-% \texttt{email@email} \\
- %% \AND
- %% Coauthor \\
- %% Affiliation \\
- %% Address \\
- %% \texttt{email} \\
- %% \And
- %% Coauthor \\
- %% Affiliation \\
- %% Address \\
- %% \texttt{email} \\
- %% \And
- %% Coauthor \\
- %% Affiliation \\
- %% Address \\
- %% \texttt{email} \\
-}
-
-
-\begin{document}
-\maketitle
-
-
-%\begin{abstract}
-
-%\end{abstract}
-
-% keywords can be removed
-%\keywords{Code Obfuscation \and Software Security}
-
-%\begin{multicols}{2}
-
-\textbf{\textcolor{red}{THIS MANUSCRIPT IS WIP. IT IS LIKELY TO CONTAIN MANY WRONG INFORMATION}}
-
-\tableofcontents
-
-\section{Basics of Number Theory}
-
-Let $X$ be a set in this section.
-
-\subsection{Computation Rule and Properties}
-
-\begin{definition}{Binary Operation}{}
-A mapping $\circ: X \times X \rightarrow X$ is a binary operation on $X$ if for any pair of elements $(x_1, x_2)$ in $X$, $x_1 \circ x_2$ is also in $X$.
-\end{definition}
-
-Example: Addition (+) on the set of integers is a binary operation. For example, $5 + 3 = 8$, and both $5, 3, 8$ are integers, staying within the set of integers.
-
-\begin{definition}{Associative Property}{}
-A binary operation $\circ$ is associative if $(a \circ b) \circ c = a \circ (b \circ c)$ for all $a, b, c \in X$.
-\end{definition}
-
-Example: Multiplication of real numbers is associative: $(2 \times 3) \times 4 = 2 \times (3 \times 4) = 24$. In a modular context, we also have addition modulo $n$ being associative. For example, for $n = 5$, $(2 + 3) \bmod 5 + 4 \bmod 5 = 2 + (3 \bmod 5 + 4) \bmod 5 = 4$.
-
-\begin{definition}{Commutative Property}{}
-A binary operation $\circ$ is commutative if $a \circ b = b \circ a$ for all $a, b \in X$.
-\end{definition}
-
-Example: Addition modulo $n$ is also commutative. For $n = 7$, $5 + 3 \bmod 7 = 3 + 5 \bmod 7 = 1$.
-
-\paragraph{Exercise}
-
-\subsection{Semigroup, Group, Ring}
-
-\begin{definition}{Semigroup}{}
-A pair $(H, \circ)$, where $H$ is a non-empty set and $\circ$ is an associative binary operation on $H$, is called a semigroup.
-\end{definition}
-
-Example: The set of positive integers under multiplication modulo $n$ forms a semigroup. For instance, with $n = 6$, the elements $\{1, 2, 3, 4, 5\}$ under multiplication modulo 6 form a semigroup, since multiplication modulo 6 is associative.
-
-\begin{definition}{Abelian Semigroup}{}
-A semigroup whose operation is commutative is called an abelian semigroup.
-\end{definition}
-
-Example: The set of natural numbers under addition modulo $n$ forms an abelian semigroup. For $n = 7$, addition modulo 7 is both associative and commutative, so it is an abelian semigroup.
-
-\begin{definition}{Identity Element}{}
-An element $e \in H$ is an identity element of $H$ if it satisfies $e \circ a = a \circ e = a$ for any $a \in H$.
-\end{definition}
-
-Example: 0 is the identity element for addition modulo $n$. For example, $0 + a \bmod 5 = a + 0 \bmod 5 = a$. Similarly, 1 is the identity element for multiplication modulo $n$. For example, $1 \times a \bmod 7 = a \times 1 \bmod 7 = a$.
-
-\begin{definition}{Monoid}{}
-A semigroup with an identity element is called a monoid.
-\end{definition}
-
-Example: The set of non-negative integers under addition modulo $n$ forms a monoid. For $n = 5$, the set $\{0, 1, 2, 3, 4\}$ under addition modulo 5 forms a monoid with 0 as the identity element.
-
-\begin{definition}{Inverse}{}
-For an element $a \in H$, an element $b \in H$ is an inverse of $a$ if $a \circ b = b \circ a = e$, where $e$ is the identity element.
-\end{definition}
-
-Example: In modulo $n$ arithmetic (addition), the inverse of an element exists if it can cancel itself out to yield the identity element. In the set of integers modulo 7, the inverse of 3 is 5, because $3 \times 5 \bmod 7 = 1$, where 1 is the identity element for multiplication.
-
-\begin{definition}{Group}{}
-A monoid in which every element has an inverse is called a group.
-\end{definition}
-
-Example: The set of integers modulo a prime $p$ under multiplication forms a group (Can you prove it?). For instance, in $\mathbb{Z}/5\mathbb{Z}$, every non-zero element $\{1 + 5\mathbb{Z}, 2 + 5\mathbb{Z}, 3 + 5\mathbb{Z}, 4 + 5\mathbb{Z}\}$ has an inverse, making it a group.
-
-\begin{definition}{Order of a Group}{}
-The order of a group is the number of elements in the group.
-\end{definition}
-
-Example: The group of integers modulo 4 under addition has order 4, because the set of elements is $\{0, 1, 2, 3\}$.
-
-\begin{definition}{Ring}{}
-A triple $(R, +, \cdot)$ is a ring if $(R, +)$ is an abelian group, $(R, \cdot)$ is a semigroup, and the distributive property holds: $x \cdot (y + z) = (x \cdot y) + (x \cdot z)$ and $(x + y) \cdot z = (x \cdot z) + (y \cdot z)$ for all $x, y, z \in R$.
-\end{definition}
-
-Example: The set of integers with usual addition and multiplication modulo $n$ forms a ring. For example, in $\mathbb{Z}/6\mathbb{Z}$, addition and multiplication modulo 6 form a ring.
-
-\begin{lstlisting}[language=Rust, caption=Implementation of Ring]
-use std::fmt;
-use std::ops::{Add, Mul, Neg, Sub};
-
-pub trait Ring:
- Sized
- + Clone
- + PartialEq
- + fmt::Display
- + Add