diff --git a/docs/.gitignore b/docs/.gitignore old mode 100644 new mode 100755 diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/conclusion/index.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/conclusion/index.tex new file mode 100644 index 0000000..82be84b --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/conclusion/index.tex @@ -0,0 +1,15 @@ +\begin{frame} + \frametitle{Conclusion} + + \begin{block}{What's next ?} + \begin{itemize} + \item Study and formalize some "in-prod" algoritms using weak consistency in byzantin contexts. + \item Continue the colaboration with Parsec: + \begin{itemize} + \item formalize a list of properties + \item provide a proof of concept of a colaborative editor + \end{itemize} + + \end{itemize} + \end{block} +\end{frame} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/consistency/byzantin.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/consistency/byzantin.tex new file mode 100644 index 0000000..1288908 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/consistency/byzantin.tex @@ -0,0 +1,14 @@ +\begin{frame} + \frametitle{The Byzantin context associate to the weak consistency} + + \begin{block}{Some questions about:} + \begin{itemize} + \item is the weak consistency introduce new possibility of malicious behaviours. + \item is the weak consistency reduce by design the field of milicious behaviours. + \end{itemize} + \end{block} + + The state of the art is poor about these questions and few formalized algoritms are avaible. + + +\end{frame} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/consistency/faible.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/consistency/faible.tex new file mode 100644 index 0000000..42577cf --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/consistency/faible.tex @@ -0,0 +1,122 @@ +\begin{frame} + \frametitle{The models of consistency} + + \begin{columns} + \column{0.6\textwidth} + \footnote{Perrin, \emph{Concurrence et cohérence dans les systèmes répartis}, 2017} + \resizebox{\columnwidth}{!}{ + \includegraphics{images/carte_criteres.png} + } + + \column{0.4\columnwidth} + \begin{block}{Les classes de cohérences} + 2 big family : + \begin{itemize} + \item Strong Consistency + \item Weak Consistency : + \begin{itemize} + \item Eventual Consistency (EC) + \item State Locality (SL) + \item Validity (V) + \end{itemize} + \end{itemize} + \end{block} + \end{columns} + \end{frame} + + \begin{frame} + \frametitle{Eventual Consistency (EC)} + + \begin{block}{Definition} + There exist a set of confinite operations where each one must be justify with the same state. + \end{block} + + \begin{columns} + \column{0.4\columnwidth} + \begin{tcolorbox}[colframe=green!50!black] + \input{schemas/convergence_hc_1} + \end{tcolorbox} + \column{0.5\columnwidth} + $E' = \{r/(1,2)^\omega, r/(1,2)^\omega\}$ \newline + $\delta = ((1,2), \emptyset)$ is a valid state justifying $E'$. + \end{columns} + + \begin{columns} + \column{0.4\columnwidth} + \begin{tcolorbox}[colframe=red!50!black] + \input{schemas/convergence_hc_2} + \end{tcolorbox} + \column{0.5\columnwidth} + $E' = \{r/(1,2)^\omega, r/(2,1)^\omega\}$. \newline + There exist no state able to justify $E'$ because the two infinite read are not consistent. + \end{columns} + \end{frame} + + \begin{frame} + \frametitle{State Locality} + + \begin{block}{Definition} + For all $p$, there exist one linearization who include all the read operations of $p$. According to the local order of these reads. \\ + \end{block} + + \begin{columns} + \column{0.4\columnwidth} + \begin{tcolorbox}[colframe=green!50!black] + \input{schemas/localiteetat_hc_1} + \end{tcolorbox} + \column{0.5\columnwidth} + \begin{math} + \begin{array}{l} + \textcolor{blue}{C_{p_0} = \{r/(0,0), r/(0,2)^\omega, w(2)\}}, \\ + \textcolor{red}{C_{p_1} = \{r/(0,0), r/(0,1)^\omega, w(1)\}}, \\ + \textcolor{blue}{r/(0,0) \bullet w(2) \bullet r/(0,2)^\omega} \\ + \textcolor{red}{r/(0,0) \bullet w(1) \bullet r/(0,1)^\omega} \\ + \end{array} + \end{math} + \end{columns} + + \begin{columns} + \column{0.4\columnwidth} + \begin{tcolorbox}[colframe=red!50!black] + \input{schemas/localiteetat_hc_2} + \end{tcolorbox} + \column{0.5\columnwidth} + $E'_{p_0} = \{r/(0,0), r/(2,1)^\omega\},$ \newline + $r/(0,0) \bullet w(2) \bullet w(1) \bullet r/(2,1)^\omega$ \newline + $E'_{p_1} = \{r/(0,1), r/(2,1)^\omega\}$. \newline + There exist no linearization of $p_1$ satisfying the definition of state locality + \end{columns} + \end{frame} + + \begin{frame} + \frametitle{Validity (V)} + + \begin{block}{Definition} + There exist a cofinite set of operations such as for each of them must be justified by a linearization of all the write operation. + \end{block} + + \begin{columns} + \column{0.4\columnwidth} + \begin{tcolorbox}[colframe=green!50!black] + \input{schemas/validite_hc_1} + \end{tcolorbox} + \column{0.5\columnwidth} + \begin{math} + \begin{array}{ll} + E' = & \{r/(2,1)^\omega, r/(1,2)^\omega\} \\ + & w(2) \bullet w(1) \bullet \textcolor{red}{r/(2,1)^\omega} \\ + & w(1) \bullet w(2) \bullet \textcolor{red}{r/(1,2)^\omega} \\ + \end{array} + \end{math} + \end{columns} + + \begin{columns} + \column{0.4\columnwidth} + \begin{tcolorbox}[colframe=red!50!black] + \input{schemas/validite_hc_2} + \end{tcolorbox} + \column{0.5\columnwidth} + $E' = \{r/(0,1)^\omega, r/(1,2)^\omega\}$. \\ + There is no linearization of the write operation able to justify $r/(0,1)^\omega$. + \end{columns} + \end{frame} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/consistency/forte.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/consistency/forte.tex new file mode 100644 index 0000000..00b15b6 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/consistency/forte.tex @@ -0,0 +1,45 @@ +\begin{frame} + \frametitle{Safety} + \begin{block}{Definition} + Each \textbf{read} operation made in the same \textbf{non-competitor} context provide the same result. + \end{block} + \begin{figure} + \input{schemas/linearisation_surete_hc} + \end{figure} + \end{frame} + + \begin{frame} + \frametitle{Regularity} + \begin{block}{Definition} + An \textbf{reading operation concurrent with a writing operation} must provide the value \textbf{before or after the write}. + \end{block} + \begin{figure} + \input{schemas/linearisation_regularite_hc} + \end{figure} + \end{frame} + + \begin{frame} + \frametitle{Atomicity} + \begin{block}{Definition} + If \textbf{two reading are non-competitor}, the second one must provide a value \textbf{at least as recent as} the previous one. + \end{block} + \begin{figure} + \input{schemas/linearisation_atomicite_hc} + \end{figure} + \end{frame} + + \begin{frame} + \frametitle{Atomic Consistency ($C_\top$)} + + \begin{block}{Définition} + Atomic consistency is the stronger consistency class. + \begin{itemize} + \item Provide an awful interactivity. + \item Need a strong synchronization between each operation. + \begin{itemize} + \item Each read or write operation lock the others and need to wait the realease from the previous one. + \end{itemize} + \item He's used as a reference for the other consistency class. + \end{itemize} + \end{block} + \end{frame} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/consistency/index.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/consistency/index.tex new file mode 100644 index 0000000..8bc1bda --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/consistency/index.tex @@ -0,0 +1,8 @@ +\subsection{Strong consistency} +\include{consistency/forte.tex} + +\subsection{The compromises of the strong consistency} +\include{consistency/faible.tex} + +\subsection{In a malicious context ?} +\include{consistency/byzantin.tex} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/distr_sys/bases.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/distr_sys/bases.tex new file mode 100644 index 0000000..5bad156 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/distr_sys/bases.tex @@ -0,0 +1,32 @@ +\begin{frame} + \frametitle{A distributed system} + + \begin{block}{Definition} + A distributed system is a group of \textbf{actors} able to comunicate \textbf{each-other} working together to \textbf{complete a common task}. + \end{block} + + % Schéma d'un système distribué + + The system we consider on this presentation is a \textbf{asynchronous message-passing} system. + +\end{frame} + +\begin{frame} + \frametitle{A distributed system is a living system} + + A distributed system changes over time. + + There's some way to study these changes : + \begin{itemize} + \item focus on the \textbf{churn} (node addition and removal). + \item focus on the \textbf{messages}. + \item focus on the \textbf{connectedness}. + \item focus on the \textbf{states}. $\Leftarrow$ + \item probably more... ? + \end{itemize} + + The study of the state changes is also called the study of \textbf{consistency}. + + \textbf{A small exemple}: A peer-to-peer discussion + +\end{frame} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/distr_sys/index.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/distr_sys/index.tex new file mode 100644 index 0000000..ffbbf9f --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/distr_sys/index.tex @@ -0,0 +1,2 @@ +\subsection{Définition} +\include{distr_sys/bases} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/images/carte_criteres.png b/docs/presentations/LIS/DALGO_6_juillet_2023/images/carte_criteres.png new file mode 100755 index 0000000..cd71ddc Binary files /dev/null and b/docs/presentations/LIS/DALGO_6_juillet_2023/images/carte_criteres.png differ diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/intro/index.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/intro/index.tex new file mode 100644 index 0000000..8debf0e --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/intro/index.tex @@ -0,0 +1,5 @@ +\subsection{Introduction} +\include{intro/presentation.tex} + +\subsection{My internship} +\include{intro/suite.tex} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/intro/presentation.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/intro/presentation.tex new file mode 100644 index 0000000..9399974 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/intro/presentation.tex @@ -0,0 +1,16 @@ +\begin{frame} + \frametitle{Présentation} + + \begin{itemize} + \item Amaury JOLY + \item Master Informatique + \begin{itemize} + \item Option Fiabilité Sécurité Informatique (FSI) + \end{itemize} + + \end{itemize} + + + + +\end{frame} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/intro/suite.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/intro/suite.tex new file mode 100644 index 0000000..29746d6 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/intro/suite.tex @@ -0,0 +1,18 @@ +\begin{frame} + \frametitle{My Internship} + + \begin{itemize} + \item Begin in april + \item Collaboration between Parsec and LIS-LAB + \begin{itemize} + \item Parsec is a for-profit organization working on an open-source software named Parsec + \item It's a software architecture to file sharing with E2EE in a zero-trust approach + \end{itemize} + \item Parsec want to add Collaborative Editing on their products: + \begin{itemize} + \item With a zero-trust approach (so probably decentralized) + \item With a high avaibility and low latency approach + \end{itemize} + \item Subject is \textit{Weak Consistency Byzantin Fault Tolerent} + \end{itemize} +\end{frame} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/main.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/main.tex new file mode 100755 index 0000000..e8df458 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/main.tex @@ -0,0 +1,60 @@ +\documentclass{beamer} +\usetheme{Boadilla} +\usecolortheme{orchid} + +\usepackage[T1]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage[french]{babel} +\usepackage{stackengine} + +\addtobeamertemplate{navigation symbols}{}{% + \usebeamerfont{footline}% + \usebeamercolor[fg]{footline}% + \hspace{1em}% + \insertframenumber/\inserttotalframenumber +} +\usepackage{ulem} +\usepackage{tkz-tab} +\setbeamertemplate{blocks}[rounded]% +[shadow=true] +\AtBeginSection{% + \begin{frame} + \tableofcontents[sections=\value{section}] + \end{frame} +} + +\usepackage{tikz} +\usetikzlibrary{positioning} +\usetikzlibrary{calc} +\usetikzlibrary{arrows.meta} + +\usepackage{tcolorbox} + +\title[bwconsistency]{Étude de la cohérence dans les systèmes distribués} +\subtitle{Journée DALGO} +\author[JOLY Amaury]{JOLY Amaury\\ \textbf{Encadrants :} GODARD Emmanuel, TRAVERS Corentin } +% \\[2ex] \includegraphics[scale=0.1]{./img/amu.png} +\institute[LIS, Scille]{LIS-LAB, Scille} +\date{6 juillet 2023} + +\begin{document} + +\maketitle + +\begin{frame}{Table des matières} + \tableofcontents +\end{frame} + +\section{Introduction} +\input{intro/index.tex} + +\section{Distributed systems and consistency} +\input{distr_sys/index.tex} + +\section{The compromises of consistency} +\input{consistency/index.tex} + +\section{What's next ?} +\input{conclusion/index.tex} + +\end{document} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/ccv_hc_1.png b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/ccv_hc_1.png new file mode 100755 index 0000000..a115a99 Binary files /dev/null and b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/ccv_hc_1.png differ diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/convergence_hc_1.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/convergence_hc_1.tex new file mode 100755 index 0000000..9217952 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/convergence_hc_1.tex @@ -0,0 +1,41 @@ +\resizebox{\columnwidth}{!}{ + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode] (11) {}; + \node[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$w(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(a)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$r/(0,1)$}; + \node[roundnode] (14) [right=35pt of 13] {}; + \node[above] at (14.north) {$r/(1,2)^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$w(2)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\emptyset$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$r/(0,2)$}; + \node[roundnode] (24) [right=35pt of 23] {}; + \node[below] at (24.south) {$r/(1,2)^\omega$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + \draw[arrow] (23) -- (24); + + \draw (24) -- (14); + + \draw[dashed] ($(14)!0.5!(13) + (0,1)$) -- ++(0, -2.9); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/convergence_hc_2.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/convergence_hc_2.tex new file mode 100755 index 0000000..bd97baa --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/convergence_hc_2.tex @@ -0,0 +1,41 @@ +\resizebox{\columnwidth}{!}{ + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode] (11) {}; + \node[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$w(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$I(a)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$r/(0,1)$}; + \node[roundnode] (14) [right=35pt of 13] {}; + \node[above] at (14.north) {$r/(1,2)^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + \draw[arrow] (13) -- (14); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$w(2)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$R/\emptyset$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$r/(0,2)$}; + \node[roundnode] (24) [right=35pt of 23] {}; + \node[below] at (24.south) {$r/(2,1)^\omega$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + \draw[arrow] (23) -- (24); + + \draw (24) -- (14); + + \draw[dashed] ($(14)!0.5!(13) + (0,1)$) -- ++(0, -2.9); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/linearisation_atomicite_hc.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/linearisation_atomicite_hc.tex new file mode 100755 index 0000000..72e4f57 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/linearisation_atomicite_hc.tex @@ -0,0 +1,26 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt}, + invisible/.style={draw=none, fill=none}, + ] + + \node[invisible] (10) {}; + \node[roundedrectangle, minimum width=150pt] (11) [right=100pt of 10] {$w_x(1)$}; + \node[invisible] (12) [right=100pt of 11] {}; + + \node[invisible] (20) [below=15pt of 10] {}; + \node[roundedrectangle, minimum width=50pt] (21) [right=25pt of 20] {\textcolor{blue}{$r/(0)$}}; + \node[roundedrectangle, minimum width=50pt] (22) [right=75pt of 21] {\textcolor{blue}{$r/(0)$}}; + \node[roundedrectangle, minimum width=50pt] (23) [right=75pt of 22] {\textcolor{red}{$r/(1)$}}; + \node[invisible] (24) [below=15pt of 12] {}; + + \node[invisible] (30) [below=15pt of 20] {}; + \node[roundedrectangle, minimum width=50pt] (31) [right=125pt of 30] {\textcolor{red}{$r/(1)$}}; + \node[roundedrectangle, minimum width=50pt] (32) [right=40pt of 31] {\textcolor{red}{$r/(1)$}}; + \node[invisible] (33) [below=15pt of 24] {}; + + \draw (10) -- (11) -- (12); + \draw (20) -- (21) -- (22) -- (23) -- (24); + \draw (30) -- (31) -- (32) -- (33); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/linearisation_regularite_hc.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/linearisation_regularite_hc.tex new file mode 100755 index 0000000..281227c --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/linearisation_regularite_hc.tex @@ -0,0 +1,26 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt}, + invisible/.style={draw=none, fill=none}, + ] + + \node[invisible] (10) {}; + \node[roundedrectangle, minimum width=150pt] (11) [right=100pt of 10] {$w_x(1)$}; + \node[invisible] (12) [right=100pt of 11] {}; + + \node[invisible] (20) [below=15pt of 10] {}; + \node[roundedrectangle, minimum width=50pt] (21) [right=25pt of 20] {\textcolor{blue}{$r/(0)$}}; + \node[roundedrectangle, minimum width=50pt] (22) [right=75pt of 21] {\textcolor{blue}{$r/(0)$}}; + \node[roundedrectangle, minimum width=50pt] (23) [right=75pt of 22] {\textcolor{red}{$r/(1)$}}; + \node[invisible] (24) [below=15pt of 12] {}; + + \node[invisible] (30) [below=15pt of 20] {}; + \node[roundedrectangle, minimum width=50pt] (31) [right=125pt of 30] {\textcolor{red}{$r/(1)$}}; + \node[roundedrectangle, minimum width=50pt] (32) [right=40pt of 31] {\textcolor{blue}{$r/(0)$}}; + \node[invisible] (33) [below=15pt of 24] {}; + + \draw (10) -- (11) -- (12); + \draw (20) -- (21) -- (22) -- (23) -- (24); + \draw (30) -- (31) -- (32) -- (33); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/linearisation_surete_hc.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/linearisation_surete_hc.tex new file mode 100755 index 0000000..fde5f3a --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/linearisation_surete_hc.tex @@ -0,0 +1,26 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundedrectangle/.style={draw, rounded corners, rectangle, minimum height=10pt, minimum width=20pt}, + invisible/.style={draw=none, fill=none}, + ] + + \node[invisible] (10) {}; + \node[roundedrectangle, minimum width=150pt] (11) [right=100pt of 10] {$w_x(1)$}; + \node[invisible] (12) [right=100pt of 11] {}; + + \node[invisible] (20) [below=15pt of 10] {}; + \node[roundedrectangle, minimum width=50pt] (21) [right=25pt of 20] {\textcolor{blue}{$r/(0)$}}; + \node[roundedrectangle, minimum width=50pt] (22) [right=75pt of 21] {\textcolor{blue}{$r/(0)$}}; + \node[roundedrectangle, minimum width=50pt] (23) [right=75pt of 22] {\textcolor{red}{$r/(1)$}}; + \node[invisible] (24) [below=15pt of 12] {}; + + \node[invisible] (30) [below=15pt of 20] {}; + \node[roundedrectangle, minimum width=50pt] (31) [right=125pt of 30] {\textcolor{red!50!blue}{$r/(27)$}}; + \node[roundedrectangle, minimum width=50pt] (32) [right=40pt of 31] {\textcolor{red}{$r/(1)$}}; + \node[invisible] (33) [below=15pt of 24] {}; + + \draw (10) -- (11) -- (12); + \draw (20) -- (21) -- (22) -- (23) -- (24); + \draw (30) -- (31) -- (32) -- (33); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/localiteetat_hc_1.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/localiteetat_hc_1.tex new file mode 100755 index 0000000..f61f58c --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/localiteetat_hc_1.tex @@ -0,0 +1,34 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode, draw=red, fill=red] (11) {}; + \node[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$w(1)$}; + \node[roundnode, draw=blue, fill=blue] (12) [right=of 11] {}; + \node[above] at (12.north) {$r/(0,0)$}; + \node[roundnode, draw=blue, fill=blue] (13) [right=of 12] {}; + \node[above] at (13.north) {$r/(0,2)^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode, draw=blue, fill=blue] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$w(2)$}; + \node[roundnode, draw=red, fill=red] (22) [right=of 21] {}; + \node[below] at (22.south) {$r/(0,0)$}; + \node[roundnode, draw=red, fill=red] (23) [right=of 22] {}; + \node[below] at (23.south) {$r/(0,1)^\omega$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + + \draw[message] (11) -- ($(22)!0.5!(23)$); + \draw[message] (21) -- ($(12)!0.5!(13)$); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/localiteetat_hc_2.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/localiteetat_hc_2.tex new file mode 100755 index 0000000..3998248 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/localiteetat_hc_2.tex @@ -0,0 +1,32 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode] (11) {}; + \node[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$w(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$r/(0,0)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$r/(0,2)^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$w(2)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$r/(0,1)$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$r/(2,1)^\omega$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/validite_hc_1.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/validite_hc_1.tex new file mode 100755 index 0000000..1875a6b --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/validite_hc_1.tex @@ -0,0 +1,31 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode] (11) {}; + \node[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$w(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$r/(0,1)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$r/(2,1)^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode] (21) [below=10pt of 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$w(2)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$r/(0,2)$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$r/(1,2)^\omega$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/validite_hc_2.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/validite_hc_2.tex new file mode 100755 index 0000000..4aaec99 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/validite_hc_2.tex @@ -0,0 +1,31 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode] (11) {}; + \node[left] at (11.west) {$p_0$}; + \node[above] at (11.north) {$w(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$r/(0,1)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$r/(0,1)^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode] (21) [below=10ptof 11] {}; + \node[left] at (21.west) {$p_1$}; + \node[below] at (21.south) {$w(2)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[below] at (22.south) {$r/(0,2)$}; + \node[roundnode] (23) [right=of 22] {}; + \node[below] at (23.south) {$r/(1,2)^\omega$}; + + \draw[arrow] (21) -- (22); + \draw[arrow] (22) -- (23); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/wcc_hc_1.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/wcc_hc_1.tex new file mode 100755 index 0000000..839acb3 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/wcc_hc_1.tex @@ -0,0 +1,42 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode, color=red] (11) {}; + \node[above] at (11.north) {$w(1)$}; + \node[roundnode, color=red!50] (12) [right=of 11] {}; + \node[above] at (12.north) {$r/(0,1)$}; + \node[roundnode, color=red!25] (13) [right=of 12] {}; + \node[above] at (13.north) {$r/(3,2)^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode, color=green!75!black] (21) [below=20pt of 11] {}; + \node[left] at (21.west) {$r/(3,1)$}; + \node[roundnode, color=green!95!black] (22) [right=of 21] {}; + \node[right] at (22.east) {$w(2)$}; + + \draw[arrow] (21) -- (22); + + \node[roundnode, color=blue] (31) [below=20pt of 21] {}; + \node[below] at (31.south) {$w(3)$}; + \node[roundnode, color=blue!50] (32) [right=of 31] {}; + \node[below] at (32.south) {$r/(3,1)$}; + \node[roundnode, color=blue!25] (33) [right=of 32] {}; + \node[below] at (33.south) {$r/(3,2)^\omega$}; + + \draw[arrow] (31) -- (32); + \draw[arrow] (32) -- (33); + + \draw[message] (11) -- (21); + \draw[message] (31) -- (21); + \draw[message] (21) -- (32); + \draw[message] (22) -- (13); + \draw[message] (22) -- (33); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/wcc_hc_2.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/wcc_hc_2.tex new file mode 100755 index 0000000..1651ec2 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/wcc_hc_2.tex @@ -0,0 +1,29 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode] (11) {}; + \node[above] at (11.north) {$w(1)$}; + \node[roundnode] (12) [right=of 11] {}; + \node[above] at (12.north) {$r/(2,1)$}; + \node[roundnode] (13) [right=of 12] {}; + \node[above] at (13.north) {$r/(2,1)^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode] (21) [below=20pt of 11] {}; + \node[left] at (21.west) {$r/(0,1)$}; + \node[roundnode] (22) [right=of 21] {}; + \node[right] at (22.east) {$w(2)$}; + + \draw[arrow] (21) -- (22); + + \draw[message] (11) -- (21); + \draw[message] (22) -- (12); + \end{tikzpicture} +} \ No newline at end of file diff --git a/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/wcc_hc_3.tex b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/wcc_hc_3.tex new file mode 100755 index 0000000..6b109f9 --- /dev/null +++ b/docs/presentations/LIS/DALGO_6_juillet_2023/schemas/wcc_hc_3.tex @@ -0,0 +1,41 @@ +\resizebox{\columnwidth}{!}{% + \begin{tikzpicture}[ + roundnode/.style={circle, draw=black, fill=black, very thick, minimum size=1pt,}, + ignorednode/.style={circle, draw=black!20, fill=black!20, very thick, minimum size=1pt,}, + arrow/.style={|->, thick,}, + message/.style={->, blue!50, dashed, -{Circle[length=4pt,]}}, + ] + + \node[roundnode, color=red] (11) {}; + \node[above] at (11.north) {$w(1)$}; + \node[roundnode, color=red!50] (12) [right=of 11] {}; + \node[above] at (12.north) {$r/(3,1)$}; + \node[roundnode, color=red!25] (13) [right=of 12] {}; + \node[above] at (13.north) {$r/(1,2)^\omega$}; + + \draw[arrow] (11) -- (12); + \draw[arrow] (12) -- (13); + + \node[roundnode, color=green!75!black] (21) [below=20pt of 11] {}; + \node[left] at (21.west) {$r/(0,0)$}; + \node[roundnode, color=green!95!black] (22) [right=of 21] {}; + \node[right] at (22.east) {$w(2)$}; + + \draw[arrow] (21) -- (22); + + \node[roundnode, color=blue] (31) [below=20pt of 21] {}; + \node[below] at (31.south) {$w(3)$}; + \node[roundnode, color=blue!50] (32) [right=of 31] {}; + \node[below] at (32.south) {$r/(1,3)$}; + \node[roundnode, color=blue!25] (33) [right=of 32] {}; + \node[below] at (33.south) {$r/(3,2)^\omega$}; + + \draw[arrow] (31) -- (32); + \draw[arrow] (32) -- (33); + + \draw[message] (11) -- (31); + \draw[message] (31) -- (12); + \draw[message] (22) -- (13); + \draw[message] (22) -- (33); + \end{tikzpicture} +} \ No newline at end of file