sync nextclodu

This commit is contained in:
Amaury JOLY
2025-05-16 13:27:55 +02:00
commit 71296deb95
69 changed files with 5815 additions and 0 deletions

View File

@ -0,0 +1,212 @@
## Allow List over PC
### Modele
**Base de Mathieu**
Soit $\\Pi$ l'ensemble des processus $p_1, ... p_N$
$\\Pi_M \\subseteq \\Pi$ les processus autorisés à $APPEND(x)$
$\\Pi_V \\subseteq \\Pi$ les processus autorisés à $PROVE(x)$
Chaque processus est séquentiel mais le système est asynchrone (le $\\Delta$ de vitesse d'horloge relative est inconnue par les processus) Le système est crash prône
Tous les processus ont un identifiant et les IDs sont connues de tous les processus.
**Spécificité Message-Passing**
2 opérations possibles:
- $send(O, p_i)$
- $recv(O, p_i)$
$H$ l'ensemble des séquences d'opérations $H|p_i$ les opérations relatives à $p_i$ $H|x$ l'ensemble des séquences d'opérations relatives à l'objet $x$ Les processus peuvent être byzantin en ne suivant pas le protocole définit. On admet que la transmission des message respecte les propriétés de reliable broadcast. C'est a dire que tous les messages envoyés sont reçu par tous. Et que pour deux message envoyé dans un ordre précis par un même processus ils seront reçu dans ce même ordre par tous les autres processus.
### Problematique
$O$ ensemble des types d'opérations :
- $APPEND(x)$
- $PROVE(x)$
- $READ()$
On veut remplir les propriétés suivantes :
- Termination: toutes les opérations terminent par un "return"
- APPEND validity: Un APPEND(x) est valide ssi $\\forall p_i$ t.q. $send(APPEND(x)) \\in H| p_i$. $p_i \\in \\Pi_M \\subseteq \\Pi$
- PROVE validity: Un PROVE(x) est valide ssi $\\forall p_i$ t.q. $send(PROVE(x)) \\in H| p_i$. $p_i \\in \\Pi_V \\subseteq \\Pi$ ET un $APPEND(x)$ apparait dans $\\Pi_V$
- Progress: si un $APPPEND(x)$ est valide alors il exist $\\forall p_i$ un point dans $H|p_i$ tel que tous les $PROVE(x)$ sont valident.
- READ validity: $\\forall p_i$ l'opération $READ()$ doit retourner toutes les opérations $PROVE(...) \\in H|p_i$
### Algo
```
appends a set of objetcs
proves a set of tuples of (objetc, process id)
recv(APPEND(x), p_j)
if p_j \in \Pi_M
appends += x
return
recv(PROVE(x), p_j)
if p_j \in \Pi_V
if x \in appends
proves += (x, p_j)
return
APPEND()
if p_i \in \Pi_V
appends += x
send(APPEND(x), p_i)
return
PROVE(x)
if p_i \in \Pi_M
if x \in appends
proves += (x, p_i)
send(PROVE(x), p_i)
return
READ()
return proves
```
### Preuve
**Termination**
Toutes les fonctions sont séquentiels et synchrones. Il n'y a aucune boucle, les fonctions terminent forcements.
**APPEND Validity**
La condition `if p_j \in \Pi_M` dans la fonction APPEND(x) garantit qu'aucun processus légitime ne peut ajouter délément dans la whitelist si il n'est pas manageur. Cette même condition dans recv(APPEND(x)) garantit qu'aucun processus légitime n'acceptera d'ajout d'élément soumis par un processus non manageur. Cette garantit repose sur le fait que les identifiants sont infalsifiables.
**PROVE Validity**
La condition `if p_j \in \Pi_V` dans la fonction PROVE(x) garantit qu'aucun processus légitime ne peut ajouter délément dans la whitelist si il n'est pas validateur. Cette même condition dans recv(PROVE(x)) garantit qu'aucun processus légitime n'acceptera d'ajout d'élément soumis par un processus non validateur. Cette garantit repose sur le fait que les identifiants sont infalsifiables.
De même la condition `if x \in appends` dans PROVE(x) assure que le processus courant a déjà reçu ou émis lui même un APPEND(x), puisque la seule manière d'ajouter un élément a lensemble `appends` est via les fonctions recv(APPEND(x)) et APPEND(x) une fois que les conditions de APPEND Validity sont respectés. De la même manière cette condition dans recv(PROVE(x)) assure qu'une requête PROVE(x) envoyé par un validateur malveillant ne faisant pas suite à un APPEND(x) ne soit pas considéré par les processus légitimes.
**PROGRESS**
Étant donné que tout message est eventually reçu. Tout APPEND(x) valide sera envoyé via la fonction `send` et sera reçu dans un temps $\\delta t$ par tous les processus. Avec $\\delta t$ étant le temps de transmission le plus long entre deux processus. Cette borne supérieur $\\delta t$ peut etre définit dans un système synchrone en admettant une borne maximal pour la transmission la plus lente entre deux `p`. Assurant ainsi que chaque APPEND(x) valide sera considéré par l'ensemble du système à $t + \\delta t$.
Cependant dans un système asynchrone ce $\\delta t$ est par définition non définit, rendent la propriété de PROGRESS insatisfaisable.
**READ Validity**
Pour ce point il convient de démontrer que tout tuple dans proves se trouve bien dans $\\forall PROVE(..) \\in H|p_i$ tel que $p_i$ le processus invoquant le READ. L'ajout a l'ensemble proves dépend des fonctions PROVE() et recv(PROVE()).
Dans ces deux fonctions on assure déjà la validité des PROVE pour $p_i$. Tout PROVE valide reçu ou émis par p_i est donc ajouté dans proves, ce qui correspond bien aux opérations proves de $H|p_i$.
## Deny List over PC
### Modele
__Base de Mathieu__
Soit $\\Pi$ l'ensemble des processus $p_1, ... p_N$
$\\Pi_M \\subseteq \\Pi$ les processus autorisés à $APPEND(x)$
$\\Pi_V \\subseteq \\Pi$ les processus autorisés à $PROVE(x)$
Chaque processus est séquentiel mais le système est asynchrone (le $\\Delta$ de vitesse d'horloge relative est inconnue par les processus) Le système est crash prône
Tous les processus ont un identifiant et les ids sont connues de tous les processus.
**Spécificité Message-Passing**
2 opérations possibles:
- $send(O, p_i)$
- $recv(O, p_i)$
$H$ l'ensemble des séquences d'opérations $H|p_i$ les opérations relatives à $p_i$ $H|x$ l'ensemble des séquences d'opérations relatives à l'objet $x$ Les processus peuvent être byzantin en ne suivant pas le protocole définit. On admet que la transmission des message respecte les propriétés de reliable broadcast. C'est a dire que tous les messages envoyés sont reçu par tous. Et que pour deux message envoyé dans un ordre précis par un même processus ils seront reçu dans ce même ordre par tous les autres processus.
### Problématique
$O$ ensemble des types d'opérations :
- $APPEND(x)$
- $PROVE(x)$
- $READ()$
On veut remplir les propriétés suivantes :
- Termination: toutes les opérations terminent par un "return"
- APPEND validity: Un APPEND(x) est valide ssi $\\forall p_i$ t.q. $send(APPEND(x)) \\in H| p_i$. $p_i \\in \\Pi_M \\subseteq \\Pi$
- PROVE validity: Un PROVE(x) est __invalid__ ssi $\\forall p_i$ t.q. $send(PROVE(x)) \\in H| p_i$. $p_i \\in \\Pi_V \\subseteq \\Pi$ ET un $APPEND(x)$ apparait dans $\\Pi_V$
- PROVE Anti-Flickering: Si une opération PROVE(x) invalide est soumise ou recu par un processus alors toutes les opérations PROVE(x) futur seront invalides
- READ validity: $\\forall p_i$ l'opération $READ()$ doit retourner toutes les opérations $PROVE(...) \\in H|p_i$
### Algo
```
appends a set of objetcs
proves a set of tuples of (objetc, process id)
recv(APPEND(x), p_j)
if p_j \in \Pi_M
appends += x
return
recv(PROVE(x), p_j)
if p_j \in \Pi_V
if x \neg\in appends
proves += (x, p_j)
return
APPEND()
if p_i \in \Pi_V
appends += x
send(APPEND(x), p_i)
return
PROVE(x)
if p_i \in \Pi_M
if x \neg\in appends
proves += (x, p_i)
send(PROVE(x), p_i)
return
READ()
return proves
```
### Preuve
**Termination**
Toutes les fonctions sont séquentiels et synchrones. Il n'y a aucune boucle, les fonctions terminent forcements.
**APPEND Validity**
La condition `if p_j \in \Pi_M` dans la fonction APPEND(x) garantit qu'aucun processus légitime ne peut ajouter délément dans la whitelist si il n'est pas manageur. Cette même condition dans recv(APPEND(x)) garantit qu'aucun processus légitime n'acceptera d'ajout d'élément soumis par un processus non manageur. Cette garantit repose sur le fait que les identifiants sont infalsifiables.
**PROVE Validity**
La condition `if p_j \in \Pi_V` dans la fonction PROVE(x) garantit qu'aucun processus légitime ne peut ajouter délément dans la whitelist si il n'est pas validateur. Cette même condition dans recv(PROVE(x)) garantit qu'aucun processus légitime n'acceptera d'ajout d'élément soumis par un processus non validateur. Cette garantit repose sur le fait que les identifiants sont infalsifiables.
De même la condition `if x \neg\in appends` dans PROVE(x) assure que le processus courant n'a pas déjà reçu ou émis lui même un APPEND(x), puisque la seule manière d'ajouter un élément a lensemble `appends` est via les fonctions recv(APPEND(x)) et APPEND(x) une fois que les conditions de APPEND Validity sont respectés.
De la même manière cette condition dans recv(PROVE(x)) assure qu'une requête PROVE(x) envoyé par un validateur malveillant faisant suite à un APPEND(x) ne soit pas considéré par les processus legéitimes.
**ANTI-FLICKERING**
Étant donné que tout message est eventually reçu. Tout APPEND(x) valide sera envoyé via la fonction `send` et sera reçu dans un temps $\\delta t$ par tous les processus. Avec $\\delta t$ étant le temps de transmission le plus long entre deux processus. Cette borne supérieur $\\delta t$ peut etre définit dans un système synchrone en admettant une borne maximal pour la transmission la plus lente entre deux `p`. Assurant ainsi que chaque APPEND(x) valide sera considéré par l'ensemble du système à $t + \\delta t$.
Cependant dans un système asynchrone ce $\\delta t$ est par définition non définit, rendent la propriété d'anti-flickring insatisfaisable.
__READ Validity__
Pour ce point il convient de démontrer que tout tuple dans proves se trouve bien dans l'ensemble $E$, tel que $\\forall e \\in E$, $e = PROVE(x)$ et tel que $H'|p_i$ l'ensemble des opérations reçu et émise avant l'opération $e$, alors $\\nexists e' \\in H'|p_i$ t.q. $e' = APPEND(x)$ avec $p_i$ le processus invoquant le READ.
L'ajout a l'ensemble proves dépend des fonctions PROVE() et recv(PROVE()). Dans ces deux fonctions on assure déjà la validité des PROVE pour $p_i$. Tout PROVE valide reçu ou émis par p_i est donc ajouté dans proves, ce qui correspond bien aux opérations proves de $H|p_i$.
## Discussion
Il est impossible dimplémenter une AllowList ou DenyList dans un système asynchrone, ce qui conditionne déjà notre model sur ce point. Les propriétés de PROGRESS et d'ANTIFLICKERING étant directement lié à ce point.
Les points facilitant la résolution de notre problème sont d'une part la présence du ReliableBroadcast et d'autre part d'un identifiant infalsifiable. Les deux points étant lié puisque nous pouvons admettre que le reliable broadcast peut aussi s'occuper de l'authentification des messages, et de leur non répudiabilité.
Un axe d'amélioration est donc d'affaiblir le reliable broadcast pour ça il faut définir les propriétés essentiels a lexécution de notre algorithme.
### RB
- Non répudiabilité (une fois que le message ets envoyé il est impossible pour un processus de le nier)
- Tout message envoyé est recu par tout le monde(eventual delivery)
- Immutabilité du message une fois qu'il est émis

View File

@ -0,0 +1,60 @@
We consider a set of processes communicating asynchronously over reliable point-to-point channels. Each process maintains the following shared variables:
\begin{itemize}
\item \textbf{received}: the set of messages received (but not yet delivered).
\item \textbf{delivered}: the set of messages that have been received, ordered, and delivered.
\item \textbf{prop[$r$][$j$]}: the proposal set of process $j$ at round $r$. It contains the set of messages that process $j$ claims to have received but not yet delivered at round $r$, concatenated with its newly broadcast message.
\item \textbf{proves}: the current content of the \texttt{DenyList} registry, accessible via the operation \texttt{READ()}. It returns a list of tuples $(j, \texttt{PROVE}(r))$, each indicating that process $j$ has issued a valid \texttt{PROVE} for round $r$.
\item \textbf{winner$^r$}: the set of processes that have issued a valid \texttt{PROVE} operation for round $r$.
\item \textbf{RB-cast}: a reliable broadcast primitive that satisfies the properties defined in Section~1.1.2.
\item \textbf{APPEND$(r)$}, \textbf{PROVE$(r)$}: operations that respectively insert (APPEND) and attest (PROVE) the participation of a process in round $r$ in the DenyList registry.
\item \textbf{READ()}: retrieves the current local view of valid operations (APPENDs and PROVEs) from the DenyList.
\item \textbf{ordered$(S)$}: returns a deterministic total order over a set $S$ of messages (e.g., via hash or lexicographic order).
\end{itemize}
\resetalgline
\begin{algorithm}
\vspace{1em}
\textbf{RB-received$(m, S, r_0, j_0)$}
\begin{algorithmic}[1]
\State \nextalgline $\textit{received} \gets \textit{received} \cup \{m\}$
\State \nextalgline $\textit{prop}[r_0][j_0] \gets S$
\end{algorithmic}
\vspace{1em}
\textbf{AB-broadcast$(m, j_0)$}
\begin{algorithmic}[1]
\State \nextalgline $\textit{proves} \gets \texttt{READ}()$
\State \nextalgline $r_0 \gets \max\{r : \exists j,\ (j, \texttt{PROVE}(r)) \in \textit{proves}\} + 1$
\State \nextalgline $\texttt{RB-cast}(m, (\textit{received} \setminus \textit{delivered}) \cup \{m\}, r_0, j_0)$
\State \nextalgline \texttt{PROVE}$(r_0)$
\State \nextalgline \texttt{APPEND}$(r_0)$
\Repeat
\State \nextalgline $\textit{proves} \gets \texttt{READ}()$
\State \nextalgline $r_1 \gets \max\{r : \exists j,\ (j, \texttt{PROVE}(r)) \in \textit{proves}\} - 1$
\State \nextalgline $\textit{winner}^{r_1} \gets \{j : (j, \texttt{PROVE}(r_1)) \in \textit{proves}\}$
\State \nextalgline \textbf{wait} $\forall j \in \textit{winner}^{r_1},\ \textit{prop}[r_1][j] \neq \bot$
\Until{\nextalgline $\exists r_2,\ \exists j_2 \in \textit{winner}^{r_2},\ m \in \textit{prop}[r_2][j_2]$} \nextalgline
\end{algorithmic}
\vspace{1em}
\textbf{AB-listen}
\begin{algorithmic}[1]
\While{true}
\State \nextalgline $\textit{proves} \gets \texttt{READ}()$
\State \nextalgline $r_1 \gets \max\{r : \exists j,\ (j, \texttt{PROVE}(r)) \in \textit{proves}\} - 1$
\For{$r_2 \in [r_0, \dots, r_1]$} \nextalgline
\State \nextalgline \texttt{APPEND}$(r_2)$
\State \nextalgline $\textit{proves} \gets \texttt{READ}()$
\State \nextalgline $\textit{winner}^{r_2} \gets \{j : (i, \texttt{PROVE}(r_2)) \in \textit{proves}\}$
\State \nextalgline \textbf{wait} $\forall j \in \textit{winner}^{r_2},\ \textit{prop}[r_2][j] \neq \bot$
\State \nextalgline $M^{r_2} \gets \bigcup_{j \in \textit{winner}^{r_2}} \textit{prop}[r_2][j]$
\ForAll{$m \in \texttt{ordered}(M^{r_2})$} \nextalgline
\State \nextalgline $\textit{delivered} \gets \textit{delivered} \cup \{m\}$
\State \nextalgline \texttt{AB-deliver}$(m)$
\EndFor
\EndFor
\EndWhile
\end{algorithmic}
\end{algorithm}

View File

@ -0,0 +1,77 @@
\subsubsection{Model Properties}
The system consists of \textit{n} asynchronous processes communicating via reliable point-to-point message passing. \\
Each process has a unique, unforgeable identifier and knows the identifiers of all other processes. \\
Up to $f<n$ processes may crash (fail-stop). \\
The network is reliable: if a correct process sends a message to another correct process, it is eventually delivered. \\
Messages are uniquely identifiable: two messages sent by distinct processes or at different rounds are distinguishable \\
2 messages sent by the same processus in two differents rounds are differents \\
\begin{property}[Message Uniqueness]
If two messages are sent by different processes, or by the same process in different rounds, then the messages are distinct. \\
Formally : \\
\[
\forall p_1, p_2,\ \forall r_1, r_2,\ \forall m_1, m_2,\
\left(
\begin{array}{l}
\text{send}(p_1, r_1, m_1) \land \text{send}(p_2, r_2, m_2) \\
\land\ (p_1 \ne p_2 \lor r_1 \ne r_2)
\end{array}
\right)
\Rightarrow m_1 \ne m_2
\]
\end{property}
\subsubsection{Reliable Broadcast Properties}
\begin{property}{Integrity}
Every message received was previously sent. \\
Formally : \\
$\forall p_i : \text{bc-recv}_i(m) \Rightarrow \exists p_j : \text{bc-send}_j(m)$
\end{property}
\begin{property}{No Duplicates}
No message is received more than once at any single processor. \\
Formally : \\
$\forall m, \forall p_i: \text{bc-recv}_i(m) \text{ occurs at most once}$ \\
\end{property}
\begin{property}{Validity}
All messages broadcast by a correct process are eventually received by all non faulty processors. \\
Formally : \\
$\forall m, \forall p_i: \text{correct}(p_i) \wedge \text{bc-send}_i(m) => \forall p_j : \text{correct}(p_j) \Rightarrow \text{bc-recv}_j(m)$
\end{property}
\subsubsection{AtomicBroadcast Properties}
\begin{property}{AB Totally ordered}
$\forall m_1, m_2, \forall p_i, p_j : \text{ab-recv}_{p_i}(m_1) < \text{ab-recv}_{p_i}(m_2) \Rightarrow \text{ab-recv}_{p_j}(m_1) < \text{ab-recv}_{p_j}(m_2)$
\end{property}
\subsubsection{DenyList Properties}
Let $\Pi_M$ be the set of processes authorized to issue \texttt{APPEND} operations,
and $\Pi_V$ the set of processes authorized to issue \texttt{PROVE} operations. \\
Let $S$ be the set of valid values that may be appended. Let $\texttt{Seq}$ be
the linearization of operations recorded in the DenyList.
\begin{property}{APPEND Validity}
An operation $\texttt{APPEND}(x)$ is valid iff :
the issuing process $p \in \Pi_M$, and the value $x \in S$
\end{property}
\begin{property}{PROVE Validity}
An operation $\texttt{PROVE}(x)$ is valid iff:
the issuing process $p \in \Pi_V$, and there exists no $\texttt{APPEND}(x)$ that appears earlier in $\texttt{Seq}$.
\end{property}
\begin{property}{PROGRESS}
If an APPEND(x) is invoked by a correct process, then all correct processes will eventually be unable to PROVE(x).
\end{property}
\begin{property}{READ Validity}
READ() return a list of tuples who is a random permutation of all valids PROVE() associated to the identity of the emiter process.
\end{property}

View File

@ -0,0 +1,20 @@
\relax
\providecommand \babel@aux [2]{\global \let \babel@toc \@gobbletwo }
\@nameuse{bbl@beforestart}
\catcode `:\active
\catcode `;\active
\catcode `!\active
\catcode `?\active
\abx@aux@refcontext{nty/global//global/global/global}
\providecommand \oddpage@label [2]{}
\babel@aux{french}{}
\@writefile{toc}{\contentsline {section}{\numberline {1}Introduction}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.1}Model}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.1}Model Properties}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.2}AtomicBroadcast Properties}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsubsection}{\numberline {1.1.3}DenyList Properties}{1}{}\protected@file@percent }
\@writefile{toc}{\contentsline {subsection}{\numberline {1.2}Algo}{1}{}\protected@file@percent }
\@writefile{loa}{\contentsline {algocf}{\numberline {1}{\ignorespaces AB\_Broadcast}}{2}{}\protected@file@percent }
\@writefile{loa}{\contentsline {algocf}{\numberline {2}{\ignorespaces AB\_Listen}}{2}{}\protected@file@percent }
\abx@aux@read@bbl@mdfivesum{76D65A242EC496C9B4361AF646FF12CB}
\gdef \@abspage@last{3}

