| 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?, ispath(p + str ', ino, entries[str], dirs, files) |
⊦ ispath(p, n0, n1, dirs, files) ∧ ispath(q, n1, n2, dirs, files) → ispath(p + q, n0, n2, dirs, files)
Used simplifier rules: ⊦ ispath(str ', n, m, dirs, files) ↔ n ∈ dirs ∧ str ∈ dirs[n].entries ∧ (m ∈ dirs ∨ m ∈ files) ∧ dirs[n].entries[str] = m; (s)% ⊦ mkdir(m, md, m0, m1, entries).entries = entries; (s)%⊦ ino ∈ dirs ∧ dirs[ino] = mkdir(n0, md, n, n1, entries) ∧ str ∈ entries ∧ afs-cons(dirs, files) → (entries[str] ∈ files ↔ ¬ entries[str] ∈ dirs); (ss) Used terms: m, files, dirs, entries[str], ino, str ', p