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