| 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 |
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)))
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;%at-children: ⊦ dentrykey(ino, str) ∈ ri → abs-children(ino, fs, ri)[str] = fs[ri[dentrykey(ino, str)]].ino;% ⊦ str ∈ entries -- str0 ↔ str ≠ str0 ∧ str ∈ entries; (s)% ⊦ key ∈ ri -- key0 ↔ key ≠ key0 ∧ key ∈ ri; (s)% ⊦ str ≠ str0 → (entries -- str0)[str] = entries[str]; (s)% ⊦ dentrykey(m, str) = dentrykey(m0, str0) ↔ m = m0 ∧ str = str0; (ws)%key ≠ key0 ⊦ (ri -- key0)[key] = ri[key]; (s)