| # gndx1 = # lax1, ri[nodes(gstore ↓, ginval)[@(n, n0, n1)].key] = @(n, n0, n1), gstore[n] = groupblock(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0), inv(groupblock(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0)), n ∈ gstore, nodes(gstore ↓, ginval)[@(n, n0, n1)].key ∈ ri, @(n0, n1) ∈ prefixn(valid-group-nodes(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1), lax0 + @(n0, n1) ' + lax1), nodes(gstore ↓, ginval)[@(n, n0, n1)].key.data? → nodes(gstore ↓, ginval)[@(n, n0, n1)].data?, nodes(gstore ↓, ginval)[@(n, n0, n1)].key.dentry? → nodes(gstore ↓, ginval)[@(n, n0, n1)].dentry?, nodes(gstore ↓, ginval)[@(n, n0, n1)].key.inode? → nodes(gstore ↓, ginval)[@(n, n0, n1)].inode? ∧ nodes(gstore ↓, ginval)[@(n, n0, n1)].key.ino ≠ 0 ⊦ n ∈ ginval, nd.key ∈ ri ∧ ri[nd.key] = @(n, n0, n1) |
⊦ inv(gblock) ↔ # gblock.gndlist = # gblock.ladrlist ∧ inv-flashsize(gblock.gndlist, gblock.ladrlist) ∧ ¬ dups(gblock.ladrlist)
# groupblock(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0).gndlist = # groupblock(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0).ladrlist, # gndx1 = # lax1, gstore[n] = groupblock(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0), ri[nodes(gstore ↓, ginval)[@(n, n0, n1)].key] = @(n, n0, n1), inv-flashsize (groupblock(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0).gndlist, groupblock(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0).ladrlist), @(n0, n1) ∈ prefixn(valid-group-nodes(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1), lax0 + @(n0, n1) ' + lax1), nodes(gstore ↓, ginval)[@(n, n0, n1)].key ∈ ri, n ∈ gstore, nodes(gstore ↓, ginval)[@(n, n0, n1)].key.inode? → nodes(gstore ↓, ginval)[@(n, n0, n1)].inode? ∧ nodes(gstore ↓, ginval)[@(n, n0, n1)].key.ino ≠ 0, nodes(gstore ↓, ginval)[@(n, n0, n1)].key.dentry? → nodes(gstore ↓, ginval)[@(n, n0, n1)].dentry?, nodes(gstore ↓, ginval)[@(n, n0, n1)].key.data? → nodes(gstore ↓, ginval)[@(n, n0, n1)].data? ⊦ dups(groupblock(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0).ladrlist), n ∈ ginval, nd.key ∈ ri ∧ ri[nd.key] = @(n, n0, n1)
Used terms: groupblock (gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1, m0)