Le terme «vraie concurrence» apparaît dans l'étude théorique du calcul simultané et parallèle. Il contraste avec l'entrelacement de la concurrence. La véritable concurrence est une concurrence qui ne peut pas être réduite à l'entrelacement. La concurrence est entrelacée si à chaque étape du calcul, une seule action de calcul atomique (par exemple un échange de messages entre l'expéditeur et le récepteur) peut avoir lieu. La simultanéité est vraie si plusieurs actions atomiques de ce type ont lieu au cours d'une même étape.
La manière la plus simple de distinguer les deux est d'examiner la règle de composition parallèle. Dans un cadre basé sur l'entrelacement, cela ressemblerait à ceci:
P→P′P|Q→P′|Q
Cette règle impose qu'un seul processus dans une composition parallèle puisse exécuter une action atomique. Pour une véritable simultanéité, une règle comme la suivante serait plus appropriée.
P→P′Q→Q′P|Q→P′|Q′
Cette règle permet aux deux participants d'une composition parallèle d'exécuter des actions atomiques.
Pourquoi serait-on intéressé par la concurrence entrelacée, alors que la théorie de la concurrence est vraiment l'étude de systèmes qui exécutent des étapes de calcul en parallèle? La réponse est, et c'est une excellente idée, que pour les formes simples de message passant la simultanéité, la vraie simultanéité et la simultanéité basée sur l'entrelacement ne sont pas contextuellement distinguables. En d'autres termes, la concurrence entrelacée se comporte comme une véritable concurrence pour les observateurs. L'entrelacement est une bonne décomposition de la véritable concurrence. Comme l'entrelacement est plus facile à gérer dans les épreuves, les gens étudient souvent uniquement la concurrence basée sur l'entrelacement plus simple (par exemple CCS etπ-calculi). Cependant, cette simplicité disparaît pour le calcul simultané avec des formes d'observation plus riches (par exemple le calcul temporisé): la différence entre la concurrence réelle et la concurrence entrelacée devient observable.
Les équivalences standard comme les bisimulations et les traces ont les mêmes définitions pour une concurrence réelle et entrelacée. Mais ils peuvent ou non assimiler différents processus, selon le calcul sous-jacent.
Permettez-moi de donner une explication informelle de la raison pour laquelle l'entrelacement et l'interaction vraiment simultanée sont indiscernables dans les calculs de processus simples. Le paramètre est un calcul de type CCS ou . Disons que nous avons un programmeπ
P=x¯¯¯ | y¯¯¯ | x.y.a¯¯¯ | y.b¯¯
Ensuite, nous avons la réduction vraiment simultanée suivante:
Cette étape de réduction peut être mise en correspondance par les étapes entrelacées suivantes:
La seule différence entre les deux est que le premier fait un pas, tandis que les deux derniers. Mais les calculs simples ne peuvent pas détecter le nombre d'étapes utilisées pour atteindre un processus.
P→y.a¯¯¯ | b¯¯
P→→x¯¯¯ | x.y.a¯¯¯ | b¯¯y.a¯¯¯ | b¯¯
Dans le même temps, a la deuxième séquence de réduction entrelacée suivante:
Mais il s'agit également d'une séquence de réduction dans un paramètre véritablement simultané, tant que la véritable concurrence n'est pas forcée (c'est-à-dire les exécutions entrelacées sont autorisées même s'il existe un potentiel pour plus d'une interaction à la fois).P
P→→y¯¯¯ | y.a¯¯¯ | y.b¯¯a¯¯¯ | y.b¯¯