| ispath(p0, dirs0[n0].entries[name], n1, dirs0, files), n0 ∈ dirs0, name ∈ dirs0[n0].entries, dirs0 ⊥ dirs1, ∀ n0, n1, dirs0, files, dirs1. ispath(p0, n0, n1, dirs0, files) ∧ dirs0 ⊥ dirs1 → ispath(p0, n0, n1, dirs0 ∪ dirs1, files) ⊦ ispath(p0, dirs0[n0].entries[name], n1, dirs0 ∪ dirs1, files) |
dirs0[n0] = mkdir(m, md, m0, m1, entries), ispath(p0, entries[name], n1, dirs0, files), name ∈ entries, n0 ∈ dirs0, dirs0 ⊥ dirs1, ∀ n0, n1, dirs0, files, dirs1. ispath(p0, n0, n1, dirs0, files) ∧ dirs0 ⊥ dirs1 → ispath(p0, n0, n1, dirs0 ∪ dirs1, files) ⊦ ispath(p0, entries[name], n1, dirs0 ∪ dirs1, files)
Used simplifier rules: ⊦ ( ((m = ad.size ∧ md = ad.meta) ∧ m0 = ad.nlink) ∧ m1 = ad.nsubdirs) ∧ entries = ad.entries ↔ ad = mkdir(m, md, m0, m1, entries); (elim) Used terms: dirs0[n0], md, m, entries