\begin{frame}
    \frametitle{Linéarisation}
    \begin{block}{Définition}
        Un ensemble d'événement est dit linéarisable s'il existe une séquence d'événement qui respecte les 3 propriétés suivantes :
        \begin{itemize}
            \item \textbf{Sûreté}
            \item \textbf{Régularité}
            \item \textbf{Atomicité}
        \end{itemize}
    \end{block}
\end{frame}

\begin{frame}
    \frametitle{Sûreté}
    \begin{block}{Définition}
        Toute lecture réalisée dans un même environnement non-concurrent est identique.
    \end{block}
    \begin{figure}
        \include{wconsistence_properties/linearisation_surete_hc}
    \end{figure}
\end{frame}

\begin{frame}
    \frametitle{Régularité}
    \begin{block}{Définition}
        Une lecture concurrente à une écriture peut lire soit la valeur avant l'écriture, soit la valeur après l'écriture.
    \end{block}
    \begin{figure}
        \include{wconsistence_properties/linearisation_regularite_hc}
    \end{figure}
\end{frame}

\begin{frame}
    \frametitle{Atomicité}
    \begin{block}{Définition}
        Si deux lectures ne sont pas concurrente la deuxième doit retourner une valeur au moins aussi récente que la première.
    \end{block}
    \begin{figure}
        \include{wconsistence_properties/linearisation_atomicite_hc}
    \end{figure}
\end{frame}

\begin{frame}
    \frametitle{Les classes de cohérence}
    \begin{columns}
        \column{0.5\textwidth}
        \resizebox{\columnwidth}{!}{
            \includegraphics{images/carte_criteres.png}
        }

        \column{0.5\textwidth}
        Une approche pour définir la cohérence d'un algorithme est de placer l'histoire concurrente qu'il produit dans une classe de cohérence. \\
        Nous pouvons définir 3 classes de cohérence : %citer Perrin
        \begin{itemize}
            \item La \textbf{Localité d'état} (LS)
            \item La \textbf{Validité} (V)
            \item La \textbf{Convergence} (EC)
        \end{itemize}
    \end{columns}


\end{frame}

\begin{frame}
    \frametitle{Localité d'état (LS)}

    \begin{columns}
        \column{0.4\textwidth}
        \include{wconsistence_properties/localiteetat_hc}
        \column{0.6\textwidth}
        \begin{block}{Définition}
            Pour tout processus $p$, il existe une linéarisation contenant toutes les lectures pures de $p$. \\
        \end{block}
        \begin{math}
            \begin{array}{ll}
                e.g.: & \textcolor{blue}{C_{p_1} = \{r/(0,0), r/(0,2)^w, w(2)\}}, \\
                      & \textcolor{red}{C_{p_2} = \{r/(0,0), r/(0,1)^w, w(1)\}},  \\
                      & \textcolor{blue}{r/(0,0) \bullet w(2) \bullet r/(0,2)^w}  \\
                      & \textcolor{red}{r/(0,0) \bullet w(1) \bullet r/(0,1)^w}   \\
            \end{array}
        \end{math}
    \end{columns}


    \begin{flushright}
        \begin{math}
            LS = \left\{
            \begin{array}{l}
                \mathcal{T} \rightarrow \mathcal{P}(\mathcal{H}) \\
                T \rightarrow \left\{
                \begin{tabular}{lll}
                    $H \in \mathcal{H}:$ & \multicolumn{2}{l}{$\forall p \in \mathcal{P}_H, \exists C_p \subset E_H,$}                                                       \\
                                         &                                                                             & $\hat{Q}_{T,H} \subset C_p$                         \\
                                         & $\land$                                                                     & $lin(H[p \cap C_p / C_p]) \cap L(T) \neq \emptyset$ \\
                \end{tabular}
                \right.                                          \\
            \end{array}
            \right.
        \end{math}
    \end{flushright}
\end{frame}


\begin{frame}
    \frametitle{Validité (V)}

    \begin{columns}
        \column{0.4\textwidth}
        \include{wconsistence_properties/validite_hc}
        \column{0.6\textwidth}
        \begin{block}{Définition}
            Il existe, un ensemble cofini d'événement tel que pour chacun d'entre eux une linéarisation de toutes les opérations d'écriture les justifient. \\
        \end{block}
        \begin{math}
            \begin{array}{ll}
                e.g.: & E' = \{r/(2,1)^w, r/(1,2)^w\}                        \\
                      & w(2) \bullet w(1) \bullet \textcolor{red}{r/(2,1)^w} \\
                      & w(1) \bullet w(2) \bullet \textcolor{red}{r/(1,2)^w} \\
            \end{array}
        \end{math}
    \end{columns}


    \begin{flushright}
        \begin{math}
            V = \left\{
            \begin{array}{l}
                \mathcal{T} \rightarrow \mathcal{P}(\mathcal{H}) \\
                T \rightarrow \left\{
                \begin{array}{lll}
                    H \in \mathcal{H}: & \multicolumn{2}{l}{|U_{T,H}| = \infty}                                                                       \\
                                       & \lor                                   & \exists E' \subset E_H, (|E_H \setminus E'| < \infty                \\
                                       &                                        & \land \forall e \in E', lin(H[E_H / {e}]) \cap L(T) \neq \emptyset) \\
                \end{array}
                \right.                                          \\
            \end{array}
            \right.
        \end{math}
    \end{flushright}
\end{frame}


\begin{frame}
    \frametitle{Convergence (EC)}

    \begin{columns}
        \column{0.4\textwidth}
        \include{wconsistence_properties/convergence_hc}%
        \column{0.5\textwidth}
        \begin{block}{Définition}
            Il existe un ensemble cofini d'événements dont chacun peut être justifié par une seule linéarisation. \\
        \end{block}
        \begin{math}
            \begin{array}{ll}
                e.g.: & E' = \{r/(1,2)^w, r/(1,2)^w\}                        \\
                      & w(1) \bullet w(2) \bullet \textcolor{red}{r/(1,2)^w} \\
            \end{array}
        \end{math}
    \end{columns}


    \begin{flushright}
        \begin{math}
            EC = \left\{
            \begin{array}{l}
                \mathcal{T} \rightarrow \mathcal{P}(\mathcal{H}) \\
                T \rightarrow \left\{
                \begin{array}{lll}
                    H \in \mathcal{H}: & \multicolumn{2}{l}{|U_{T,H}| = \infty}                                                                                  \\
                                       & \lor                                   & \exists E' \subset E_H, |E_H \setminus E'| < \infty                            \\
                                       &                                        & \land \displaystyle\bigcap_{e \in E'} \delta_T^{-1}(\lambda(e)) \neq \emptyset \\
                \end{array}
                \right.                                          \\
            \end{array}
            \right.
        \end{math}
    \end{flushright}
\end{frame}
