| 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 ∈ entries ∧ entries[str] ∈ dirs ⊃ subdirs(p_ino, dirs) -- str;subdirs(p_ino, dirs)) = 0, (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;%size-zero: ⊦ # strings ≠ 0 → strings ≠ ∅; (forward) from specification set-basic[dir-entries]% ⊦ strings \ ∅ = strings; (s)% ⊦ strings -- str = ∅ ↔ strings = ∅ ∨ strings = ∅ ++ str; (ws)% ⊦ str ∈ strings -- str0 ↔ str ≠ str0 ∧ str ∈ strings; (s)