| dirs[n] = mkdir(m, md, m0, m1, entries) ⊦ (∃ m. ispath(str ' + q, n, m, dirs, files)) ↔ n ∈ dirs ∧ str ∈ entries ∧ ispath(q, entries[str], dirs, files) |
dirs[n] = mkdir(m, md, m0, m1, entries), ispath(q, entries[str], dirs, files), n ∈ dirs, str ∈ entries ⊦ ∃ m2. ispath(q, entries[str], m2, dirs, files)
Used simplifier rules: path-rec: ⊦ ispath(str ' + p, n, m, dirs, files) ↔ valid-dir-ino(n, dirs, files) ∧ str ∈ dirs[n].entries ∧ ispath(p, dirs[n].entries[str], m, dirs, files);%valid-dir-ino: ⊦ valid-dir-ino(ino, dirs, files) ↔ ino ∈ dirs;%isexpath: ⊦ ispath(p, n, m, dirs, files) → ispath(p, n, dirs, files);% ⊦ mkdir(m, md, m0, m1, entries).entries = entries; (s)%a: ⊦ (p + p0) + p1 = p + p0 + p1; from specification list[path]