| fs[ri[dentrykey(m, str)]] = dentrynode(key, m1), fs[ri[inodekey(m1)]] = inodenode(key0, md, boolvar, m2, m3, m5), fs[ri[inodekey(m0)]].directory, fs[ri[inodekey(m)]].directory, ro.inodes?, fo.inodes?, fs[ri[inodekey(m)]].nsubdirs < (boolvar2 ⊃ 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(ri), ri-inj(fi), ubifs-cons(fs, ri, ro, fi, fo, log), ri[inodekey(m1)] ∈ fs, ri[dentrykey(m, str)] ∈ fs, inodekey(m) ∈ ri, inodekey(m0) ∈ ri, inodekey(m1) ∈ ri, dentrykey(m, str) ∈ ri, 1 ≤ fs[ri[inodekey(m)]].size, boolvar2 → 1 ≤ fs[ri[inodekey(m)]].nsubdirs, ¬ boolvar ∧ ¬ boolvar2 ∨ boolvar ∧ boolvar2 ∧ m4 = m5, fs[ri[inodekey(m0)]].nlink ≠ 0 ∨ m0 = ROOT_INO, fs[ri[inodekey(m)]].nlink ≠ 0 ∨ m = ROOT_INO ⊦ fs[ri[inodekey(m)]].size = 0, m0 = m, inodekey(m) ∈ ro, dentrykey(m0, str0) ∈ ri, inodekey(m0) ∈ ro |
Used simplifier rules: ⊦ m ≤ n ↔ ¬ n < m; (ss)% ⊦ m < 1 ↔ m = 0; (s)%lf-02: ⊦ m < n ∧ m = n0 → n0 < n; (forward) from specification nat-basic% ⊦ 0 < m ↔ m ≠ 0; (s)% ⊦ m < n → n ≠ 0; (s)%not-zero: 0 < n ⊦ (* n) ≤ m → m ≠ 0; (forward) from specification nat%fle-01: ⊦ m ≤ n ∧ n < n0 → m < n0; (forward) from specification nat% ⊦ 1 < m ↔ ¬(m = 0 ∨ m = 1); (s)% ⊦ ¬ m < 0; (s) Used formulas: 1 ≤ fs[ri[inodekey(m)]].nsubdirs