| files[ino0] = mkfile(m, md0, m0, content), ino0 ∈ files ⊦ ino = 0, mkfile(md0, (content.stream to m).buf) = abs-files((files ++ ino)[ino, mkfile(0, md, 1, ∅)])[⌜ino0⌝ ], ino ∈ files |
⊦ ino ∈ files → abs-files(files)[⌜ino⌝ ] = mkfile(files[ino].meta, (files[ino].content.stream to files[ino].size).buf)
files[ino0] = mkfile(m, md0, m0, content), ino0 ∈ files, ino0 ∈ (files ++ ino)[ino, mkfile(0, md, 1, ∅)] ⊦ ino = 0, mkfile(md0, (content.stream to m).buf) = mkfile ((files ++ ino)[ino, mkfile(0, md, 1, ∅)][ino0].meta, ((files ++ ino)[ino, mkfile(0, md, 1, ∅)][ino0].content.stream to (files ++ ino)[ino, mkfile(0, md, 1, ∅)][ino0].size).buf), ino ∈ files
Used simplifier rules: ⊦ ino ∈ files[ino0, af] ↔ ino ∈ files; (s)%ino ≠ 0, ¬ ino ∈ files ⊦ ino0 ∈ files ++ ino ↔ ino0 = ino ∨ ino0 ∈ files; (s) Used terms: ino0, (files ++ ino)[ino, mkfile(0, md, 1, ∅)]