| # kx1 = # ax1, # kx = # ax0, fs[ri[key0]].key = key0, key0 ∈ ri, ri[key0] ∈ fs, kx1.toSet ⊆ dom ri, kx.toSet ⊆ dom ri, key0.data? → fs[ri[key0]].data?, key0.dentry? → fs[ri[key0]].dentry?, key0.inode? → fs[ri[key0]].inode? ∧ key0.ino ≠ 0 ⊦ dups(ax0), dups(ax1), dups(ax1 + ax0), dups(kx1 + kx), dups(kx1), dups(kx), key-cons(key0, fs[ri[key0]]), node-cons(key0, fs[ri[key0]]), adr ∈ ax0, adr ∈ ax1, key0 ∈ kx1, key0 ∈ kx |
⊦ key-cons(key, nd) ↔ nd.key = key ∧ (key.inode? → nd.inode? ∧ key.ino ≠ 0) ∧ (key.dentry? → nd.dentry?) ∧ (key.data? → nd.data?)
Used terms: fs[ri[key0]], key0