| # gndx1 = # lax1, # gndx0 = # lax0, 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(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1), @(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(lax1), dups(lax0), dups(lax0 + lax1), @(n0, n1) ∈ lax1, @(n0, n1) ∈ lax0, n ∈ ginval, nd.key ∈ ri ∧ ri[nd.key] = @(n, n0, n1) |
# gndx0 = # lax0, # 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-flashsize(gndx0 + mkgnode(nd, m, boolvar, boolvar0) ' + gndx1, lax0 + @(n0, n1) ' + lax1), 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) ⊦ dups(lax0 + lax1), dups(lax0), dups(lax1), n ∈ ginval, @(n0, n1) ∈ lax0, @(n0, n1) ∈ lax1, nd.key ∈ ri ∧ ri[nd.key] = @(n, n0, n1)