| fs[ri[inodekey(ino)]].directory, inodekey(ino) ∈ ri ⊦ abs-dirs(fs, ri -- dentrykey(ino, str)) = abs-dirs(fs, ri) [ino, 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) -- str) ], ino = 0 |
fs[ri[inodekey(ino)]].directory, fs[ri[inodekey(ino0)]].directory, inodekey(ino) ∈ ri, inodekey(ino0) ∈ ri ⊦ (ino0 = ino ⊃ 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) -- str) ;mkdir (fs[ri[inodekey(ino0)]].size, fs[ri[inodekey(ino0)]].meta, fs[ri[inodekey(ino0)]].nlink, fs[ri[inodekey(ino0)]].nsubdirs, abs-children(ino0, fs, ri)) ) = mkdir (fs[ri[inodekey(ino0)]].size, fs[ri[inodekey(ino0)]].meta, fs[ri[inodekey(ino0)]].nlink, fs[ri[inodekey(ino0)]].nsubdirs, abs-children(ino0, fs, ri -- dentrykey(ino, str))), ino = 0
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));% ⊦ dirs[ino, ad][ino0] = (ino0 = ino ∧ ino ∈ dirs ⊃ ad;dirs[ino0]); (s)%key ≠ key0 ⊦ (ri -- key0)[key] = ri[key]; (s)% ⊦ inodekey(m) ≠ dentrykey(m0, str); (s)% ⊦ key ∈ ri -- key0 ↔ key ≠ key0 ∧ key ∈ ri; (s)% ⊦ ino ∈ dirs[ino0, ad] ↔ ino ∈ dirs; (s)