| dirs[m] = mkdir(n0, md, n, n1, entries), ispath(p, n, m, dirs, files) ⊦ (∃ m0. ispath(p, n, m0, dirs, files) ∧ ispath(str ', m0, entries[str], dirs, files)) ↔ m ∈ dirs ∧ str ∈ entries ∧ (entries[str] ∈ files ∨ entries[str] ∈ dirs) |
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)
Used simplifier rules: path-one: ⊦ ispath(str ', n, m, dirs, files) ↔ n ∈ dirs ∧ str ∈ dirs[n].entries ∧ (m ∈ dirs ∨ m ∈ files) ∧ dirs[n].entries[str] = m;