| fs[ri[inodekey(ino0)]].directory, fs[ri[inodekey(ino)]].directory, inodekey(ino0) ∈ ri, inodekey(ino) ∈ ri ⊦ ino = 0, ino0 = ino, 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))) |
fs[ri[inodekey(ino)]].directory, fs[ri[inodekey(ino0)]].directory, inodekey(ino) ∈ ri, inodekey(ino0) ∈ ri ⊦ ino = 0, ino0 = ino, (dentrykey(ino0, str0) ∈ ri → dentrykey(ino0, str0) ≠ dentrykey(ino, str)) ∧ ( dentrykey(ino0, str0) ≠ dentrykey(ino, str) ∧ dentrykey(ino0, str0) ∈ ri → abs-children(ino0, fs, ri -- dentrykey(ino, str))[str0] = fs[ri[dentrykey(ino0, str0)]].ino)
Used simplifier rules: D-inj: ⊦ mkdir(n0, md0, m0, m1, entries0) = mkdir(n1, md1, m2, m3, entries1) ↔ ¬(md0 ≠ md1 ∨ n0 ≠ n1 ∨ m0 ≠ m2 ∨ m1 ≠ m3 ∨ entries0 ≠ entries1);%C-ext: ⊦ entries = abs-children(ino, fs, ri) ↔ (∀ str. (str ∈ entries ↔ dentrykey(ino, str) ∈ ri) ∧ ( str ∈ entries → entries[str] = fs[ri[dentrykey(ino, str)]].ino));%in-children: ⊦ str ∈ abs-children(ino, fs, ri) ↔ dentrykey(ino, str) ∈ ri;% ⊦ key ∈ ri -- key0 ↔ key ≠ key0 ∧ key ∈ ri; (s)