| fs[adr] = truncnode(key, m), ri0 = ri, fs[adr].trunc?, node-cons(key, fs[adr]), adr ∈ fs ⊦ ⟪aubifs_core_index_truncate#(key, m, fi, ro, fo, fs, log, boolvar0; ri)⟫ (ri = replay-one(adr, fs[adr], ri0)), fs[adr].data?, fs[adr].dentry?, fs[adr].inode?, adr ∈ ri |
fs[adr] = truncnode(inodekey(ino), m), ri0 = ri, adr ∈ fs, ¬ adr ∈ ri ⊦ ⟪aubifs_core_index_truncate#(inodekey(ino), m, fi, ro, fo, fs, log, boolvar0; ri)⟫ (ri = replay-one(adr, fs[adr], ri0))
Used simplifier rules: elim-inode: ⊦ key.inode? ↔ (∃ ino. key = inodekey(ino));% ⊦ ¬ truncnode(key, m).inode?; (s)% ⊦ ¬ truncnode(key, m).dentry?; (s)% ⊦ ¬ truncnode(key, m).data?; (s)% ⊦ node-cons(key0, truncnode(key1, n)) ↔ key0.inode?; (s)% ⊦ truncnode(key, m).trunc?; (s)