| fs[ri[inodekey(m)]].nlink = 0 ∧ m ≠ ROOT_INO ↔ inodekey(m) ∈ ro, ro.inodes?, fo.inodes?, file-node-cons(fs, ri), log-cons(log, fs), orphans-cons(fs, ri, ro), replay-cons-strong(fs, ri, ro, fi, fo, log), ri-inj(ri), ri-inj(fi), ubifs-cons(fs, ri, ro, fi, fo, log), inodekey(m) ∈ ri, buf-opt.some? → # buf-opt.buf = VFS_PAGE_SIZE ⊦ fs[ri[inodekey(m)]].directory, ((fs[ri[inodekey(m)]].inode? ∧ ri[inodekey(m)] ∈ fs ∧ inodekey(m) ∈ ri) ∧ fs[ri[inodekey(m)]].inode? ∧ ri[inodekey(m)] ∈ fs ∧ inodekey(m) ∈ ri) ∧ ( VFS_PAGE_SIZE ≠ 0 ∧ (fs[ri[inodekey(m)]].inode? ∧ ri[inodekey(m)] ∈ fs ∧ inodekey(m) ∈ ri) ∧ fs[ri[inodekey(m)]].inode? ∧ ri[inodekey(m)] ∈ fs ∧ inodekey(m) ∈ ri) ∧ ((fs[ri[inodekey(m)]].inode? ∧ ri[inodekey(m)] ∈ fs ∧ inodekey(m) ∈ ri) ∧ fs[ri[inodekey(m)]].inode? ∧ ri[inodekey(m)] ∈ fs ∧ inodekey(m) ∈ ri) ∧ (fs[ri[inodekey(m)]].inode? ∧ ri[inodekey(m)] ∈ fs ∧ inodekey(m) ∈ ri) ∧ fs[ri[inodekey(m)]].inode? ∧ ri[inodekey(m)] ∈ fs ∧ inodekey(m) ∈ ri |
Used simplifier rules: inode-ubifs-cons: ⊦ inodekey(ino) ∈ ri ∧ ri[inodekey(ino)] ∈ fs ∧ ubifs-cons(fs, ri, ro, fi, fo, log) → fs[ri[inodekey(ino)]].inode?;% ⊦ VFS_PAGE_SIZE ≠ 0; (s)% ⊦ key ∈ ri ∧ ubifs-cons(fs, ri, ro, fi, fo, log) → ri[key] ∈ fs; (ss)