Termin „prawdziwa współbieżność” pojawia się w teoretycznym badaniu obliczeń współbieżnych i równoległych. Jest to przeciwieństwo współbieżności przeplatania. Prawdziwa współbieżność to współbieżność, której nie można sprowadzić do przeplatania. Współbieżność jest przeplatana, jeżeli na każdym etapie obliczeń może mieć miejsce tylko jedna akcja obliczeń atomowych (np. Wymiana wiadomości między nadawcą a odbiorcą). Współbieżność jest prawdą, jeśli więcej niż jedno takie działanie atomowe ma miejsce w jednym kroku.
Najprostszym sposobem na rozróżnienie obu jest przyjrzenie się regule dla kompozycji równoległej. W ustawieniach opartych na przeplataniu wyglądałoby to mniej więcej tak:
P→P′P|Q→P′|Q
Ta reguła wymusza, że tylko jeden proces w składzie równoległym może wykonać akcję atomową. W przypadku prawdziwej współbieżności bardziej odpowiednia byłaby reguła taka jak poniżej.
P→P′Q→Q′P|Q→P′|Q′
Ta reguła pozwala obu uczestnikom w równoległym składzie wykonywać działania atomowe.
Dlaczego ktoś interesuje się przeplataną współbieżnością, skoro teoria współbieżności jest tak naprawdę badaniem systemów, które wykonują kroki obliczeniowe równolegle? Odpowiedź brzmi: i to świetny wgląd, że w przypadku prostych form współbieżności przekazywania wiadomości, prawdziwa współbieżność i współbieżność oparta na przeplataniu nie są rozróżnialne kontekstowo. Innymi słowy, przeplatana współbieżność zachowuje się jak prawdziwa współbieżność, o ile obserwatorzy mogą to zobaczyć. Przeplatanie to dobry rozkład prawdziwej współbieżności. Ponieważ przeplatanie jest łatwiejsze w dowodach, ludzie często studiują tylko prostszą współbieżność opartą na przeplataniu (np. CCS iπ-calculi). Jednak ta prostota znika w obliczeniach współbieżnych z bogatszymi formami obserwacji (np. Obliczenia czasowe): różnica między prawdziwą współbieżnością a współbieżnością przeplataną staje się zauważalna.
Standardowe równoważniki, takie jak bisimulacje i ślady, mają te same definicje dla współbieżności opartej na prawdzie i przeplataniu. Ale mogą, ale nie muszą równać różnych procesów, w zależności od rachunku różniczkowego.
Pozwólcie, że przedstawię nieformalne wyjaśnienie, dlaczego przeplatanie i prawdziwie współbieżne interakcje są nierozróżnialne w prostych obliczeniach procesowych. Ustawienie jest rachunkiem podobnym do CCS lub . Powiedzmy, że mamy programπ
P=x¯¯¯ | y¯¯¯ | x.y.a¯¯¯ | y.b¯¯
Następnie mamy następującą naprawdę równoczesną redukcję:
Ten krok redukcji można uzupełnić następującymi przeplatanymi krokami:
Jedyna różnica między nimi polega na tym, że pierwszy robi jeden krok, a drugi dwa. Ale proste kalkulatory nie mogą wykryć liczby kroków użytych do osiągnięcia procesu.
P→y.a¯¯¯ | b¯¯
P→→x¯¯¯ | x.y.a¯¯¯ | b¯¯y.a¯¯¯ | b¯¯
Jednocześnie ma następującą drugą przeplecioną sekwencję redukcji:
Ale jest to również sekwencja redukcji w naprawdę współbieżnych ustawieniach, o ile prawdziwa współbieżność nie jest wymuszona (tj. wykonania z przeplotem są dozwolone, nawet jeśli istnieje możliwość więcej niż jednej interakcji na raz).P
P→→y¯¯¯ | y.a¯¯¯ | y.b¯¯a¯¯¯ | y.b¯¯