| ax.toSet = range ri | n, ri[key] = @(n, m0, m1), ri-cons(ri, fs), ∃ adr, ri0. ri = ri0[key, adr] ∧ ¬ key ∈ ri0 ⊦ ∃ adr. adr ∈ ax ∧ fs[adr].key = key |
ax.toSet = (range ri0 | n) ++ @(n, m0, m1), ri-cons(ri0[key, @(n, m0, m1)], fs) ⊦ key ∈ ri0, ∃ adr. adr ∈ ax ∧ fs[adr].key = key
Used simplifier rules: ⊦ (as ++ @(m0, m1, m2)) | m0 = (as | m0) ++ @(m0, m1, m2); (s)% ⊦ ¬ key ∈ ri → range ri[key, adr] = range ri ++ adr; (s)% ⊦ ri[key, adr][key] = adr; (s)