| (a[P] * a0[P0] * a1[P1] * R)[rs, f, g] ⊦ a = a1, a = a0, a0 = a1, (a[P] * true)[rs, f, g] ∧ (a0[P0] * a1[P1] * true)[rs, f, g] |
Used simplifier rules: ⊦ (R0 * R)[rs, f, g] → (true * R)[rs, f, g]; (s)%sep-com: ⊦ R0 * R1 = R1 * R0; from specification heap-sep[heap-aux]%sep-ass: ⊦ (R0 * R1) * R2 = R0 * R1 * R2; from specification heap-sep[heap-aux]