| dirs[m] = mkdir(n0, md, n, n1, entries), ispath(p, n, m, dirs, files) ⊦ (∃ m0. ispath(p, n, m0, dirs, files) ∧ m0 ∈ dirs ∧ str ∈ dirs[m0].entries ∧ (entries[str] ∈ dirs ∨ entries[str] ∈ files) ∧ dirs[m0].entries[str] = entries[str]) ↔ m ∈ dirs ∧ str ∈ entries ∧ (entries[str] ∈ files ∨ entries[str] ∈ dirs) |
dirs[m] = mkdir(n0, md, n, n1, entries), ispath(p, n, m, dirs, files), m ∈ dirs, str ∈ entries, entries[str] ∈ files ∨ entries[str] ∈ dirs ⊦ ∃ m0. ispath(p, n, m0, dirs, files) ∧ m0 ∈ dirs ∧ str ∈ dirs[m0].entries ∧ (entries[str] ∈ dirs ∨ entries[str] ∈ files) ∧ dirs[m0].entries[str] = entries[str]
Used simplifier rules: path-inj: ⊦ ispath(p, n, m0, dirs, files) ∧ ispath(p, n, m1, dirs, files) → m0 = m1;% ⊦ mkdir(m, md, m0, m1, entries).entries = entries; (s)