Die Programme müssen auch hier in entsprechende logische Formeln übersetzt werden, wobei wiederum vorausgesetzt wird, dass die einzelnen Prozesse bereits nach der Methode zur Beschriftung sequentieller Programme beschriftet sind. Für das Gesamtprogramm wird zusätzlich folgende Erweiterung dieses Beschriftungsverfahrens eingeführt:
Ausgehend von einem parallelen Programm P der Form
P = cobeginP1 || P2 || ... || Pncoend sieht das entsprechende beschriftete Programm PL folgendermaßen aus:
PL = cobeginl1: P1Ll'1 || l2: P2Ll'2 || ... || ln: PnLl'ncoend
Die Vorgehensweise bei der anschließenden Übersetzung der parallelen Programme in Logik erster Ordnung erfolgt wiederum induktiv über die Struktur der Programme.
Zunächst beschreibt man die Startzustände des Programms P mit folgender Formel, wobei pre(V) eine Formel zur Beschreibung der entsprechenden initialen Variablenbelegungen ist:
S0(V,PC) ≡ pre(V) ∧ pc = m ∧ Λni=1 (pci = ⊥)
Für das Gesamtprogramm sieht die Übersetzungsprozedur dann folgendermaßen aus:
C(l, cobeginl1: P1Ll'1 || ... || ln: PnLl'ncoend, l') ist die Disjunktion der folgenden drei Formeln:
1. Initialisierung des Programms:
pc = l ∧ pc'1 = l1 ∧ ... ∧ pc'n = ln ∧ pc' = ⊥
2. Terminierung des Programms:
pc = ⊥ ∧ pc1 = l'1 ∧ ... ∧ pcn = l'n ∧ pc' = l' ∧ Λni=1 (pci = ⊥)
3. Ausführung des Programms entsprechend
der Interleaving-Semantik:
Λni=1 (C(li, Pi, l'i) ∧ same(V \ Vi) ∧ same(PC \ { pci }))
Für Prozesse mit gemeinsamen Variablen (¬ same(V \ Vi)) ist die Einführung weiterer Arten von Anweisungen nötig (siehe Behandlung gemeinsamer Variablen).