| x = a + x0 ⊦ lls(null, r, x) = (emp ∧ ⌜r = null⌝ ∧ ⌜x = []⌝ ) |
⊦ _∃(λ r0. false) = false
Used simplifier rules: lls-rec: ⊦ lls(r, r1, a ' + x) = _∃(λ r0. r => a × r0 * lls(r0, r1, x));%and-com: ⊦ (P0 ∧ P1) = (P1 ∧ P0); from specification heap-sep%and-ass: ⊦ ((P0 ∧ P1) ∧ P2) = (P0 ∧ P1 ∧ P2); from specification heap-sep% ⊦ (false ∧ P) = false; (s)% ⊦ a ' + x ≠ []; (s)%a: ⊦ (x + y) + z = x + y + z; from specification list%sep-com: ⊦ P0 * P1 = P1 * P0; from specification heap-sep%sep-ass: ⊦ (P0 * P1) * P2 = P0 * P1 * P2; from specification heap-sep% ⊦ false * P = false; (s)% ⊦ ⌜false⌝ = false; (s)% ⊦ null => ce = ⌜false⌝ ; (s)% ⊦ a + x = a ' + x; (s)