| range ri ∩ as = ∅ ⊦ abs-dirs(fs \ as, ri) = abs-dirs(fs, ri) |
range ri ∩ as = ∅ ⊦ (inodekey(ino) ∈ ri → (fs[ri[inodekey(ino)]].directory ↔ (fs \ as)[ri[inodekey(ino)]].directory)) ∧ ( inodekey(ino) ∈ ri ∧ fs[ri[inodekey(ino)]].directory → mkdir (fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, fs[ri[inodekey(ino)]].nsubdirs, abs-children(ino, fs, ri)) = mkdir ((fs \ as)[ri[inodekey(ino)]].size, (fs \ as)[ri[inodekey(ino)]].meta, (fs \ as)[ri[inodekey(ino)]].nlink, (fs \ as)[ri[inodekey(ino)]].nsubdirs, abs-children(ino, fs \ as, ri)))
Used simplifier rules: D-ext: ⊦ dirs = abs-dirs(fs, ri) ↔ (∀ ino. ( ino ∈ dirs ↔ inodekey(ino) ∈ ri ∧ fs[ri[inodekey(ino)]].directory) ∧ (ino ∈ dirs → dirs[ino] = abs-dir(ino, fs, ri)));%in-dirs: ⊦ ino ∈ abs-dirs(fs, ri) ↔ inodekey(ino) ∈ ri ∧ fs[ri[inodekey(ino)]].directory;%at-dirs: ⊦ inodekey(ino) ∈ ri ∧ fs[ri[inodekey(ino)]].directory → abs-dirs(fs, ri)[ino] = abs-dir(ino, fs, ri);%dir: ⊦ abs-dir(ino, fs, ri) = mkdir (fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, fs[ri[inodekey(ino)]].nsubdirs, abs-children(ino, fs, ri));