View File

@ -0,0 +1,20 @@
% $ biblatex auxiliary file $
% $ biblatex bbl format version 3.3 $
% Do not modify the above lines!
%
% This is an auxiliary file used by the 'biblatex' package.
% This file may safely be deleted. It will be recreated by
% biber as required.
%
\begingroup
\makeatletter
\@ifundefined{ver@biblatex.sty}
{\@latex@error
{Missing 'biblatex' package}
{The bibliography requires the 'biblatex' package.}
\aftergroup\endinput}
{}
\endgroup
\endinput

View File

@ -0,0 +1,9 @@
[0] Config.pm:308> INFO - This is Biber 2.20
[1] Config.pm:311> INFO - Logfile is 'main.blg'
[69] biber:340> INFO - === Thu Apr 24, 2025, 18:19:12
[87] Biber.pm:420> INFO - Reading 'main.bcf'
[141] Biber.pm:994> INFO - Found 0 citekeys in bib section 0
[155] bbl.pm:676> INFO - Writing 'main.bbl' with encoding 'UTF-8'
[156] bbl.pm:779> INFO - Output to main.bbl
[157] Biber.pm:131> WARN - The file 'main.bcf' does not contain any citations!
[158] Biber.pm:133> INFO - WARNINGS: 1

View File

@ -0,0 +1,95 @@
# Fdb version 4
["biber main"] 1745518751.69811 "main.bcf" "main.bbl" "main" 1745518755.47995 0
"main.bcf" 1745518755.26652 108486 d8549f9e7d9f09af6a94b466d27b9f55 "pdflatex"
(generated)
"main.bbl"
"main.blg"
(rewritten before read)
["pdflatex"] 1745518754.18166 "/workspaces/containers/recherches/AllowListDenyList/main.tex" "main.pdf" "main" 1745518755.48238 0
"/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc" 1136849721 2971 def0b6c1f0b107b3b936def894055589 ""
"/usr/local/texlive/2025/texmf-dist/fonts/map/fontname/texfonts.map" 1577235249 3524 cb3e574dea2d1052e39280babc910dc8 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx0700.tfm" 1136768653 3584 ca0c423beaacd28d53ddce5a826cd558 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1000.tfm" 1136768653 3584 2d666ecf6d466d8b007246bc2f94d9da ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm" 1136768653 3584 402da0b29eafbad07963b1224b222f18 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1440.tfm" 1136768653 3584 13049b61b922a28b158a38aeff75ee9b ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm" 1136768653 3584 adb004a0c8e7c46ee66cad73671f37b4 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1200.tfm" 1136768653 3584 f80ddd985bd00e29e9a6047ebd9d4781 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1440.tfm" 1136768653 3584 3169d30142b88a27d4ab0e3468e963a2 ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1728.tfm" 1136768653 3584 3c76ccb63eda935a68ba65ba9da29f1a ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecti1000.tfm" 1136768653 3072 3bce340d4c075dffe6d4ec732b4c32fe ""
"/usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecti1200.tfm" 1136768653 3072 8b5a64dc91775463bc95e2d818524028 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb" 1248133631 36299 5f9df58c2139e7edcf37c8fca4bd384d ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb" 1248133631 36281 c355509802a035cadc5f15869451dcee ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb" 1248133631 35752 024fb6c41858982481f6968b5fc26508 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb" 1248133631 32569 5e5ddc8df908dea60932f3c484a54c0d ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx0700.pfb" 1215737283 144215 c89c56d5c5b828c5c1657b4326c29df7 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1000.pfb" 1215737283 145408 43d44302ca7d82d487f511f83e309505 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb" 1215737283 140176 d4962f948b4cc0adf4d3dde77a128c95 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1440.pfb" 1215737283 135942 859a90cad7494a1e79c94baf546d7de5 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1000.pfb" 1215737283 138258 6525c253f16cededa14c7fd0da7f67b2 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb" 1215737283 136101 f533469f523533d38317ab5729d00c8a ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1728.pfb" 1215737283 131438 3aa300b3e40e5c8ba7b4e5c6cebc5dd6 ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1000.pfb" 1215737283 186554 e8f0fa8ca05e038f257a06405232745f ""
"/usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1200.pfb" 1215737283 198221 ca5aa71411090ef358a6cc78b7458365 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/babel-french/french.ldf" 1722030099 66864 5ea28be04c8922f57dc437cc5c1c2c31 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/babel/babel.sty" 1743197512 144118 8a0145ee10f36c9987d52d114dccd1b1 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini" 1733001190 6315 3c384dcbb287e14a2e736eeb5010b67f ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex" 1711748144 2142 2e5ecc022cd62b6d520b9630cf893dfe ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/babel/txtbabel.def" 1741723514 6833 ef397c732d8c72f527b197aa1623476d ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty" 1734129479 7984 7dbb9280f03c0a315425f1b4f35d43ee ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty" 1575499628 8356 7bbb2c2373aa810be568c29e333da8ed ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty" 1701727651 17865 1a9bd36b4f98178fa551aca822290953 ""
"/usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty" 1593379760 20089 80423eac55aa175305d35b49e04fe23b ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty" 1500498588 167160 d91cee26d3ef5727644d2110445741dd ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/article.cls" 1738182759 20144 63d8bacaf52e5abf4db3bc322373e1d4 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty" 1738182759 5275 0d62fb62162c7ab056e941ef18c5076d ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/ifthen.sty" 1738182759 5525 9dced5929f36b19fa837947f5175b331 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/inputenc.sty" 1738182759 5048 0270515b828149155424600fd2d58ac5 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/base/size10.clo" 1738182759 8448 5cf247d4bd0c7d5d711bbbdf111fae2e ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx" 1609451401 1818 9ed166ac0a9204a8ebe450ca09db5dde ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/standard.bbx" 1609451401 25680 409c3f3d570418bc545e8065bebd0688 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.cfg" 1342308459 69 249fa6df04d948e51b6d5c67bea30c42 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.def" 1711143581 96838 228f189cb4020ea9f6d467af8aa859c2 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.sty" 1711143581 533961 a8d65602d822bf3d3c823e6dc4922bbc ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty" 1711143581 9961 107fdb78f652fccae7bce0d23bdc19cd ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-compat.def" 1643926307 13919 5426dbe90e723f089052b4e908b56ef9 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-dm.def" 1711143581 32761 18d14e3b502c120f79b2184de4e21d14 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx" 1678141846 4629 cda468e8a0b1cfa0f61872e171037a4b ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/lbx/french.lbx" 1711143581 35297 433adeecf04fccba5dc7668ba5058972 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/carlisle/scalefnt.sty" 1137109962 1360 df2086bf924b14b72d6121fe9502fcdb ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.cfg" 1429144587 7068 06f8d141725d114847527a66439066b6 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.def" 1712263026 22135 0975a49eeaed232aa861e9425ffb2e7c ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.sty" 1712263026 62767 e79d6d7a989e7da62dcf3d0a65c1faee ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty" 1739306980 46850 d87daedc2abdc653769a6f1067849fe0 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/keyval.sty" 1717359999 2671 70891d50dac933918b827d326687c6e8 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty" 1666126449 2142 eae42205b97b7a3ad0e58db5fe99e3e6 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty" 1655478651 22555 6d8e155cfef6d82c3d5c742fea7c992e ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty" 1665067230 13815 760b0c02f691ea230f5359c4e1de23a7 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def" 1716410060 29785 9f93ab201fe5dd053afcc6c1bcf7d266 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/l3kernel/expl3.sty" 1738271527 6565 f51d809db6193fae7b06c1bc26ca8f75 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/l3packages/xparse/xparse.sty" 1724879202 9783 ab4bee47700c04aadedb8da27591b0ab ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.def" 1284153563 1620 fb1c32b818f2058eca187e5c41dfae77 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.sty" 1284153563 6187 b27afc771af565d3a9ff1ca7d16d0d46 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/authblk.sty" 1368488610 7016 985a983ce041cc8959cd31133cba0244 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/fullpage.sty" 1137110595 2789 05b418f78b224ec872f5b11081138605 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/relsize/relsize.sty" 1369619135 15542 c4cc3164fe24f2f2fbb06eb71b1da4c4 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/tools/xspace.sty" 1717359999 4545 e3f4de576c914e2000f07f69a891c071 ""
"/usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty" 1388531844 12796 8edb7d69a20b857904dd0ea757c14ec9 ""
"/usr/local/texlive/2025/texmf-dist/web2c/texmf.cnf" 1739380943 42148 61becc7c670cd061bb319c643c27fdd4 ""
"/usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map" 1743313660 5501089 f2ffe622267f7d8bfaba0244ab87ba6f ""
"/usr/local/texlive/2025/texmf-var/web2c/pdftex/pdflatex.fmt" 1743313810 3345755 ba2ca5aadbc395a8eb3e969a7d392ec2 ""
"/usr/local/texlive/2025/texmf.cnf" 1743313649 455 5b996dcaa0eb4ef14a83b026bc0a008c ""
"/workspaces/containers/recherches/AllowListDenyList/main.tex" 1745515390.16057 722 34633c768624cc239eef0942b140dea1 ""
"algo/index.tex" 1745516699.00079 1166 3401d17da50a7f871b536483996a0462 ""
"intro/index.tex" 1745518750.07112 2222 96d5bf33e15e2d99900cb9bb0955e210 ""
"main.aux" 1745518755.25965 1261 7295b00608a538129f1f3d8e1e94b611 "pdflatex"
"main.bbl" 1745518752.8063 466 76d65a242ec496c9b4361af646ff12cb "biber main"
"main.run.xml" 1745518755.27359 2301 7adc9b5a22e7927ebfdd8580ad5d647d "pdflatex"
"main.tex" 1745515390.16057 722 34633c768624cc239eef0942b140dea1 ""
(generated)
"main.aux"
"main.bcf"
"main.log"
"main.pdf"
"main.run.xml"
(rewritten before read)

