diff --git a/rapport.tex b/rapport.tex
index 184776c250c0bbbe53ed1baa24433b34f2fe9267..d4c8a040c0e15b9971f331910ccacf89fbd47ce9 100644
--- a/rapport.tex
+++ b/rapport.tex
@@ -1,12 +1,14 @@
 % !TeX spellcheck = <none>
 \documentclass[french]{article}
 
+\usepackage{amsfonts}
 \usepackage{geometry}
 \usepackage[utf8]{inputenc}
 \usepackage[T1]{fontenc}
 \usepackage[french]{babel}
 \usepackage{translator}
 \usepackage{graphicx}
+\usepackage[svgnames]{xcolor}
 \usepackage{lscape}
 \usepackage{tablefootnote}
 \usepackage{hyperref}
@@ -28,10 +30,19 @@
 	\maketitle
 
 	\tableofcontents
+	
+	\listoffigures
 
 	\section{Vue globale de Polymalys-py}
 	
-
+	\section{Polymarp: Domaine abstrait}
+	
+	Le domaine abstrait est composé d'un domaine numérique relationnel, d'un \textit{mapping} de registres et d'un \textit{mapping} d'addresses.
+	
+	\subsection{Domaine numérique relationel}
+	
+	L'objectif de ce module est d'avoir une interface modulaire avec les librairies de manipulation de domaines numériques. Pour ce faire, on définit des classes abstraites dans \verb*|numerical.py|, pour lesquelles on créera des implémentation pour chaque librairie souhaitée.
+	
 	\begin{figure}[h]
 		\centering
 		\resizebox{\textwidth}{!}{
@@ -143,7 +154,7 @@
 						+ equals(other): bool
 					}
 					\umlclass[type=abstract, y=-28]{ApronNumericalWrapper}{}{
-						+ new\_var() \\
+						+ new\_var(ident: int): ApronVar \\
 						- npiv(): Set[PolyVar] \\
 						- linexpr(var, basis): List[ApronConstant] \\
 						\umlstatic{- \_get\_basis(dom1, dom2): Set[PolyVar]} \\
@@ -157,7 +168,7 @@
 					\umlinherit{ApronNumericalWrapper}{PolyNumericalWrapper}
 					
 					\umlclass[type=abstract, x=7, y=-22]{ApronPoly}{}{
-						\umlstatic{+ bottom()} \\
+						\umlstatic{+ bottom()}
 					}
 					\umlclass[x=7, y=-28]{ApronPolyWrapper}{}{}
 					
@@ -172,7 +183,57 @@
 
 			\end{tikzpicture}
 			}
-		\caption{Hiérarchie des classes de l'interface mathématique et de son implémentation utilisant APRON}
+		\caption[Schéma UML de l'interface mathématique]{Hiérarchie des classes de l'interface mathématique et de son implémentation utilisant APRON}
 	\end{figure}
 
+	\subsection{Mappings}
+	
+	Les \textit{mappings} sont définis dans \verb*|mappings.py|. Ils implémentent le \textit{mapping} de registres \( R \mapsto \mathcal{V}\) et le \textit{mapping} d'adresses \( \left(\mathcal{V} \times \mathbb{N} \times \mathcal{V} \right) \mapsto \mathcal{V} \cup \left(\mathcal{V} \times \mathcal{V} \right) \)
+	
+	\begin{figure}[h]
+		\centering
+		\resizebox{\textwidth}{!}{
+			\begin{tikzpicture}%[show background grid]
+				\umlsimpleclass[x=8, y=-10]{PolyVar}
+				
+				\begin{umlpackage}{mappings}
+					\umlclass[type=interface, x=-2]{MappingMixin}{}{
+						+ \_\_contains\_\_(other): bool
+					}
+					
+					\umlclass[x=-4, y=-4]{RegisterMapping}{}{
+						+ replace(old, new)
+					}
+					\umlclass[y=-4]{LoopMapping}{}{
+						+ replace(old, new)
+					}
+					\umlclass[x=8, y=-5]{Avatar}{}{}
+					\umlclass[x=0, y = -7]{SLP}{
+						+ base: PolyVar \\
+						+ step: int or None \\
+						+ count: PolyVar
+					}{
+						+ last(): PolyExpr
+					}
+
+					\umluniassoc[mult2=2, pos2=0.9]{Avatar}{PolyVar}
+					\umlassoc[geometry=-|-, weight=0.8, name=assoc]{SLP}{Avatar}
+					\umlassoc[geometry=-|-, weight=0.8]{SLP}{PolyVar}
+					\umlassocclass[x=4, y=-4]{AddressMapping}{assoc-1}{}{
+						+ replace(old, new)
+					}
+				
+					\umlsimpleclass[x=2.2, text=DarkGreen]{dict}
+					
+					\umlinherit{RegisterMapping}{dict}
+					\umlinherit{LoopMapping}{dict}
+					\umlinherit{AddressMapping}{dict}
+					\umlimpl{RegisterMapping}{MappingMixin}
+					\umlimpl{LoopMapping}{MappingMixin}
+					\umlimpl{AddressMapping}{MappingMixin}
+				\end{umlpackage}
+			\end{tikzpicture}
+		}
+	\caption[Schéma UML des mappings]{Hiérarchies des classes de mappings}
+	\end{figure}
 \end{document}