Il est nécessaire pour exécuter les algorithmes d'utiliser une application de dans . signifie que est la -ème opération à être effectuée par sur . Il est nécessaire pour rendre les parcours de graphes les plus efficaces possible de pouvoir utiliser ce que j'appelle dans mon code inversedN, c'est-à-dire la réciproque de .
Comme n'est pas injective, on définit une application injective de dans
telle que
signifie que est la
-ème opération à être effectuée par sur .
Sa réciproque est une application
de
dans telle que
signifie que est la -ème opération à être effectuée par
sur , sachant que
.
Soit une tâche active , et un buffer
. Chaque opération de lecture vérifiant
est contrainte par une opération d'écriture telle que
;
devra s'exécuter avant . L'expression graphique
de ces contraintes forme l'ensemble
des
arcs
. Ce sont les contraintes de buffers vides. On peut retrouver à partir de avec
l'égalité
Soit une tâche active , et un buffer
. Pour toute opération d'écriture , si
et
, alors il existe une opération de
lecture sur la tâche passive
telle que
. L'expression graphique de ces contraintes forme
l'ensemble
des contraintes
de buffers pleins
. On peut de même retrouver à l'aide de l'égalité