| 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 → mkfile(fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, abs-content(ino, fs, ri)) = mkfile ((fs \ as)[ri[inodekey(ino)]].size, (fs \ as)[ri[inodekey(ino)]].meta, (fs \ as)[ri[inodekey(ino)]].nlink, abs-content(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 → mkfile(fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, abs-content(ino, fs, ri)) = mkfile((∅)[ri[inodekey(ino)]].size, (∅)[ri[inodekey(ino)]].meta, (∅)[ri[inodekey(ino)]].nlink, abs-content(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)