]> AND Private Git Repository - hdrcouchot.git/blob - annexesccg.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
preuve promela:debut de traduction
[hdrcouchot.git] / annexesccg.tex
1 Soit $\alpha\in\Bool$. 
2 On nomme $f^{\alpha}$ la fonction de $\Bool^{{\mathsf{N}}-1}$ 
3 dans lui-même définie pour 
4 chaque $x\in\Bool^{{\mathsf{N}}-1}$ par 
5 \[
6 f^{\alpha}(x)=(f_1(x,\alpha),\dots,f_{{\mathsf{N}}-1}(x,\alpha)).
7 \]
8 On nomme $\textsc{giu}(f)^\alpha$ le sous-graphe
9 de $\textsc{giu}(f)$ engendré par le sous-ensemble
10 $\Bool^{{\mathsf{N}}-1} \times \{\alpha\}$ de $\Bool^{\mathsf{N}}$.
11
12
13
14
15 Énonçons et prouvons tout d'abord les lemmes techniques suivants:
16
17 \begin{lemma}\label{lemma:subgraph}
18 $G(f^\alpha)$ est un sous-graphe de $G(f)$: chaque arc de $G(f^\alpha)$ est
19 un arc de $G(f)$. De plus si $G(f)$ n'a pas d'arc de ${\mathsf{N}}$ vers un autre 
20 sommet $i\neq {\mathsf{N}}$, alors on déduit
21 $G(f^\alpha)$ de $G(f)$ en supprimant le sommet ${\mathsf{N}}$ ainsi que tous les 
22 arcs dont ${\mathsf{N}}$ est soit l'extrémité, soit l'origine (et dans ce dernier  
23 cas, les arcs sont des boucles sur ${\mathsf{N}}$).
24 \end{lemma}
25
26 \begin{Proof}
27 Supposons que $G(f^{\alpha})$ possède un arc de  $j$ vers $i$ de signe 
28 $s$. Par définition, il existe un sommet $x\in\Bool^{{\mathsf{N}}-1}$ tel que
29 $f^{\alpha}_{ij}(x)=s$, et puisque 
30 $f^{\alpha}_{ij}(x)=f_{ij}(x,\alpha)$, on en déduit que $G(f)$ possède un arc
31 de $j$ à $i$ de signe $s$. Ceci prouve la première assertion. 
32 Pour démontrer la seconde, il suffit de  prouver que si
33 $G(f)$ a un arc de $j$ vers $i$ de signe $s$, avec $i,j\neq {\mathsf{N}}$, alors
34 $G(f^\alpha)$ contient aussi cet arc. Ainsi, supposons que $G(f)$ a un 
35 arc de $j$ vers $i$ de signe $s$, avec $i,j\neq {\mathsf{N}}$.
36 Alors, il existe
37 $x\in\Bool^{{\mathsf{N}}-1}$ et $\beta\in\Bool$ tels que
38 $f_{ij}(x,\beta)=s$. Si $f_{ij}(x,\beta)\neq f_{ij}(x,\alpha)$, alors
39 $f_i$ dépend du  ${\mathsf{N}}^{\textrm{ème}}$ composant, ce qui est en contradiction 
40 avec les hypothèses.
41 Ainsi $f_{ij}(x,\alpha)$ est égal à $s$.
42 On a donc aussi
43 $f^{\alpha}_{ij}(x)=s$. Ainsi $G(f^\alpha)$ possède un arc 
44 arc de $j$ vers $i$ de signe $s$.
45 \end{Proof}
46
47 \begin{lemma}\label{lemma:iso}
48 Les graphes $\textsc{giu}(f^\alpha)$ et $\textsc{giu}(f)^\alpha$ sont isomorphes.
49 \end{lemma}
50
51 \begin{Proof}
52 Soit $h$ la bijection de $\Bool^{{\mathsf{N}}-1}$ vers
53 $\Bool^{{\mathsf{N}}-1}\times \{\alpha\}$ définie par $h(x)=(x,\alpha)$ pour chaque
54 $x\in\Bool^{{\mathsf{N}}-1}$.
55 On voit facilement que $h$ permet de définir un isomorphisme
56 entre $\textsc{giu}(f^\alpha)$ et $\textsc{giu}(f)^\alpha$: 
57 $\textsc{giu}(f^\alpha)$ possède un arc de $x$ vers $y$ si et seulement si 
58 $\textsc{giu}(f)^\alpha$ a un  arc de $h(x)$ vers $h(y)$.
59 \end{Proof}
60
61
62 \begin{Proof}
63 du Théorème~\ref{th:Adrien}.
64 La preuve se fait par induction sur ${\mathsf{N}}$. 
65 Soit $f$ une fonction de $\Bool^{\mathsf{N}}$ dans lui-même et qui vérifie les hypothèses 
66 du théorème.
67 Si ${\mathsf{N}}=1$ la démonstration est élémentaire:
68 en raison du troisième point du théorème, $G(f)$ a une boucle négative;
69 ainsi $f(x)=\overline{x}$ et $\textsc{giu}(f)$ est un cycle de longueur 2.
70 On suppose donc que ${\mathsf{N}}>1$ et que le théorème est valide pour toutes les 
71 fonctions de $\Bool^{{\mathsf{N}}-1}$ dans lui-même. 
72 En raison du premier point du théorème, $G(f)$
73 contient au moins un sommet $i$ tel qu'il n'existe pas dans $G(f)$
74 d'arc de $i$ vers un autre sommet $j\neq i$.
75 Sans perte de généralité, on peut considérer que 
76 ce sommet est  ${\mathsf{N}}$.
77 Alors, d'après le lemme~\ref{lemma:subgraph}, 
78 $f^0$ et $f^1$ vérifient les conditions de l'hypothèse.
79 Alors, par hypothèse d'induction $\textsc{giu}(f^0)$ et
80 $\textsc{giu}(f^1)$ sont fortement connexes. 
81 Ainsi, d'après le lemme~\ref{lemma:iso}, 
82 $\textsc{giu}(f)^0$ et $\textsc{giu}(f)^1$ sont fortement 
83 connexes. 
84 Pour prouver que $\textsc{giu}(f)$ est fortement connexe, il suffit 
85 de prouver que $\textsc{giu}(f)$ contient un arc $x\to y$ avec 
86 $x_{\mathsf{N}}=0<y_{\mathsf{N}}$ et un arc $x\to y$ avec $x_{\mathsf{N}}=1>y_{\mathsf{N}}$. 
87 En d'autres mots, il suffit de prouver que:
88 \begin{equation}\tag{$*$}
89 \forall \alpha\in\Bool,~\exists x\in\Bool^{\mathsf{N}},\qquad  x_{\mathsf{N}}=\alpha\neq f_{\mathsf{N}}(x).
90 \end{equation}
91
92 On suppose tout d'abord que ${\mathsf{N}}$ a une boucle 
93 négative.
94 Alors, d'après la définition de 
95 $G(f)$, il existe $x\in\Bool^{\mathsf{N}}$ tel que $f_{{\mathsf{N}}{\mathsf{N}}}(x)<0$. 
96 Ainsi si $x_{\mathsf{N}}=0$, on a  $f_{\mathsf{N}}(x)>f_{\mathsf{N}}(\overline{x}^{\mathsf{N}})$, et donc 
97 $x_{\mathsf{N}}=0\neq f_{\mathsf{N}}(x)$ et
98 $\overline{x}^{\mathsf{N}}_{\mathsf{N}}=1\neq f_{\mathsf{N}}(\overline{x}^{\mathsf{N}})$; 
99 et si  $x_{\mathsf{N}}=1$, on a 
100 $f_{\mathsf{N}}(x)<f_{\mathsf{N}}(\overline{x}^{\mathsf{N}})$, donc $x_{\mathsf{N}}=1\neq f_{\mathsf{N}}(x)$ et $\overline{x}^{\mathsf{N}}_{\mathsf{N}}=0\neq
101 f_{\mathsf{N}}(\overline{x}^{\mathsf{N}})$. 
102 Dans les deux cas, la condition ($*$) est établie.
103
104 Supposons maintenant que  ${\mathsf{N}}$ n'a pas de boucle négative.
105 D'après la seconde hypothèse, 
106 ${\mathsf{N}}$ n'a pas de boucle, \emph{i.e.}, la valeur de $f_{\mathsf{N}}(x)$
107 ne dépend pas de la valeur de $x_{\mathsf{N}}$. 
108 D'après la troisième hypothèse, 
109 il existe $i\in \llbracket 1;{\mathsf{N}} \rrbracket$ tel que $G(f)$ a un arc de 
110 $i$ vers ${\mathsf{N}}$.
111 Ainsi, il existe $x \in \Bool^{\mathsf{N}}$ tel que $f_{{\mathsf{N}}i}(x) \neq 0$ et donc 
112 %$n$ n'est donc pas de degré zéro dans $G(f)$, \emph{i.e.} 
113 $f_{\mathsf{N}}$ n'est pas constante.
114 Ainsi, il existe $x,y\in \Bool^{\mathsf{N}}$ tel que
115 $f_{\mathsf{N}}(x)=1$ et $f_{\mathsf{N}}(y)=0$. 
116 Soit  $x'=(x_1,\dots,x_{{\mathsf{N}}-1},0)$ et
117 $y'=(y_1,\dots,y_{{\mathsf{N}}-1},1)$. 
118 Puisque la valeur de $f_{\mathsf{N}}(x)$
119 (resp. de $f_{\mathsf{N}}(y)$) ne dépend pas de la  valeur de  $x_{\mathsf{N}}$ (resp. de  $y_{\mathsf{N}}$),
120 on a $f_{\mathsf{N}}(x')=f_{\mathsf{N}}(x)=1\neq x'_{\mathsf{N}}$ (resp. $f_{\mathsf{N}}(y')=f_{\mathsf{N}}(y)=0\neq
121 y'_{\mathsf{N}}$). 
122 Ainsi la  condition ($*$) est établie, et le théorème est prouvé.
123 \end{Proof}
124
125
126