| inodekey(ino) ∈ ri ⊦ ri[inodekey(ino)] = adr, fs[ri[inodekey(ino)]].directory, adr ∈ ri, fs[ri[inodekey(ino)]].nlink = fs[adr, truncnode(key, n)][ri[inodekey(ino)]].nlink ∧ fs[ri[inodekey(ino)]].meta = fs[adr, truncnode(key, n)][ri[inodekey(ino)]].meta ∧ fs[ri[inodekey(ino)]].size = fs[adr, truncnode(key, n)][ri[inodekey(ino)]].size ∧ abs-content(ino, fs, ri) = abs-content(ino, fs[adr, truncnode(key, n)], ri) |
inodekey(ino) ∈ ri, datakey(ino, n0) ∈ ri ⊦ fs[adr, truncnode(key, n)][ri[datakey(ino, n0)]].data = fs[ri[datakey(ino, n0)]].data, ri[inodekey(ino)] = adr, fs[ri[inodekey(ino)]].directory, adr ∈ ri
Used simplifier rules: P-ext: ⊦ content = abs-content(ino, fs, ri) ↔ (∀ n. (n ∈ content ↔ datakey(ino, n) ∈ ri) ∧ (n ∈ content → content[n] = fs[ri[datakey(ino, n)]].data));%in-content: ⊦ n ∈ abs-content(ino, fs, ri) ↔ datakey(ino, n) ∈ ri;%at-content: ⊦ datakey(ino, n) ∈ ri → abs-content(ino, fs, ri)[n] = fs[ri[datakey(ino, n)]].data;% ⊦ adr ≠ adr0 → fs[adr0, nd][adr] = fs[adr]; (s)