| inodekey(ino0) ∈ ri, inodekey(ino) ∈ ri ⊦ ino0 = ino, mkfile(fs[ri[inodekey(ino0)]].size, fs[ri[inodekey(ino0)]].meta, fs[ri[inodekey(ino0)]].nlink, abs-content(ino0, fs, ri)) = mkfile(fs[ri[inodekey(ino0)]].size, fs[ri[inodekey(ino0)]].meta, fs[ri[inodekey(ino0)]].nlink, abs-content(ino0, fs, ri -- datakey(ino, n))), fs[ri[inodekey(ino0)]].directory, fs[ri[inodekey(ino)]].directory |
inodekey(ino) ∈ ri, inodekey(ino0) ∈ ri ⊦ ino0 = ino, fs[ri[inodekey(ino)]].directory, fs[ri[inodekey(ino0)]].directory, (datakey(ino0, n0) ∈ ri → datakey(ino0, n0) ≠ datakey(ino, n)) ∧ (datakey(ino0, n0) ≠ datakey(ino, n) ∧ datakey(ino0, n0) ∈ ri → abs-content(ino0, fs, ri -- datakey(ino, n))[n0] = fs[ri[datakey(ino0, n0)]].data)
Used simplifier rules: F-inj: ⊦ mkfile(m0, md0, n0, content0) = mkfile(m1, md1, n1, content1) ↔ ¬(n0 ≠ n1 ∨ md0 ≠ md1 ∨ m0 ≠ m1 ∨ content0 ≠ content1);%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;% ⊦ key ∈ ri -- key0 ↔ key ≠ key0 ∧ key ∈ ri; (s)