| fs[ri[key]] = truncnode(key0, m), key-cons(key, truncnode(key0, m)), key ∈ ri, ri[key] ∈ fs, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]) ⊦ |
⊦ key-cons(key, nd) ↔ nd.key = key ∧ (key.inode? → nd.inode? ∧ key.ino ≠ 0) ∧ (key.dentry? → nd.dentry?) ∧ (key.data? → nd.data?)
truncnode(key0, m).key = key, fs[ri[key]] = truncnode(key0, m), ri[key] ∈ fs, key ∈ ri, key.inode? → truncnode(key0, m).inode? ∧ key.ino ≠ 0, key.dentry? → truncnode(key0, m).dentry?, key.data? → truncnode(key0, m).data?, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]) ⊦
Used terms: truncnode(key0, m), key