| ¬ fs[ri[inodekey(fs[ri[dentrykey(m, str0)]].ino)]].directory ↔ ¬ boolvar, fs[ri[dentrykey(m, str)]] = dentrynode(key, m0), fs[ri[inodekey(m0)]] = inodenode(key0, md, boolvar, m1, m2, m4), fs[ri[inodekey(m)]].directory, fs[ri[inodekey(m0)]].inode?, fo.inodes?, ro.inodes?, fs[ri[inodekey(m)]].nsubdirs < (boolvar3 ⊃ 1;0), 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(fi), ri-inj(ri), ubifs-cons(fs, ri, ro, fi, fo, log), dentrykey(m, str) ∈ ri, inodekey(m0) ∈ ri, dentrykey(m, str0) ∈ ri, inodekey(fs[ri[dentrykey(m, str0)]].ino) ∈ ri, inodekey(m) ∈ ri, ri[dentrykey(m, str)] ∈ fs, ri[inodekey(m0)] ∈ fs, 1 ≤ fs[ri[inodekey(m)]].size, boolvar3 → 1 ≤ fs[ri[inodekey(m)]].nsubdirs, fs[ri[inodekey(fs[ri[dentrykey(m, str0)]].ino)]].nlink = 1 → links(fs[ri[dentrykey(m, str0)]].ino, fs, ri) = ∅ ++ dentrykey(m, str0), fs[ri[inodekey(fs[ri[dentrykey(m, str0)]].ino)]].directory → dentrykeys(inodekey(fs[ri[dentrykey(m, str0)]].ino), ri) = ∅, fs[ri[inodekey(m)]].nlink ≠ 0 ∨ m = ROOT_INO, ¬ boolvar ∧ ¬ boolvar3 ∨ boolvar ∧ boolvar3 ∧ m3 = m4, ¬ boolvar ∧ ¬ boolvar2 ∨ fs[ri[inodekey(fs[ri[dentrykey(m, str0)]].ino)]].directory ∧ boolvar2 ∧ m6 = fs[ri[inodekey(fs[ri[dentrykey(m, str0)]].ino)]].size ⊦ fs[ri[dentrykey(m, str0)]].ino = ROOT_INO, fs[ri[inodekey(fs[ri[dentrykey(m, str0)]].ino)]].nlink = 0, fs[ri[inodekey(m)]].size = 0, mkdentry(str, m0) = mkdentry(str0, fs[ri[dentrykey(m, str0)]].ino), inodekey(m) ∈ ro |
¬ fs[ri[inodekey(fs[ri[dentrykey(m, str0)]].ino)]].directory ↔ ¬ boolvar, fs[ri[dentrykey(m, str)]] = dentrynode(key, m0), fs[ri[inodekey(m0)]] = inodenode(key0, md, boolvar, m1, m2, m4), fs[ri[inodekey(m)]].directory, fo.inodes?, ro.inodes?, fs[ri[inodekey(m)]].nsubdirs < (boolvar3 ⊃ 1;0), 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(fi), ri-inj(ri), ubifs-cons(fs, ri, ro, fi, fo, log), dentrykey(m, str) ∈ ri, inodekey(m0) ∈ ri, dentrykey(m, str0) ∈ ri, inodekey(fs[ri[dentrykey(m, str0)]].ino) ∈ ri, inodekey(m) ∈ ri, ri[dentrykey(m, str)] ∈ fs, ri[inodekey(m0)] ∈ fs, 1 ≤ fs[ri[inodekey(m)]].size, boolvar3 → 1 ≤ fs[ri[inodekey(m)]].nsubdirs, fs[ri[inodekey(fs[ri[dentrykey(m, str0)]].ino)]].nlink = 1 → links(fs[ri[dentrykey(m, str0)]].ino, fs, ri) = ∅ ++ dentrykey(m, str0), fs[ri[inodekey(fs[ri[dentrykey(m, str0)]].ino)]].directory → dentrykeys(inodekey(fs[ri[dentrykey(m, str0)]].ino), ri) = ∅, fs[ri[inodekey(m)]].nlink ≠ 0 ∨ m = ROOT_INO, ¬ boolvar ∧ ¬ boolvar3 ∨ boolvar ∧ boolvar3 ∧ m3 = m4, ¬ boolvar ∧ ¬ boolvar2 ∨ fs[ri[inodekey(fs[ri[dentrykey(m, str0)]].ino)]].directory ∧ boolvar2 ∧ m6 = fs[ri[inodekey(fs[ri[dentrykey(m, str0)]].ino)]].size ⊦ fs[ri[dentrykey(m, str0)]].ino = ROOT_INO, fs[ri[inodekey(fs[ri[dentrykey(m, str0)]].ino)]].nlink = 0, fs[ri[inodekey(m)]].size = 0, mkdentry(str, m0) = mkdentry(str0, fs[ri[dentrykey(m, str0)]].ino), inodekey(m) ∈ ro
Used simplifier rules: ⊦ inodenode(key, md, boolvar, m, m0, m1).inode?; (s)