| # x = # lax, st[n] = mkblock(x, lax, m0), inv-flashsize(x, lax), n ∈ st ⊦ adr = @(n, m, m2), dups(lax), @(m, m2) ∈ lax, (adr ∈ st ∨ adr = @(n, m, m2) → adr ∈ nodes(st)[@(n, m, m2), a]) ∧ (adr ∈ st ∨ adr = @(n, m, m2) → nodes(st[n, mkblock(x + a ', lax + @(m, m2) ', m1)])[adr] = nodes(st)[@(n, m, m2), a][adr]) |
# x = # lax, st[n] = mkblock(x, lax, m0), inv-flashsize(x, lax), n ∈ st, adr ∈ st ⊦ nodes(st[n, mkblock(x + a ', lax + @(m, m2) ', m1)])[adr] = st[adr], adr = @(n, m, m2), dups(lax), @(m, m2) ∈ lax
Used simplifier rules: in-nodes: ⊦ adr ∈ nodes(st) ↔ adr ∈ st;%at-nodes: ⊦ adr ∈ st → nodes(st)[adr] = st[adr];% ⊦ adr ≠ adr0 → ast[adr0, a0][adr] = ast[adr]; (s)% ⊦ adr ≠ adr0 → (adr ∈ ast[adr0, a0] ↔ adr ∈ ast); (s)