| dirs[p_ino] = mkdir(m, md, n0, n1, entries), p_ino ∈ dirs ⊦ str ∈ (str ∈ entries ∧ entries[str] ∈ dirs ⊃ subdirs(p_ino, dirs) -- str;subdirs(p_ino, dirs)) ↔ str ∈ subdirs(p_ino, dirs) \ (str ∈ entries ∧ entries[str] ∈ dirs ⊃ ∅ ++ str;∅), ino ∈ dirs |
dirs[p_ino] = mkdir(m, md, n0, n1, entries), p_ino ∈ dirs, str ∈ (str ∈ entries ∧ entries[str] ∈ dirs ⊃ subdirs(p_ino, dirs) -- str;subdirs(p_ino, dirs)) ⊦ ino ∈ dirs, str ∈ subdirs(p_ino, dirs) \ (str ∈ entries ∧ entries[str] ∈ dirs ⊃ ∅ ++ str;∅)
Used simplifier rules: subdirs: ⊦ str ∈ subdirs(ino, dirs) ↔ ino ∈ dirs ∧ str ∈ dirs[ino].entries ∧ dirs[ino].entries[str] ∈ dirs;% ⊦ str ∈ strings \ strings0 ↔ str ∈ strings ∧ ¬ str ∈ strings0; (ws)% ⊦ mkdir(m, md, m0, m1, entries).entries = entries; (s)% ⊦ str ∈ ∅ ++ str0 ↔ str = str0; (s)