| ri[nd.key] = @(m, m0, m1), ri[key0] = @(m, m0, m1), gstore[@(m, m0, m1)] = mkgnode(nd, m2, boolvar, boolvar0), key-cons(key0, nd), nd.key ∈ ri, key0 ∈ ri, @(m, m0, m1) ∈ gstore, nd.key.inode? → nd.inode? ∧ nd.key.ino ≠ 0, nd.key.dentry? → nd.dentry?, nd.key.data? → nd.data? ⊦ key0 = nd.key, m ∈ ginval |
⊦ key-cons(key, nd) ↔ nd.key = key ∧ (key.inode? → nd.inode? ∧ key.ino ≠ 0) ∧ (key.dentry? → nd.dentry?) ∧ (key.data? → nd.data?)
Used terms: nd, key0