| inv(st) ⊦ dom st ⊆ dom st ∧ (∀ n. n ∈ st ∧ n ∈ st → st[n].list ⊑ st[n].list ∧ st[n].ladrlist ⊑ st[n].ladrlist ∧ # st[n].list = # st[n].ladrlist ∧ # st[n].list = # st[n].ladrlist) |
n ∈ st, ∀ n. n ∈ st → # st[n].list = # st[n].ladrlist ∧ inv-flashsize(st[n].list, st[n].ladrlist) ∧ ¬ dups(st[n].ladrlist) ⊦ # st[n].list = # st[n].ladrlist
Used simplifier rules: inv-store: ⊦ inv(st) ↔ (∀ n. n ∈ st → inv(st[n]));%inv-block: ⊦ inv(ablock) ↔ # ablock.list = # ablock.ladrlist ∧ inv-flashsize(ablock.list, ablock.ladrlist) ∧ ¬ dups(ablock.ladrlist);% ⊦ lax ⊑ lax; (s)% ⊦ x ⊑ x; (s)% ⊦ ns ⊆ ns; (s)