| ri[inodekey(ino)] ∈ as, ∀ adr. ¬ adr ∈ range ri ∩ as ⊦ # as = 0, as = ∅, ri[inodekey(ino)] ∈ range ri ∩ 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))) |
ri[inodekey(ino)] ∈ as, ∀ adr. ¬ adr ∈ range ri ∩ as ⊦ # as = 0, as = ∅, ri[inodekey(ino)] ∈ ri, (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: int-c: ⊦ as ∩ as0 = as0 ∩ as; from specification set-union[node-store]%int-a: ⊦ (as ∩ as0) ∩ as1 = as ∩ as0 ∩ as1; from specification set-union[node-store]% ⊦ adr ∈ range ri ↔ adr ∈ ri; (s)% ⊦ adr ∈ as ∩ as0 ↔ adr ∈ as ∧ adr ∈ as0; (ws)