| ⊦ _∃(λ r2. r0 => a × r2 * lls(r2, r1, [])) = r0 => a × r1 |
⊦ _∃(λ r. ⌜r = r1⌝ ∧ r0 => a × r) = r0 => a × r1
Used simplifier rules: lls-base: ⊦ lls(r0, r1, []) = (emp ∧ ⌜r0 = r1⌝ );%and-com: ⊦ (P0 ∧ P1) = (P1 ∧ P0); from specification heap-sep%and-ass: ⊦ ((P0 ∧ P1) ∧ P2) = (P0 ∧ P1 ∧ P2); from specification heap-sep%sep-com: ⊦ P0 * P1 = P1 * P0; from specification heap-sep%sep-ass: ⊦ (P0 * P1) * P2 = P0 * P1 * P2; from specification heap-sep% ⊦ emp * P = P; (s)% ⊦ (⌜bv⌝ ∧ P0) * P1 = (⌜bv⌝ ∧ P0 * P1); (s)