| rs1 ∩ rs0 = ∅, R[rs0, cf, af], ls(r, x)(mk(rs1, cf)) ⊦ af(r) = o, r = null, r ∈ rs1 |
x = a + x0, rs1 ∩ rs0 = ∅, R[rs0, cf, af], ls(r, x)(mk(rs1, cf)) ⊦ af(r) = o, r = null, r ∈ rs1
Used simplifier rules: ls-base: ⊦ ls(r, []) = (emp ∧ ⌜r = null⌝ );%list freely generated by [], +;;% ⊦ ⌜false⌝ = false; (s)% ⊦ (false ∧ P) = false; (s)%and-ass: ⊦ ((P0 ∧ P1) ∧ P2) = (P0 ∧ P1 ∧ P2); from specification heap-sep%and-com: ⊦ (P0 ∧ P1) = (P1 ∧ P0); from specification heap-sep% ⊦ ¬ false(H); (s)