| inodekey(ino) ∈ ri, inodekey(ino0) ∈ ri ⊦ (ino0 = ino ⊃ mkfile(fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, abs-content(ino, fs, ri) -- n) ;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(ino)]].directory, fs[ri[inodekey(ino0)]].directory |
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
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;%at-content: ⊦ datakey(ino, n) ∈ ri → abs-content(ino, fs, ri)[n] = fs[ri[datakey(ino, n)]].data;% ⊦ n ∈ content -- n0 ↔ n ≠ n0 ∧ n ∈ content; (s)% ⊦ key ∈ ri -- key0 ↔ key ≠ key0 ∧ key ∈ ri; (s)% ⊦ n ≠ n0 → (content -- n0)[n] = content[n]; (s)% ⊦ datakey(m, m0) = datakey(m1, m2) ↔ m = m1 ∧ m0 = m2; (ws)%key ≠ key0 ⊦ (ri -- key0)[key] = ri[key]; (s)