| dirs[p_ino] = mkdir(m, md, n0, n1, entries), p_ino ∈ dirs ⊦ str ∈ (ino ∈ dirs ⊃ subdirs(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 ⊃ ∅ ++ str;∅) |
dirs[p_ino] = mkdir(m, md, n0, n1, entries), p_ino ∈ dirs ⊦ str ∈ (ino ∈ dirs ⊃ subdirs(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 ⊃ ∅ ++ str;∅), ino ∈ dirs
Used simplifier rules: ⊦ str ∈ strings ++ str0 ↔ str = str0 ∨ str ∈ strings; (s)% ⊦ (strings ++ str) ∪ strings0 = (strings ∪ strings0) ++ str; (s)% ⊦ strings ∪ ∅ = strings; (s)%una: ⊦ (strings ∪ strings0) ∪ strings1 = strings ∪ strings0 ∪ strings1; from specification set-union[dir-entries]%unc: ⊦ strings ∪ strings0 = strings0 ∪ strings; from specification set-union[dir-entries] Used formulas: ino ∈ dirs