| cf(r) = a × r0 ⊦ (o[_∃(λ ce. r => ce)] * R)[rs, cf, af] ↔ (o[r => a × r0] * R)[rs, cf, af] |
cf(r) = a × r0 ⊦ (∃ ce. (o[r => ce] * R)[rs, cf, af]) ↔ (o[r => a × r0] * R)[rs, cf, af]
Used simplifier rules: 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]%⊦ (_∃ oR0 * R)[rs, cf, af] ↔ (∃ ce, o0. (oR0(ce, o0) * R)[rs, cf, af]); (s)% ⊦ o0[_∃ oP0] = _∃(λ ce, o1. o0[oP0(ce)]); (s)