| dirs[m9] = mkdir(# entries, md, # links(m9, dirs), m4, entries), root[q + str '] = fnode(⌜m⌝ ), dirs[m1] = mkdir(m5, md0, m6, m7, entries0), files[m] = mkfile(m0, md1, # links(m, dirs), content), root.dir?, root[q].dir?, dom of < ino6, abs(root, ROOT_INO)(dirs), afs-cons(dirs, files), fids-cons(root, abs-files(files), abs-of(of)), ispath(path, ROOT_INO, m, dirs, files), ispath(q, ROOT_INO, m9, dirs, files), of-cons(of, dirs, files), pr(user, md1), px-parent(user, path, ROOT_INO, dirs, files), ROOT_INO ∈ dirs, m ∈ files, str ' ∈ root[q], m9 ∈ dirs, str ∈ entries, entries[str] ∈ files, psynced → asynced ⊦ # links(m, dirs) = count(⌜m⌝ , root.fids), # links(⌜m⌝ , root) = 0, links(⌜m⌝ , root) = ∅, m = entries[str], root[path].dir?, m ∈ dirs, entries[str] ∈ dirs |
⊦ p ∈ tree → abs(tree, ino0) = _∃(λ ino1. abs|(tree, ino0, p, ino1) * abs(tree[p], ino1))
⊦ abs(tree, ino)(dirs) ∧ fids-cons(tree, abs-files(files), ofh) ∧ afs-cons(dirs, files) → (p ∈ tree ↔ ispath(p, ino, dirs, files))
files[m] = mkfile(m0, md1, # links(m, dirs), content), dirs[m1] = mkdir(m5, md0, m6, m7, entries0), root[q + str '] = fnode(⌜m⌝ ), dirs[m9] = mkdir(# entries, md, # links(m9, dirs), m4, entries), root[q].dir?, root.dir?, dom of < ino6, (_∃(λ ino1. abs|(root, ROOT_INO, q, ino1) * abs(root[q], ino1)))(dirs), afs-cons(dirs, files), fids-cons(root, abs-files(files), abs-of(of)), ispath(q, ROOT_INO, m9, dirs, files), ispath(path, ROOT_INO, m, dirs, files), of-cons(of, dirs, files), pr(user, md1), px-parent(user, path, ROOT_INO, dirs, files), entries[str] ∈ files, str ∈ entries, m9 ∈ dirs, str ' ∈ root[q], m ∈ files, ROOT_INO ∈ dirs, q ∈ root, psynced → asynced ⊦ # links(⌜m⌝ , root) = 0, # links(m, dirs) = count(⌜m⌝ , root.fids), links(⌜m⌝ , root) = ∅, m = entries[str], root[path].dir?, entries[str] ∈ dirs, m ∈ dirs
Used simplifier rules: path-in-eq: ⊦ abs(tree, ino)(dirs) ∧ fids-cons(tree, abs-files(files), ofh) ∧ afs-cons(dirs, files) → (p ∈ tree ↔ ispath(p, ino, dirs, files));% ⊦ ispath(p, n, m, dirs, files) → ispath(p, n, dirs, files); (s) Used terms: q, ROOT_INO, root