| rs1 ∩ rs0 = ∅, a[r => o][rs1, f, g], (a0[r => o0] * R)[rs0, f, g] ⊦ |
rs1 ∩ rs0 = ∅, (a0[r => o0] * R)[rs0, f, g], a[r => o][rs1, f, g], r ∈ rs1, r ∈ rs0 ⊦
Used simplifier rules: map-in0: ⊦ a[r => o][rs, f, g] → r ∈ rs;%map-in: ⊦ (a[r => o] * R)[rs, f, g] → r ∈ rs;%sep-ass: ⊦ (R0 * R1) * R2 = R0 * R1 * R2; from specification heap-sep[heap-aux]%sep-com: ⊦ R0 * R1 = R1 * R0; from specification heap-sep[heap-aux] Used formulas: r ∈ rs1 ∧ r ∈ rs0