| ⊦ (_∃(λ x. (⌜n - # x = 0⌝ ∧ ls(r, x)) ∧ ⌜# x ≤ n⌝ ))(H) ↔ (_∃(λ x. ls(r, x) ∧ ⌜n = # x⌝ ))(H), r = null |
⊦ (∃ x. n = # x ∧ ls(r, x)(H)) ↔ (∃ x. ls(r, x)(H) ∧ n = # x), r = null
Used simplifier rules: ex: ⊦ (_∃ xP)(H) ↔ (∃ x. xP(x)(H));% ⊦ m ≤ m; (s)% ⊦ m ≤ n → (n - m = 0 ↔ n = m); (s)%and-com: ⊦ (P0 ∧ P1) = (P1 ∧ P0); from specification heap-sep%and-ass: ⊦ ((P0 ∧ P1) ∧ P2) = (P0 ∧ P1 ∧ P2); from specification heap-sep% ⊦ ⌜bv⌝ (H) ↔ bv; (s)% ⊦ ((P0 ∧ P1))(H) ↔ P0(H) ∧ P1(H); (s)