View File

@ -0,0 +1,152 @@
PWD /workspaces/containers/recherches/AllowListDenyList
INPUT /usr/local/texlive/2025/texmf.cnf
INPUT /usr/local/texlive/2025/texmf-dist/web2c/texmf.cnf
INPUT /usr/local/texlive/2025/texmf-var/web2c/pdftex/pdflatex.fmt
INPUT /workspaces/containers/recherches/AllowListDenyList/main.tex
OUTPUT main.log
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/article.cls
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/article.cls
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/size10.clo
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/size10.clo
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/size10.clo
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty
INPUT /usr/local/texlive/2025/texmf-dist/fonts/map/fontname/texfonts.map
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1000.tfm
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/inputenc.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/graphics/keyval.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.cfg
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.cfg
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.cfg
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/babel.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/txtbabel.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel-french/french.ldf
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel-french/french.ldf
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel-french/french.ldf
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-fr.ini
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/carlisle/scalefnt.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/authblk.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/authblk.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/fullpage.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/preprint/fullpage.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/ifthen.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/base/ifthen.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-dm.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-dm.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-dm.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-compat.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-compat.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-compat.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.cfg
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.cfg
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.cfg
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3kernel/expl3.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3kernel/expl3.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/tools/xspace.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/relsize/relsize.sty
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/relsize/relsize.sty
INPUT ./main.aux
INPUT ./main.aux
INPUT main.aux
OUTPUT main.aux
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/lbx/french.lbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/lbx/french.lbx
INPUT /usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/lbx/french.lbx
OUTPUT main.bcf
INPUT main.bbl
INPUT ./main.bbl
INPUT ./main.bbl
INPUT ./main.bbl
INPUT main.bbl
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1728.tfm
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1200.tfm
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1200.tfm
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecti1200.tfm
OUTPUT main.pdf
INPUT /usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map
INPUT /usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecrm1440.tfm
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1440.tfm
INPUT ./intro/index.tex
INPUT ./intro/index.tex
INPUT intro/index.tex
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx1000.tfm
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecti1000.tfm
INPUT ./algo/index.tex
INPUT ./algo/index.tex
INPUT algo/index.tex
INPUT /usr/local/texlive/2025/texmf-dist/fonts/tfm/jknappen/ec/ecbx0700.tfm
INPUT main.aux
INPUT main.run.xml
OUTPUT main.run.xml
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx0700.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1000.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1440.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1000.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1728.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1000.pfb
INPUT /usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1200.pfb

