| dirs[m] = mkdir(# entries, md, # links(m, dirs), n1, entries), tree[p].dir?, abs(tree, ino)(dirs), afs-cons(dirs, files), fids-cons(tree, abs-files(files), ofh), ispath(p, ino, m, dirs, files), px-parent(user, p, ino, dirs, files), m ∈ dirs, str ∈ entries ⊦ entries[str] ∈ dirs ↔ tree[p + str '].dir? |
∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs, ∀ ino. ⌜ino⌝ ∈ tree.fids → ino ∈ files, ((abs(tree, ino) * D))(dirs), ispath(p, ino, ino0, dirs, files) ⊦ tree[p].dir? ↔ ino0 ∈ dirs
dirs[m] = mkdir(# entries, md, # links(m, dirs), n1, entries), tree[p].dir?, abs(tree, ino)(dirs), afs-cons(dirs, files), fids-cons(tree, abs-files(files), ofh), ispath(p, ino, m, dirs, files), px-parent(user, p, ino, dirs, files), str ∈ entries, m ∈ dirs ⊦ entries[str] ∈ dirs ↔ tree[p + str '].dir?, (∀ ino. ¬ ino ∈ files ∨ ¬ ino ∈ dirs) ∧ (∀ ino. ⌜ino⌝ ∈ tree.fids → ino ∈ files) ∧ ((abs(tree, ino) * emp))(dirs) ∧ ispath(p + str, ino, entries[str], dirs, files)
Used simplifier rules: ⊦ p + str = p + str '; (s) Used terms: files, dirs, tree, ino, emp, p + str, entries[str]