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