View File

@ -0,0 +1,491 @@
This is pdfTeX, Version 3.141592653-2.6-1.40.27 (TeX Live 2025) (preloaded format=pdflatex 2025.3.30) 24 APR 2025 18:19
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
%&-line parsing enabled.
**/workspaces/containers/recherches/AllowListDenyList/main.tex
(/workspaces/containers/recherches/AllowListDenyList/main.tex
LaTeX2e <2024-11-01> patch level 2
L3 programming layer <2025-01-18>
(/usr/local/texlive/2025/texmf-dist/tex/latex/base/article.cls
Document Class: article 2024/06/29 v1.4n Standard LaTeX document class
(/usr/local/texlive/2025/texmf-dist/tex/latex/base/size10.clo
File: size10.clo 2024/06/29 v1.4n Standard LaTeX file (size option)
)
\c@part=\count196
\c@section=\count197
\c@subsection=\count198
\c@subsubsection=\count199
\c@paragraph=\count266
\c@subparagraph=\count267
\c@figure=\count268
\c@table=\count269
\abovecaptionskip=\skip49
\belowcaptionskip=\skip50
\bibindent=\dimen141
) (/usr/local/texlive/2025/texmf-dist/tex/latex/base/fontenc.sty
Package: fontenc 2021/04/29 v2.0v Standard LaTeX package
) (/usr/local/texlive/2025/texmf-dist/tex/latex/base/inputenc.sty
Package: inputenc 2024/02/08 v1.3d Input encoding file
\inpenc@prehook=\toks17
\inpenc@posthook=\toks18
) (/usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.sty
Package: csquotes 2024-04-04 v5.2o context-sensitive quotations (JAW)
(/usr/local/texlive/2025/texmf-dist/tex/latex/etoolbox/etoolbox.sty
Package: etoolbox 2025/02/11 v2.5l e-TeX tools for LaTeX (JAW)
\etb@tempcnta=\count270
) (/usr/local/texlive/2025/texmf-dist/tex/latex/graphics/keyval.sty
Package: keyval 2022/05/29 v1.15 key=value parser (DPC)
\KV@toks@=\toks19
)
\csq@reset=\count271
\csq@gtype=\count272
\csq@glevel=\count273
\csq@qlevel=\count274
\csq@maxlvl=\count275
\csq@tshold=\count276
\csq@ltx@everypar=\toks20
(/usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.def
File: csquotes.def 2024-04-04 v5.2o csquotes generic definitions (JAW)
)
Package csquotes Info: Trying to load configuration file 'csquotes.cfg'...
Package csquotes Info: ... configuration file loaded successfully.
(/usr/local/texlive/2025/texmf-dist/tex/latex/csquotes/csquotes.cfg
File: csquotes.cfg
)) (/usr/local/texlive/2025/texmf-dist/tex/generic/babel/babel.sty
Package: babel 2025/03/27 v25.6 The multilingual framework for pdfLaTeX, LuaLaTeX and XeLaTeX
\babel@savecnt=\count277
\U@D=\dimen142
\l@unhyphenated=\language90
(/usr/local/texlive/2025/texmf-dist/tex/generic/babel/txtbabel.def)
\bbl@readstream=\read2
\bbl@dirlevel=\count278
(/usr/local/texlive/2025/texmf-dist/tex/generic/babel-french/french.ldf
Language: french 2024-07-25 v3.6c French support from the babel system
Package babel Info: Hyphen rules for 'acadian' set to \l@french
(babel) (\language30). Reported on input line 91.
Package babel Info: Hyphen rules for 'canadien' set to \l@french
(babel) (\language30). Reported on input line 92.
\FB@stdchar=\count279
Package babel Info: Making : an active character on input line 421.
Package babel Info: Making ; an active character on input line 422.
Package babel Info: Making ! an active character on input line 423.
Package babel Info: Making ? an active character on input line 424.
\FBguill@level=\count280
\FBold@everypar=\toks21
\FB@Mht=\dimen143
\mc@charclass=\count281
\mc@charfam=\count282
\mc@charslot=\count283
\std@mcc=\count284
\dec@mcc=\count285
\FB@parskip=\dimen144
\listindentFB=\dimen145
\descindentFB=\dimen146
\labelindentFB=\dimen147
\labelwidthFB=\dimen148
\leftmarginFB=\dimen149
\parindentFFN=\dimen150
\FBfnindent=\dimen151
)) (/usr/local/texlive/2025/texmf-dist/tex/generic/babel/locale/fr/babel-french.tex
Package babel Info: Importing font and identification data for french
(babel) from babel-fr.ini. Reported on input line 11.
) (/usr/local/texlive/2025/texmf-dist/tex/latex/carlisle/scalefnt.sty) (/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/authblk.sty
Package: authblk 2001/02/27 1.3 (PWD)
\affilsep=\skip51
\@affilsep=\skip52
\c@Maxaffil=\count286
\c@authors=\count287
\c@affil=\count288
) (/usr/local/texlive/2025/texmf-dist/tex/latex/preprint/fullpage.sty
Package: fullpage 1999/02/23 1.1 (PWD)
\FP@margin=\skip53
) (/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.sty
Package: biblatex 2024/03/21 v3.20 programmable bibliographies (PK/MW)
(/usr/local/texlive/2025/texmf-dist/tex/generic/pdftexcmds/pdftexcmds.sty
Package: pdftexcmds 2020-06-27 v0.33 Utility functions of pdfTeX for LuaTeX (HO)
(/usr/local/texlive/2025/texmf-dist/tex/generic/infwarerr/infwarerr.sty
Package: infwarerr 2019/12/03 v1.5 Providing info/warning/error messages (HO)
) (/usr/local/texlive/2025/texmf-dist/tex/generic/iftex/iftex.sty
Package: iftex 2024/12/12 v1.0g TeX engine tests
) (/usr/local/texlive/2025/texmf-dist/tex/generic/ltxcmds/ltxcmds.sty
Package: ltxcmds 2023-12-04 v1.26 LaTeX kernel commands for general use (HO)
)
Package pdftexcmds Info: \pdf@primitive is available.
Package pdftexcmds Info: \pdf@ifprimitive is available.
Package pdftexcmds Info: \pdfdraftmode found.
) (/usr/local/texlive/2025/texmf-dist/tex/latex/kvoptions/kvoptions.sty
Package: kvoptions 2022-06-15 v3.15 Key value format for package options (HO)
(/usr/local/texlive/2025/texmf-dist/tex/latex/kvsetkeys/kvsetkeys.sty
Package: kvsetkeys 2022-10-05 v1.19 Key value parser (HO)
)) (/usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.sty
Package: logreq 2010/08/04 v1.0 xml request logger
\lrq@indent=\count289
(/usr/local/texlive/2025/texmf-dist/tex/latex/logreq/logreq.def
File: logreq.def 2010/08/04 v1.0 logreq spec v1.0
)) (/usr/local/texlive/2025/texmf-dist/tex/latex/base/ifthen.sty
Package: ifthen 2024/03/16 v1.1e Standard LaTeX ifthen package (DPC)
) (/usr/local/texlive/2025/texmf-dist/tex/latex/url/url.sty
\Urlmuskip=\muskip17
Package: url 2013/09/16 ver 3.4 Verb mode for urls, etc.
)
\c@tabx@nest=\count290
\c@listtotal=\count291
\c@listcount=\count292
\c@liststart=\count293
\c@liststop=\count294
\c@citecount=\count295
\c@citetotal=\count296
\c@multicitecount=\count297
\c@multicitetotal=\count298
\c@instcount=\count299
\c@maxnames=\count300
\c@minnames=\count301
\c@maxitems=\count302
\c@minitems=\count303
\c@citecounter=\count304
\c@maxcitecounter=\count305
\c@savedcitecounter=\count306
\c@uniquelist=\count307
\c@uniquename=\count308
\c@refsection=\count309
\c@refsegment=\count310
\c@maxextratitle=\count311
\c@maxextratitleyear=\count312
\c@maxextraname=\count313
\c@maxextradate=\count314
\c@maxextraalpha=\count315
\c@abbrvpenalty=\count316
\c@highnamepenalty=\count317
\c@lownamepenalty=\count318
\c@maxparens=\count319
\c@parenlevel=\count320
\blx@tempcnta=\count321
\blx@tempcntb=\count322
\blx@tempcntc=\count323
\c@blx@maxsection=\count324
\blx@maxsegment@0=\count325
\blx@notetype=\count326
\blx@parenlevel@text=\count327
\blx@parenlevel@foot=\count328
\blx@sectionciteorder@0=\count329
\blx@sectionciteorderinternal@0=\count330
\blx@entrysetcounter=\count331
\blx@biblioinstance=\count332
\labelnumberwidth=\skip54
\labelalphawidth=\skip55
\biblabelsep=\skip56
\bibitemsep=\skip57
\bibnamesep=\skip58
\bibinitsep=\skip59
\bibparsep=\skip60
\bibhang=\skip61
\blx@bcfin=\read3
\blx@bcfout=\write3
\blx@langwohyphens=\language91
\c@mincomprange=\count333
\c@maxcomprange=\count334
\c@mincompwidth=\count335
Package biblatex Info: Trying to load biblatex default data model...
Package biblatex Info: ... file 'blx-dm.def' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-dm.def
File: blx-dm.def 2024/03/21 v3.20 biblatex datamodel (PK/MW)
)
Package biblatex Info: Trying to load biblatex custom data model...
Package biblatex Info: ... file 'biblatex-dm.cfg' not found.
\c@afterword=\count336
\c@savedafterword=\count337
\c@annotator=\count338
\c@savedannotator=\count339
\c@author=\count340
\c@savedauthor=\count341
\c@bookauthor=\count342
\c@savedbookauthor=\count343
\c@commentator=\count344
\c@savedcommentator=\count345
\c@editor=\count346
\c@savededitor=\count347
\c@editora=\count348
\c@savededitora=\count349
\c@editorb=\count350
\c@savededitorb=\count351
\c@editorc=\count352
\c@savededitorc=\count353
\c@foreword=\count354
\c@savedforeword=\count355
\c@holder=\count356
\c@savedholder=\count357
\c@introduction=\count358
\c@savedintroduction=\count359
\c@namea=\count360
\c@savednamea=\count361
\c@nameb=\count362
\c@savednameb=\count363
\c@namec=\count364
\c@savednamec=\count365
\c@translator=\count366
\c@savedtranslator=\count367
\c@shortauthor=\count368
\c@savedshortauthor=\count369
\c@shorteditor=\count370
\c@savedshorteditor=\count371
\c@labelname=\count372
\c@savedlabelname=\count373
\c@institution=\count374
\c@savedinstitution=\count375
\c@lista=\count376
\c@savedlista=\count377
\c@listb=\count378
\c@savedlistb=\count379
\c@listc=\count380
\c@savedlistc=\count381
\c@listd=\count382
\c@savedlistd=\count383
\c@liste=\count384
\c@savedliste=\count385
\c@listf=\count386
\c@savedlistf=\count387
\c@location=\count388
\c@savedlocation=\count389
\c@organization=\count390
\c@savedorganization=\count391
\c@origlocation=\count392
\c@savedoriglocation=\count393
\c@origpublisher=\count394
\c@savedorigpublisher=\count395
\c@publisher=\count396
\c@savedpublisher=\count397
\c@language=\count398
\c@savedlanguage=\count399
\c@origlanguage=\count400
\c@savedoriglanguage=\count401
\c@pageref=\count402
\c@savedpageref=\count403
\shorthandwidth=\skip62
\shortjournalwidth=\skip63
\shortserieswidth=\skip64
\shorttitlewidth=\skip65
\shortauthorwidth=\skip66
\shorteditorwidth=\skip67
\locallabelnumberwidth=\skip68
\locallabelalphawidth=\skip69
\localshorthandwidth=\skip70
\localshortjournalwidth=\skip71
\localshortserieswidth=\skip72
\localshorttitlewidth=\skip73
\localshortauthorwidth=\skip74
\localshorteditorwidth=\skip75
Package biblatex Info: Trying to load compatibility code...
Package biblatex Info: ... file 'blx-compat.def' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-compat.def
File: blx-compat.def 2024/03/21 v3.20 biblatex compatibility (PK/MW)
)
Package biblatex Info: Trying to load generic definitions...
Package biblatex Info: ... file 'biblatex.def' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.def
File: biblatex.def 2024/03/21 v3.20 biblatex compatibility (PK/MW)
\c@textcitecount=\count404
\c@textcitetotal=\count405
\c@textcitemaxnames=\count406
\c@biburlbigbreakpenalty=\count407
\c@biburlbreakpenalty=\count408
\c@biburlnumpenalty=\count409
\c@biburlucpenalty=\count410
\c@biburllcpenalty=\count411
\biburlbigskip=\muskip18
\biburlnumskip=\muskip19
\biburlucskip=\muskip20
\biburllcskip=\muskip21
\c@smartand=\count412
)
Package biblatex Info: Trying to load bibliography style 'numeric'...
Package biblatex Info: ... file 'numeric.bbx' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/numeric.bbx
File: numeric.bbx 2024/03/21 v3.20 biblatex bibliography style (PK/MW)
Package biblatex Info: Trying to load bibliography style 'standard'...
Package biblatex Info: ... file 'standard.bbx' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/bbx/standard.bbx
File: standard.bbx 2024/03/21 v3.20 biblatex bibliography style (PK/MW)
\c@bbx:relatedcount=\count413
\c@bbx:relatedtotal=\count414
))
Package biblatex Info: Trying to load citation style 'numeric'...
Package biblatex Info: ... file 'numeric.cbx' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/cbx/numeric.cbx
File: numeric.cbx 2024/03/21 v3.20 biblatex citation style (PK/MW)
Package biblatex Info: Redefining '\cite'.
Package biblatex Info: Redefining '\parencite'.
Package biblatex Info: Redefining '\footcite'.
Package biblatex Info: Redefining '\footcitetext'.
Package biblatex Info: Redefining '\smartcite'.
Package biblatex Info: Redefining '\supercite'.
Package biblatex Info: Redefining '\textcite'.
Package biblatex Info: Redefining '\textcites'.
Package biblatex Info: Redefining '\cites'.
Package biblatex Info: Redefining '\parencites'.
Package biblatex Info: Redefining '\smartcites'.
)
Package biblatex Info: Trying to load configuration file...
Package biblatex Info: ... file 'biblatex.cfg' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/biblatex.cfg
File: biblatex.cfg
)
Package biblatex Info: Input encoding 'utf8' detected.
Package biblatex Info: Document encoding is UTF8 ....
(/usr/local/texlive/2025/texmf-dist/tex/latex/l3kernel/expl3.sty
Package: expl3 2025-01-18 L3 programming layer (loader)
(/usr/local/texlive/2025/texmf-dist/tex/latex/l3backend/l3backend-pdftex.def
File: l3backend-pdftex.def 2024-05-08 L3 backend support: PDF output (pdfTeX)
\l__color_backend_stack_int=\count415
\l__pdf_internal_box=\box52
))
Package biblatex Info: ... and expl3
(biblatex) 2025-01-18 L3 programming layer (loader)
(biblatex) is new enough (at least 2020/04/06),
(biblatex) setting 'casechanger=expl3'.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/blx-case-expl3.sty (/usr/local/texlive/2025/texmf-dist/tex/latex/l3packages/xparse/xparse.sty
Package: xparse 2024-08-16 L3 Experimental document command parser
)
Package: blx-case-expl3 2024/03/21 v3.20 expl3 case changing code for biblatex
)) (/usr/local/texlive/2025/texmf-dist/tex/latex/algorithm2e/algorithm2e.sty
Package: algorithm2e 2017/07/18 v5.2 algorithms environments
\c@AlgoLine=\count416
\algocf@hangindent=\skip76
(/usr/local/texlive/2025/texmf-dist/tex/latex/ifoddpage/ifoddpage.sty
Package: ifoddpage 2022/10/18 v1.2 Conditionals for odd/even page detection
\c@checkoddpage=\count417
) (/usr/local/texlive/2025/texmf-dist/tex/latex/tools/xspace.sty
Package: xspace 2014/10/28 v1.13 Space after command names (DPC,MH)
) (/usr/local/texlive/2025/texmf-dist/tex/latex/relsize/relsize.sty
Package: relsize 2013/03/29 ver 4.1
)
\skiptotal=\skip77
\skiplinenumber=\skip78
\skiprule=\skip79
\skiphlne=\skip80
\skiptext=\skip81
\skiplength=\skip82
\algomargin=\skip83
\skipalgocfslide=\skip84
\algowidth=\dimen152
\inoutsize=\dimen153
\inoutindent=\dimen154
\interspacetitleruled=\dimen155
\interspacealgoruled=\dimen156
\interspacetitleboxruled=\dimen157
\algocf@ruledwidth=\skip85
\algocf@inoutbox=\box53
\algocf@inputbox=\box54
\AlCapSkip=\skip86
\AlCapHSkip=\skip87
\algoskipindent=\skip88
\algocf@nlbox=\box55
\algocf@hangingbox=\box56
\algocf@untilbox=\box57
\algocf@skipuntil=\skip89
\algocf@capbox=\box58
\algocf@lcaptionbox=\skip90
\algoheightruledefault=\skip91
\algoheightrule=\skip92
\algotitleheightruledefault=\skip93
\algotitleheightrule=\skip94
\c@algocfline=\count418
\c@algocfproc=\count419
\c@algocf=\count420
\algocf@algoframe=\box59
\algocf@algobox=\box60
)
\c@theorem=\count421
Package csquotes Info: Checking for multilingual support...
Package csquotes Info: ... found 'babel' package.
Package csquotes Info: Adjusting default style.
Package csquotes Info: Redefining alias 'default' -> 'french'.
(./main.aux
Package babel Info: 'french' activates 'french' shorthands.
(babel) Reported on input line 10.
)
\openout1 = `main.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for OMS/cmsy/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for OT1/cmr/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for T1/cmr/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for TS1/cmr/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for OMX/cmex/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Font Info: Checking defaults for U/cmr/m/n on input line 18.
LaTeX Font Info: ... okay on input line 18.
LaTeX Info: Redefining \degres on input line 18.
LaTeX Info: Redefining \up on input line 18.
Package biblatex Info: Trying to load language 'french'...
Package biblatex Info: ... file 'french.lbx' found.
(/usr/local/texlive/2025/texmf-dist/tex/latex/biblatex/lbx/french.lbx
File: french.lbx 2024/03/21 v3.20 biblatex localization (PK/MW)
)
Package biblatex Info: Input encoding 'utf8' detected.
Package biblatex Info: Automatic encoding selection.
(biblatex) Assuming data encoding 'utf8'.
\openout3 = `main.bcf'.
Package biblatex Info: Trying to load bibliographic data...
Package biblatex Info: ... file 'main.bbl' found.
(./main.bbl)
Package biblatex Info: Reference section=0 on input line 18.
Package biblatex Info: Reference segment=0 on input line 18.
[1
{/usr/local/texlive/2025/texmf-var/fonts/map/pdftex/updmap/pdftex.map}{/usr/local/texlive/2025/texmf-dist/fonts/enc/dvips/cm-super/cm-super-t1.enc}] (./intro/index.tex
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <7> on input line 5.
LaTeX Font Info: External font `cmex10' loaded for size
(Font) <5> on input line 5.
Underfull \hbox (badness 10000) in paragraph at lines 12--14
[]
) (./algo/index.tex
[1]
Underfull \hbox (badness 10000) in paragraph at lines 21--26
[]
)
LaTeX Warning: Empty bibliography on input line 38.
[2] (./main.aux)
***********
LaTeX2e <2024-11-01> patch level 2
L3 programming layer <2025-01-18>
***********
Package logreq Info: Writing requests to 'main.run.xml'.
\openout1 = `main.run.xml'.
)
Here is how much of TeX's memory you used:
12402 strings out of 473190
235027 string characters out of 5715806
1085239 words of memory out of 5000000
35573 multiletter control sequences out of 15000+600000
566378 words of font info for 46 fonts, out of 8000000 for 9000
1141 hyphenation exceptions out of 8191
66i,18n,81p,745b,1731s stack positions out of 10000i,1000n,20000p,200000b,200000s
</usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi10.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmmi7.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmr10.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/amsfonts/cm/cmsy10.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx0700.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1000.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1200.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfbx1440.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1000.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1200.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfrm1728.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1000.pfb></usr/local/texlive/2025/texmf-dist/fonts/type1/public/cm-super/sfti1200.pfb>
Output written on main.pdf (3 pages, 194797 bytes).
PDF statistics:
80 PDF objects out of 1000 (max. 8388607)
48 compressed objects within 1 object stream
0 named destinations out of 1000 (max. 500000)
1 words of extra memory for PDF output out of 10000 (max. 10000000)

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,63 @@
\documentclass{article}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}
\usepackage{csquotes}
\usepackage[french]{babel}
\usepackage[affil-it]{authblk}
\usepackage{fullpage}
\usepackage{amsmath}
\usepackage{amssymb}
\usepackage{biblatex}
% \usepackage[linesnumbered,ruled,vlined]{algorithm2e}
\usepackage{algorithm}
\usepackage{algorithmicx}
\usepackage[noend]{algpseudocode}
\algrenewcommand\alglinenumber[1]{\tiny #1}
\usepackage{etoolbox}
% --- Partage du compteur de lignes entre plusieurs algorithmes
\makeatletter
\newcounter{algoLine}
\renewcommand{\alglinenumber}[1]{\arabic{algoLine}}
\newcommand{\nextalgline}{\stepcounter{algoLine}}
\newcommand{\resetalgline}{\setcounter{algoLine}{1}}
\makeatother
\newtheorem{property}{Property}
\newtheorem{theorem}{Theorem}
\newtheorem{proof}{Proof}
\addbibresource{sources.bib}
\begin{document}
\title{???}
\author{JOLY Amaury \\ \textbf{Encadrants :} GODARD Emmanuel, TRAVERS Corentin}
\affil{Aix-Marseille Université, Scille}
\date{\today}
\begin{titlepage}
\maketitle
\end{titlepage}
\section{Introduction}
\subsection{Model}
\input{intro/index.tex}
\subsection{Algorithms}
\input{algo/index.tex}
\subsection{proof}
\input{proof/index.tex}
\printbibliography
\end{document}

View File

@ -0,0 +1,121 @@
\begin{theorem}[Integrity]
If a message $m$ is delivered by any process, then it was previously broadcast by some process via the \texttt{AB-broadcast} primitive.
\end{theorem}
\begin{proof}
Let $j$ be a process such that $\text{AB-deliver}_j(m)$ occurs.
\begin{align*}
&\text{AB-deliver}_j(m) & \text{(line 24)} \\
\Rightarrow\; &\exists r_0 : m \in \texttt{ordered}(M^{r_0}) & \text{(line 22)} \\
\Rightarrow\; &\exists j_0 : j_0 \in \textit{winner}^{r_0} \land m \in \textit{prop}[r_0][j_0] & \text{(line 21)} \\
\Rightarrow\; &\exists m_0, S_0 : \text{RB-received}_{j_0}(m_0, S_0, r_0, j_0) \land m \in S_0 & \text{(line 2)} \\
\Rightarrow\; &S_0 = (\textit{received}_{j_0} \setminus \textit{delivered}_{j_0}) \cup \{m_1\} & \text{(line 5)} \\
\Rightarrow\; &\textbf{if } m_1 = m: \exists\, \text{AB-broadcast}_{j_0}(m) \hspace{1em} \square \\
&\textbf{else if } m_1 \neq m: \\
&\quad m \in \textit{received}_{j_0} \setminus \textit{delivered}_{j_0} \Rightarrow m \in \textit{received}_{j_0} \land m \notin \textit{delivered}_{j_0} \\
&\quad \exists j_1, S_1, r_1 : \text{RB-received}_{j_1}(m, S_1, r_1, j_1) & \text{(line 1)} \\
&\quad \Rightarrow \exists\, \text{AB-broadcast}_{j_1}(m) \hspace{1em} \square & \text{(line 5)}
\end{align*}
\end{proof}
\begin{theorem}[No Duplication]
No message is delivered more than once by any process.
\end{theorem}
\begin{proof}
Let $j$ be a process such that both $\text{AB-deliver}_j(m_0)$ and $\text{AB-deliver}_j(m_1)$ occur, with $m_0 = m_1$.
\begin{align*}
&\text{AB-deliver}_j(m_0) \wedge \text{AB-deliver}_j(m_1) & \text{(line 24)} \\
\Rightarrow\; & m_0, m_1 \in \textit{delivered}_j & \text{(line 23)} \\
\Rightarrow\; &\exists r_0, r_1 : m_0 \in M^{r_0} \wedge m_1 \in M^{r_1} & \text{(line 22)} \\
\Rightarrow\; &\exists j_0, j_1 : m_0 \in \textit{prop}[r_0][j_0] \wedge m_1 \in \textit{prop}[r_1][j_1] \\
&\hspace{2.5em} \wedge\ j_0 \in \textit{winner}^{r_0},\ j_1 \in \textit{winner}^{r_1} & \text{(line 21)}
\end{align*}
We now distinguish two cases:
\vspace{0.5em}
\noindent\textbf{Case 1:} $r_0 = r_1$:
\begin{itemize}
\item If $j_0 \neq j_1$: this contradicts message uniqueness, since two different processes would include the same message in round $r_0$.
\item If $j_0 = j_1$:
\begin{align*}
\Rightarrow & |{(j_0, \texttt{PROVE}(r_0)) \in proves}| \geq 2 & \text{(line 19)}\\
\Rightarrow &\texttt{PROVE}_{j_0}(r_0) \text{ occurs 2 times} & \text{(line 6)}\\
\Rightarrow &\texttt{AB-Broadcast}_{j_0}(m_0) \text{ were invoked two times} \\
\Rightarrow &(max\{r: \exists j, (j, \texttt{PROVE}(r)) \in proves\} + 1) & \text{(line 4)}\\
&\text{ returned the same value in two differents invokations of \texttt{AB-Broadcast}} \\
&\textbf{But } \texttt{PROVE}(r_0) \Rightarrow \texttt{max}\{r: \exists j, (j, \texttt{PROVE}(r)) \in proves\} + 1 > r_0 \\
&\text{It's impossible for a single process to submit two messages in the same round} \hspace{1em} \\
\end{align*}
\end{itemize}
% \vspace{0.5em}
\noindent\textbf{Case 2:} $r_0 \ne r_1$:
\begin{itemize}
\item If $j_0 \neq j_1$: again, message uniqueness prohibits two different processes from broadcasting the same message in different rounds.
\item If $j_0 = j_1$: message uniqueness also prohibits the same process from broadcasting the same message in two different rounds.
\end{itemize}
In all cases, we reach a contradiction. Therefore, it is impossible for a process to deliver the same message more than once. $\square$
\end{proof}
% \subsubsection{No Duplication}
% $M = (\bigcup_{i \rightarrow |P|} AB\_receieved_{i}(m)), \not\exists m_0 m_1 \in M \text{s.t. } m_1 = m_2$
% \\
% Proof \\
% \begin{align*}
% &\text{Soit } i, m_0, m_1 \text{ tels que } m_0 = m_1 \\
% &\exists r_0,\ m_0 \in M^{r_0} \\
% &\exists r_1,\ m_1 \in M^{r_1} \\
% &\text{if } r_0 = r_1 \\
% &\quad \exists j_0, j_1,\ \text{prop tq } \text{prop}[r_0][j_0] = m_0,\ \text{prop}[r_0][j_1] = m_1 \quad j_0, j_1 \in \text{winnner}^{r_0} \\
% &\quad \text{if} j_0 \neq j_1 \\
% &\quad\quad \text{On admet qu'il est impossible pour un processus de soumettre le même msg qu'un autre} \\
% &\quad \text{if } j_0 = j_1 \\
% &\quad\quad j_0 \text{ a émis son } \text{PROVE}(r_0) \text{ valide 2 fois}\\
% &\quad\quad \text{Impossible si } j_0 \text{ correct} \\
% &\text{else} \\
% &\quad \exists j_0, j_1,\ \text{prop tq } \text{prop}[r_0][j_0] = m_0,\ \text{prop}[r_0][j_1] = m_1 \quad j_0, j_1 \in \text{winnner}^{r_0} \\
% &\quad \text{if } j_0 \neq j_1 \\
% &\quad\quad \text{On admet qu'il est impossible pour un processus de soumettre le même msg qu'un autre} \\
% &\quad \text{if } j_0 = j_1 \\
% &j_0 \text{ à emis et validé 2 fois le même messages a des rounds différents.}\\
% &\text{On admet que deux message identiques soumis a des rounds différents ne peuvent être identiques}
% \end{align*}
\subsubsection{Broadcast Validity}
$\exists j_0, m_0 \quad AB\_broadcast_{j_0}(m_0) \Rightarrow \forall j_1 \quad AB\_received_{j_1}(m_0)$ \\
Proof:
\begin{align*}
&\exists j_0, m_0 \quad AB\_broadcast_{j_0}(m_0) \\
&\forall j_1, \exists r_1 \quad RB\_deliver_{j_1}^{r_1}(m_0) \\
&\exists receieved : m_0 \in receieved_{j_1} \\
&\exists r_0 : RB\_deliver(PROP, r_0, m_0) & LOOP\\
&\exists prop: \text{prop}[r_0][j_0] = m_0 \\
&\text{if } \not\exists (j_0, PROVE(r_0)) \in \text{proves} \\
&\quad r_0 += 1 \\
&\quad \text{jump to LOOP} \\
&\text{else} \\
&\quad \exists \text{winner}, \text{winner}^{r_0} \ni j_0 \\
&\quad \exists M^{r_0} \ni (\text{prop}[r_0][j_0] = m_0) \\
&\quad \forall j_1, \quad AB\_deliver_{j_1}(m_0)
\end{align*}
\subsubsection*{AB receive width}
\[
\exists j_0, m_0 \quad AB\_deliver_{j_0}(m_0) \Rightarrow \forall j_1\ AB\_deliver_{j_1}
\]
Proof:
\begin{align*}
&\forall j_0, m_0\ AB\_deliver_{j_0}(m_0) \Rightarrow \exists j_1 \text{ correct }, AB\_broadcast(m_0) \\
&\exists j_0, m_0 \quad AB\_broadcast_{j_0}(m_0) \Rightarrow \forall j_1,\ AB\_deliver_{j_1}(m_0)
\end{align*}

View File

View File

@ -0,0 +1,258 @@
@article{saito_optimistic_2005,
title = {Optimistic {Replication}},
volume = {37},
url = {https://inria.hal.science/hal-01248208},
doi = {10.1145/1057977.1057980},
abstract = {Data replication is a key technology in distributed systems that enables higher availability and performance. This article surveys optimistic replication algorithms. They allow replica contents to diverge in the short term to support concurrent work practices and tolerate failures in low-quality communication links. The importance of such techniques is increasing as collaboration through wide-area and mobile networks becomes popular.Optimistic replication deploys algorithms not seen in traditional “pessimistic” systems. Instead of synchronous replica coordination, an optimistic algorithm propagates changes in the background, discovers conflicts after they happen, and reaches agreement on the final contents incrementally.We explore the solution space for optimistic replication algorithms. This article identifies key challenges facing optimistic replication systems---ordering operations, detecting and resolving conflicts, propagating changes efficiently, and bounding replica divergence---and provides a comprehensive survey of techniques developed for addressing these challenges.},
language = {en},
number = {1},
urldate = {2023-06-09},
journal = {ACM Computing Surveys},
author = {Saito, Yasushi and Shapiro, Marc},
year = {2005},
pages = {42},
file = {Saito et Shapiro - 2005 - Optimistic Replication.pdf:/home/amaury/Zotero/storage/4WJX5IAN/Saito et Shapiro - 2005 - Optimistic Replication.pdf:application/pdf},
}
@article{singh_zeno_2009,
title = {Zeno: {Eventually} {Consistent} {Byzantine}-{Fault} {Tolerance}},
abstract = {Many distributed services are hosted at large, shared, geographically diverse data centers, and they use replication to achieve high availability despite the unreachability of an entire data center. Recent events show that non-crash faults occur in these services and may lead to long outages. While Byzantine-Fault Tolerance (BFT) could be used to withstand these faults, current BFT protocols can become unavailable if a small fraction of their replicas are unreachable. This is because existing BFT protocols favor strong safety guarantees (consistency) over liveness (availability).},
language = {en},
author = {Singh, Atul and Fonseca, Pedro and Kuznetsov, Petr and Rodrigues, Rodrigo and Maniatis, Petros},
year = {2009},
file = {Singh et al. - Zeno Eventually Consistent Byzantine-Fault Tolera.pdf:/home/amaury/Zotero/storage/K6J2UEBK/Singh et al. - Zeno Eventually Consistent Byzantine-Fault Tolera.pdf:application/pdf},
}
@inproceedings{shakarami_refresh_2019,
title = {Refresh {Instead} of {Revoke} {Enhances} {Safety} and {Availability}: {A} {Formal} {Analysis}},
volume = {LNCS-11559},
shorttitle = {Refresh {Instead} of {Revoke} {Enhances} {Safety} and {Availability}},
url = {https://inria.hal.science/hal-02384596},
doi = {10.1007/978-3-030-22479-0_16},
abstract = {Due to inherent delays and performance costs, the decision point in a distributed multi-authority Attribute-Based Access Control (ABAC) system is exposed to the risk of relying on outdated attribute values and policy; which is the safety and consistency problem. This paper formally characterizes three increasingly strong levels of consistency to restrict this exposure. Notably, we recognize the concept of refreshing attribute values rather than simply checking the revocation status, as in traditional approaches. Refresh replaces an older value with a newer one, while revoke simply invalidates the old value. Our lowest consistency level starts from the highest level in prior revocation-based work by Lee and Winslett (LW). Our two higher levels utilize the concept of request time which is absent in LW. For each of our levels we formally show that using refresh instead of revocation provides added safety and availability.},
language = {en},
urldate = {2023-06-09},
publisher = {Springer International Publishing},
author = {Shakarami, Mehrnoosh and Sandhu, Ravi},
month = jul,
year = {2019},
pages = {301},
file = {Shakarami et Sandhu - 2019 - Refresh Instead of Revoke Enhances Safety and Avai.pdf:/home/amaury/Zotero/storage/XQNWKF7H/Shakarami et Sandhu - 2019 - Refresh Instead of Revoke Enhances Safety and Avai.pdf:application/pdf},
}
@article{misra_axioms_1986,
title = {Axioms for memory access in asynchronous hardware systems},
volume = {8},
issn = {0164-0925, 1558-4593},
url = {https://dl.acm.org/doi/10.1145/5001.5007},
doi = {10.1145/5001.5007},
abstract = {The problem of concurrent accesses to registers by asynchronous components is considered. A set of axioms about the values in a register during concurrent accesses is proposed. It is shown that if these axioms are met by a register, then concurrent accesses to it may be viewed as nonconcurrent, thus making it possible to analyze asynchronous algorithms without elaborate timing analysis of operations. These axioms are shown, in a certain sense, to be the weakest. Motivation for this work came from analyzing low-level hardware components in a VLSI chip which concurrently accesses a flip-flop.},
language = {en},
number = {1},
urldate = {2023-06-08},
journal = {ACM Transactions on Programming Languages and Systems},
author = {Misra, J.},
month = jan,
year = {1986},
pages = {142--153},
file = {Misra - 1986 - Axioms for memory access in asynchronous hardware .pdf:/home/amaury/Zotero/storage/KZP2774N/Misra - 1986 - Axioms for memory access in asynchronous hardware .pdf:application/pdf},
}
@article{lamport_interprocess_1986,
title = {On interprocess communication},
volume = {1},
issn = {1432-0452},
url = {https://doi.org/10.1007/BF01786228},
doi = {10.1007/BF01786228},
abstract = {Interprocess communication is studied without assuming any lower-level communication primitives. Three classes of communication registers are considered, and several constructions are given for implementing one class of register with a weaker class. The formalism developed in Part I is used in proving the correctness of these constructions.},
language = {en},
number = {2},
urldate = {2023-06-08},
journal = {Distributed Computing},
author = {Lamport, Leslie},
month = jun,
year = {1986},
keywords = {Communication Network, Computer Hardware, Computer System, Operating System, System Organization},
pages = {86--101},
file = {Lamport - 1986 - On interprocess communication.pdf:/home/amaury/Zotero/storage/XV7AEARN/Lamport - 1986 - On interprocess communication.pdf:application/pdf},
}
@book{lipton_pram_1988,
title = {{PRAM}: {A} {Scalable} {Shared} {Memory}},
shorttitle = {{PRAM}},
language = {en},
publisher = {Princeton University, Department of Computer Science},
author = {Lipton, Richard J. and Sandberg, Jonathan S.},
year = {1988},
note = {Google-Books-ID: 962epwAACAAJ},
file = {Lipton et Sandberg - 1988 - PRAM A Scalable Shared Memory.pdf:/home/amaury/Zotero/storage/3ZYT3WT4/Lipton et Sandberg - 1988 - PRAM A Scalable Shared Memory.pdf:application/pdf},
}
@inproceedings{hutto_slow_1990,
title = {Slow memory: weakening consistency to enhance concurrency in distributed shared memories},
shorttitle = {Slow memory},
url = {https://www.computer.org/csdl/proceedings-article/icdcs/1990/00089297/12OmNvSKNPr},
doi = {10.1109/ICDCS.1990.89297},
abstract = {The use of weakly consistent memories in distributed shared memory systems to combat unacceptable network delay and to allow such systems to scale is proposed. Proposed memory correctness conditions are surveyed, and how they are related by a weakness hierarchy is demonstrated. Multiversion and messaging interpretations of memory are introduced as means of systematically exploring the space of possible memories. Slow memory is presented as a memory that allows the effects of writes to propagate slowly through the system, eliminating the need for costly consistency maintenance protocols that limit concurrency. Slow memory processes a valuable locality property and supports a reduction from traditional atomic memory. Thus slow memory is as expressive as atomic memory. This expressiveness is demonstrated by two exclusion algorithms and a solution to M.J. Fischer and A. Michael's (1982) dictionary problem on slow memory.},
language = {English},
urldate = {2023-06-06},
publisher = {IEEE Computer Society},
author = {Hutto, P. W. and Ahamad, M.},
month = jan,
year = {1990},
pages = {302,303,304,305,306,307,308,309--302,303,304,305,306,307,308,309},
file = {Hutto et Ahamad - 1990 - Slow memory weakening consistency to enhance conc.pdf:/home/amaury/Téléchargements/Hutto et Ahamad - 1990 - Slow memory weakening consistency to enhance conc.pdf:application/pdf},
}
@article{lamport_how_1979,
title = {How to {Make} a {Multiprocessor} {Computer} {That} {Correctly} {Executes} {Multiprocess} {Programs}},
volume = {C-28},
issn = {1557-9956},
doi = {10.1109/TC.1979.1675439},
abstract = {Many large sequential computers execute operations in a different order than is specified by the program. A correct execution is achieved if the results produced are the same as would be produced by executing the program steps in order. For a multiprocessor computer, such a correct execution by each processor does not guarantee the correct execution of the entire program. Additional conditions are given which do guarantee that a computer correctly executes multiprocess programs.},
number = {9},
journal = {IEEE Transactions on Computers},
author = {{Lamport}},
month = sep,
year = {1979},
note = {Conference Name: IEEE Transactions on Computers},
keywords = {Computer design, concurrent computing, hardware correctness, multiprocessing, parallel processing},
pages = {690--691},
file = {IEEE Xplore Abstract Record:/home/amaury/Zotero/storage/IVGSSPNE/1675439.html:text/html;Lamport - 1979 - How to Make a Multiprocessor Computer That Correct.pdf:/home/amaury/Zotero/storage/GY8CWGUV/Lamport - 1979 - How to Make a Multiprocessor Computer That Correct.pdf:application/pdf},
}
@article{mosberger_memory_1993,
title = {Memory consistency models},
volume = {27},
issn = {0163-5980},
url = {https://dl.acm.org/doi/10.1145/160551.160553},
doi = {10.1145/160551.160553},
abstract = {This paper discusses memory consistency models and their influence on software in the context of parallel machines. In the first part we review previous work on memory consistency models. The second part discusses the issues that arise due to weakening memory consistency. We are especially interested in the influence that weakened consistency models have on language, compiler, and runtime system design. We conclude that tighter interaction between those parts and the memory system might improve performance considerably.},
language = {en},
number = {1},
urldate = {2023-06-06},
journal = {ACM SIGOPS Operating Systems Review},
author = {Mosberger, David},
month = jan,
year = {1993},
pages = {18--26},
file = {Mosberger - 1993 - Memory consistency models.pdf:/home/amaury/Zotero/storage/VF2ZNK6A/Mosberger - 1993 - Memory consistency models.pdf:application/pdf},
}
@incollection{goos_causal_1995,
address = {Berlin, Heidelberg},
title = {From causal consistency to sequential consistency in shared memory systems},
volume = {1026},
isbn = {978-3-540-60692-5 978-3-540-49263-4},
url = {http://link.springer.com/10.1007/3-540-60692-0_48},
language = {en},
urldate = {2023-06-06},
booktitle = {Foundations of {Software} {Technology} and {Theoretical} {Computer} {Science}},
publisher = {Springer Berlin Heidelberg},
author = {Raynal, Michel and Schiper, André},
editor = {Goos, Gerhard and Hartmanis, Juris and Leeuwen, Jan and Thiagarajan, P. S.},
year = {1995},
doi = {10.1007/3-540-60692-0_48},
note = {Series Title: Lecture Notes in Computer Science},
pages = {180--194},
file = {Raynal et Schiper - 1995 - From causal consistency to sequential consistency .pdf:/home/amaury/Zotero/storage/B8UNWUSA/Raynal et Schiper - 1995 - From causal consistency to sequential consistency .pdf:application/pdf},
}
@phdthesis{kumar_fault-tolerant_2019,
type = {{PhD} {Thesis}},
title = {Fault-{Tolerant} {Distributed} {Services} in {Message}-{Passing} {Systems}},
school = {Texas A\&M University},
author = {Kumar, Saptaparni},
year = {2019},
file = {Kumar - 2019 - Fault-Tolerant Distributed Services in Message-Pas.pdf:/home/amaury/Zotero/storage/Q9XK77W9/Kumar - 2019 - Fault-Tolerant Distributed Services in Message-Pas.pdf:application/pdf;Snapshot:/home/amaury/Zotero/storage/7JB26RAJ/1.html:text/html},
}
@article{somasekaram_high-availability_2022,
title = {High-{Availability} {Clusters}: {A} {Taxonomy}, {Survey}, and {Future} {Directions}},
volume = {187},
issn = {01641212},
shorttitle = {High-{Availability} {Clusters}},
url = {http://arxiv.org/abs/2109.15139},
doi = {10.1016/j.jss.2021.111208},
abstract = {The delivery of key services in domains ranging from finance and manufacturing to healthcare and transportation is underpinned by a rapidly growing number of mission-critical enterprise applications. Ensuring the continuity of these complex applications requires the use of software-managed infrastructures called high-availability clusters (HACs). HACs employ sophisticated techniques to monitor the health of key enterprise application layers and of the resources they use, and to seamlessly restart or relocate application components after failures. In this paper, we first describe the manifold uses of HACs to protect essential layers of a critical application and present the architecture of high availability clusters. We then propose a taxonomy that covers all key aspects of HACs -- deployment patterns, application areas, types of cluster, topology, cluster management, failure detection and recovery, consistency and integrity, and data synchronisation; and we use this taxonomy to provide a comprehensive survey of the end-to-end software solutions available for the HAC deployment of enterprise applications. Finally, we discuss the limitations and challenges of existing HAC solutions, and we identify opportunities for future research in the area.},
urldate = {2023-06-06},
journal = {Journal of Systems and Software},
author = {Somasekaram, Premathas and Calinescu, Radu and Buyya, Rajkumar},
month = may,
year = {2022},
note = {arXiv:2109.15139 [cs, eess]},
keywords = {Computer Science - Distributed, Parallel, and Cluster Computing, Computer Science - Networking and Internet Architecture, Electrical Engineering and Systems Science - Systems and Control},
pages = {111208},
file = {arXiv.org Snapshot:/home/amaury/Zotero/storage/B4KCP9BG/2109.html:text/html;Somasekaram et al. - 2022 - High-Availability Clusters A Taxonomy, Survey, an.pdf:/home/amaury/Zotero/storage/K3LQZLC8/Somasekaram et al. - 2022 - High-Availability Clusters A Taxonomy, Survey, an.pdf:application/pdf},
}
@book{perrin_concurrence_2017,
title = {Concurrence et cohérence dans les systèmes répartis},
isbn = {978-1-78405-295-9},
abstract = {La société moderne est de plus en plus dominée par la société virtuelle, le nombre dinternautes dans le monde ayant dépassé les trois milliards en 2015. A la différence de leurs homologues séquentiels, les systèmes répartis sont beaucoup plus difficiles à concevoir, et sont donc sujets à de nombreux problèmes.La cohérence séquentielle fournit la même vue globale à tous les utilisateurs, mais le confort d\&\#39;utilisation qu\&\#39;elle apporte est trop coûteux, voire impossible, à mettre en oeuvre à grande échelle. Concurrence et cohérence dans les systèmes répartis examine les meilleures façons de spécifier les objets que lon peut tout de même implémenter dans ces systèmes.Cet ouvrage explore la zone grise des systèmes répartis et dresse une carte des critères de cohérence faible, identifiant plusieurs familles et démontrant comment elles peuvent sintégrer dans un langage de programmation.},
language = {fr},
publisher = {ISTE Group},
author = {Perrin, Matthieu},
month = sep,
year = {2017},
note = {Google-Books-ID: 6DRlDwAAQBAJ},
file = {Perrin - 2017 - Concurrence et cohérence dans les systèmes réparti.pdf:/home/amaury/Téléchargements/Perrin - 2017 - Concurrence et cohérence dans les systèmes réparti.pdf:application/pdf},
}
@article{van_der_linde_practical_2020,
title = {Practical client-side replication: weak consistency semantics for insecure settings},
volume = {13},
issn = {2150-8097},
shorttitle = {Practical client-side replication},
url = {https://dl.acm.org/doi/10.14778/3407790.3407847},
doi = {10.14778/3407790.3407847},
abstract = {Client-side replication and direct client-to-client synchronization can be used to create highly available, low-latency interactive applications. Causal consistency, the strongest available consistency model under network partitions, is an attractive consistency model for these applications.},
language = {en},
number = {12},
urldate = {2023-06-06},
journal = {Proceedings of the VLDB Endowment},
author = {Van Der Linde, Albert and Leitão, João and Preguiça, Nuno},
month = aug,
year = {2020},
pages = {2590--2605},
file = {Van Der Linde et al. - 2020 - Practical client-side replication weak consistenc.pdf:/home/amaury/Zotero/storage/5TJ3SA56/Van Der Linde et al. - 2020 - Practical client-side replication weak consistenc.pdf:application/pdf},
}
@article{decandia_dynamo_2007,
title = {Dynamo: {Amazon}s {Highly} {Available} {Key}-value {Store}},
abstract = {Reliability at massive scale is one of the biggest challenges we face at Amazon.com, one of the largest e-commerce operations in the world; even the slightest outage has significant financial consequences and impacts customer trust. The Amazon.com platform, which provides services for many web sites worldwide, is implemented on top of an infrastructure of tens of thousands of servers and network components located in many datacenters around the world. At this scale, small and large components fail continuously and the way persistent state is managed in the face of these failures drives the reliability and scalability of the software systems.},
language = {en},
author = {DeCandia, Giuseppe and Hastorun, Deniz and Jampani, Madan and Kakulapati, Gunavardhan and Lakshman, Avinash and Pilchin, Alex and Sivasubramanian, Swaminathan and Vosshall, Peter and Vogels, Werner},
year = {2007},
file = {DeCandia et al. - Dynamo Amazons Highly Available Key-value Store.pdf:/home/amaury/Zotero/storage/KDHRPBGR/DeCandia et al. - Dynamo Amazons Highly Available Key-value Store.pdf:application/pdf},
}
@misc{misra_byzantine_2021,
title = {Byzantine {Fault} {Tolerant} {Causal} {Ordering}},
url = {http://arxiv.org/abs/2112.11337},
abstract = {Causal ordering in an asynchronous system has many applications in distributed computing, including in replicated databases and real-time collaborative software. Previous work in the area focused on ordering point-to-point messages in a fault-free setting, and on ordering broadcasts under various fault models. To the best of our knowledge, Byzantine faulttolerant causal ordering has not been attempted for point-topoint communication in an asynchronous setting. In this paper, we first show that existing algorithms for causal ordering of point-to-point communication fail under Byzantine faults. We then prove that it is impossible to causally order messages under point-to-point communication in an asynchronous system with one or more Byzantine failures. We then present two algorithms that can causally order messages under Byzantine failures, where the network provides an upper bound on the message transmission time. The proofs of correctness for these algorithms show that it is possible to achieve causal ordering for point-to-point communication under a stronger asynchrony model where the network provides an upper bound on message transmission time. We also give extensions of our two algorithms for Byzantine fault-tolerant causal ordering of multicasts.},
language = {en},
urldate = {2023-07-12},
publisher = {arXiv},
author = {Misra, Anshuman and Kshemkalyani, Ajay},
month = dec,
year = {2021},
note = {arXiv:2112.11337 [cs]},
keywords = {Computer Science - Distributed, Parallel, and Cluster Computing},
file = {Misra and Kshemkalyani - 2021 - Byzantine Fault Tolerant Causal Ordering.pdf:/home/amaury/Zotero/storage/P2R366US/Misra and Kshemkalyani - 2021 - Byzantine Fault Tolerant Causal Ordering.pdf:application/pdf},
}
@inproceedings{tseng_distributed_2019,
title = {Distributed {Causal} {Memory} in the {Presence} of {Byzantine} {Servers}},
doi = {10.1109/NCA.2019.8935059},
abstract = {We study distributed causal shared memory (or distributed read/write objects) in the client-server model over asynchronous message-passing networks in which some servers may suffer Byzantine failures. Since Ahamad et al. proposed causal memory in 1994, there have been abundant research on causal storage. Lately, there is a renewed interest in enforcing causal consistency in large-scale distributed storage systems (e.g., COPS, Eiger, Bolt-on). However, to the best of our knowledge, the fault-tolerance aspect of causal memory is not well studied, especially on the tight resilience bound. In our prior work, we showed that 2 f+1 servers is the tight bound to emulate crash-tolerant causal shared memory when up to f servers may crash. In this paper, we adopt a typical model considered in many prior works on Byzantine-tolerant storage algorithms and quorum systems. In the system, up to f servers may suffer Byzantine failures and any number of clients may crash. We constructively present an emulation algorithm for Byzantine causal memory using 3 f+1 servers. We also prove that 3 f+1 is necessary for tolerating up to f Byzantine servers. In other words, we show that 3 f+1 is a tight bound. For evaluation, we implement our algorithm in Golang and compare their performance with two state-of-the-art fault-tolerant algorithms that ensure atomicity in the Google Cloud Platform.},
booktitle = {2019 {IEEE} 18th {International} {Symposium} on {Network} {Computing} and {Applications} ({NCA})},
author = {Tseng, Lewis and Wang, Zezhi and Zhao, Yajie and Pan, Haochen},
month = sep,
year = {2019},
note = {ISSN: 2643-7929},
keywords = {asynchrony, Byzantine faults, causal memory, Computer crashes, Consensus protocol, distributed storage system, Emulation, evaluation, Fault tolerance, Fault tolerant systems, History, Servers, tight condition},
pages = {1--8},
file = {IEEE Xplore Abstract Record:/home/amaury/Zotero/storage/DDV34ULW/8935059.html:text/html},
}

View File

@ -0,0 +1,49 @@
# Enumération de la bibliographie étudié
## Cohérence
### Très pertinents
__perrin_concurrence_2017__, "Concurrence et cohérence dans les systèmes répartis":
Etat de l'art sur la cohérence dans les systèmes repartis. Présentation d'une approche de modélisation des histoires concurentes. Formaisations de différents critères de cohérences. Comparaison et "hierarchisation" des différents critères de cohérences.
### Intéressants mais redondants
__lamport_interprocess_1986__, "On interprocess communication":
Formalisation d'une cohérence séquentiel "single writer"
__misra_axioms_1986__, "Axioms for memory access in asynchronous hardware systems":
Exetnsion de lamport_interprocess_1986 dans une approche "multi-writer"
__lipton_pram_1988__, "{PRAM}: A Scalable Shared Memory":
Definition de la mémoire PRAM (cohérence pipeline).
## Cohérence en contextes byzantins
### Algorithmes
__van_der_linde_practical_2020__, "Practical client-side replication: weak consistency semantics for insecure settings":
Algorithme pour de la Cohérence causale BFT. (Reflexions sur des erreurs byzantines possible + algo et implé)
__kumar_fault-tolerant_2019__, "Fault-Tolerant Distributed Services in Message-Passing Systems":
Pas spécifiquement à propos des fautes byzantines dans la cohérence faible mais fait un panorama des differentes fautes non-byzantine possibles dans les systèmes distribués.
__singh_zeno_2009__, "Zeno: Eventually Consistent Byzantine-Fault Tolerance":
Algorithme pour de la convergence BFT. (Reflexions sur des erreurs byzanties possible + algo et implé)
__tseng_distributed_2019__, "Algo BFT pour cohérence causale (preuve + experiences)"
__misra_byzantine_2021__, "Preuve d'impossibilité de BFT dans un certain contexte pour de la cohérence causale + 2 algo pour de la cohérence causale BFT"4
## YJS
articles
- blog post: <https://blog.kevinjahns.de/are-crdts-suitable-for-shared-editing/>
- A string-wise CRDT algorithm for smart and large-scale collaborative editing systems <https://www.sciencedirect.com/science/article/abs/pii/S1474034616301811>
- Near Real-Time Peer-to-Peer Shared Editing on Extensible Data Types
## Complexity and specification of collaborative text editing
- Specification and space complexity of collaborative text editing Attiya et. all PODC/TCS
- Replicated data types: specification, verification, optimality Gosman et. al POPL (2014)

View File

@ -0,0 +1,26 @@
# Articles à traiter
- [x] Tame the Wild with Byzantine Linearizability (DISC 2021)
- [ ] Atomic Register Abstractions for Byzantine-Prone
Distributed Systems, Extended Version
<https://hal.science/hal-04213718/document>
- [ ] <https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-207.pdf?TB_iframe=true&width=370.8&height=658.8>
- [ ] [https://www.sciencedirect.com/science/article/abs/pii/S0167404821002601](https://www.sciencedirect.com/science/article/abs/pii/S0167404821002601/)
- [ ] @ARTICLE{9585170,
  author={Shore, Malcolm and Zeadally, Sherali and Keshariya, Astha},
  journal={Computer},
  title={Zero Trust: The What, How, Why, and When},
  year={2021},
  volume={54},
  number={11},
  pages={26-35},
  doi={10.1109/MC.2021.3090018}}
- [ ] @ARTICLE{9773102,
  author={Syed, Naeem Firdous and Shah, Syed W. and Shaghaghi, Arash and Anwar, Adnan and Baig, Zubair and Doss, Robin},
  journal={IEEE Access},
  title={Zero Trust Architecture (ZTA): A Comprehensive Survey},
  year={2022},
  volume={10},
  number={},
  pages={57143-57179},
  doi={10.1109/ACCESS.2022.3174679}}