Algorithm 5. Identification and replacement of MPQSs.
| 1: procedure REWRITE(ρ) |
| 2: switch ρ do |
| 3: case ρ1 ∧ ρ2: |
| 4: return REWRITE(ρ1) “∧” REWRITE(ρ2) |
| 5: case ⫬ρ: return “⫬” REWRITE(ρ) |
| 6: case Xρ: return “X” REWRITE(ρ) |
| 7: case ρ1 U ρ2: |
| 8: return REWRITE(ρ1) “U” REWRITE(ρ2) |
| 9: case a ∈ AP: return “a” |
| 10: case Eϕ: |
| 11: // ρ = Eϕ is a MPQS. Replace ρ with an AP aρ. |
| 12: AP ← AP ∪{new aρ} |
| 13: Sat ← SATCTL*(ρ) |
| 14: for each s ∈ Sat do |
| 15: L(s) ← L(s) ∪ {aρ} |
| 16: end for |
| 17: return “aρ” |
| 18: end procedure |