| 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]]) ⊦ |
fs[ri[key0]] = truncnode(key0, m), key0 ∈ ri, ri[key0] ∈ fs, ∀ key. key ∈ ri → ri[key] ∈ fs ∧ key-cons(key, fs[ri[key]]) ⊦ key0.data?, key0.dentry?, key0.inode?
Used simplifier rules: ⊦ ¬ truncnode(key, m).inode?; (s)% ⊦ ¬ truncnode(key, m).dentry?; (s)% ⊦ ¬ truncnode(key, m).data?; (s)% ⊦ truncnode(key, m).key = key; (s)