| range ri ∩ as = ∅, ri[inodekey(ino)] ∈ 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))) |
range ri ∩ as = ∅, ri[inodekey(ino)] ∈ as ⊦ # as = 0, as = ∅, (inodekey(ino) ∈ ri → (fs[ri[inodekey(ino)]].directory ↔ (∅)[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 ((∅)[ri[inodekey(ino)]].size, (∅)[ri[inodekey(ino)]].meta, (∅)[ri[inodekey(ino)]].nlink, (∅)[ri[inodekey(ino)]].nsubdirs, abs-children(ino, fs \ as, ri)))
Used simplifier rules: size-zero-01: ⊦ as ≠ ∅ → # as ≠ 0; (forward) from specification set-basic[node-store]%ne-01: ⊦ adr ∈ as → as ≠ ∅; (forward) from specification set-basic[node-store]% ⊦ adr ∈ as → (fs \ as)[adr] = (∅)[adr]; (s)