| ((abs(tree, ino) * abs(sdt0, sdi) * D * ino0 => mkdir(# sdi + 1, md, m0, m1, sdi[str, ino])))(dirs), ispath(p0, ino, ino1, dirs, files), ino1 ∈ files, p0 ∈ tree, ∀ tree, ino0, D, dirs, ino1, files. ((abs(tree, ino0) * D))(dirs) ∧ ispath(p0, ino0, ino1, dirs, files) ∧ p0 ∈ tree ∧ ino1 ∈ files → tree[p0] = fnode(⌜ino1⌝ ) ∨ ino1 ∈ dirs ⊦ tree[p0] = fnode(⌜ino1⌝ ), ino1 ∈ dirs, str ∈ sdi, str ∈ sdt0 |
Used simplifier rules: sep-ass: ⊦ (D * D0) * D1 = D * D0 * D1; from specification heap-sep[dir-heap]%sep-com: ⊦ D * D0 = D0 * D; from specification heap-sep[dir-heap] Used terms: tree, ino, ino0 => mkdir(# sdi + 1, md, m0, m1, sdi[str, ino]) * D * abs(sdt0, sdi), dirs, ino1, files