| files[ino] = mkfile(m, md, n0, content), fid = ⌜ino0⌝ , ino ∈ files ⊦ (fid ∈ abs-files(files[ino, mkfile(m, md, n1, content)]) ↔ fid ∈ abs-files(files)) ∧ (fid ∈ abs-files(files[ino, mkfile(m, md, n1, content)]) → abs-files(files[ino, mkfile(m, md, n1, content)])[fid] = abs-files(files)[fid]) |
⊦ ⌜ino⌝ ∈ abs-files(files) ↔ ino ∈ files
⊦ ino ∈ files → abs-files(files)[⌜ino⌝ ] = mkfile(files[ino].meta, (files[ino].content.stream to files[ino].size).buf)
files[ino] = mkfile(m, md, n0, content), ino ∈ files, ino0 ∈ files ⊦ abs-files(files[ino, mkfile(m, md, n1, content)])[⌜ino0⌝ ] = mkfile(files[ino0].meta, (files[ino0].content.stream to files[ino0].size).buf)
Used simplifier rules: abs-files-in: ⊦ ⌜ino⌝ ∈ abs-files(files) ↔ ino ∈ files;%abs-files-at: ⊦ ino ∈ files → abs-files(files)[⌜ino⌝ ] = mkfile (files[ino].meta, (files[ino].content.stream to files[ino].size).buf);% ⊦ ino ∈ files[ino0, af] ↔ ino ∈ files; (s)