| ⊦ RG-restr(Init, Inv, R1, G1, Pre1, Post1, Runs1, R2, G2, Pre2, Post2, Runs2) ↔ (∀ s, s0. (G1(s, s0) → R2(s, s0)) ∧ (G2(s, s0) → R1(s, s0)) ∧ (Pre1(s) ∧ R1(s, s0) → Pre1(s0)) ∧ (Pre2(s) ∧ R2(s, s0) → Pre2(s0)) ∧ (Post1(s) ∧ R1(s, s0) → Post1(s0)) ∧ (Post2(s) ∧ R2(s, s0) → Post2(s0))) ∧ (∀ s, s0, s1. (R1(s, s0) ∧ R1(s0, s1) → R1(s, s1)) ∧ (R2(s, s0) ∧ R2(s0, s1) → R2(s, s1))) ∧ (∀ s. (∃ s. Init(s)) ∧ (Init(s) → Pre1(s) ∧ Pre2(s) ∧ Inv(s)) ∧ R1(s, s) ∧ R2(s, s) ∧ (Inv(s) → Runs1(s) ∨ Runs2(s)) ∧ (Post1(s) → Runs2(s)) ∧ (Post2(s) → Runs1(s))) |