| 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 |
files[ino0] = mkfile(m, md0, m0, content), ino0 ∈ files ⊦ ino = 0, mkfile(md0, (content.stream to m).buf) = mkfile((files ++ ino)[ino0].meta, ((files ++ ino)[ino0].content.stream to (files ++ ino)[ino0].size).buf), ino ∈ files
Used simplifier rules: ino ≠ 0, ¬ ino ∈ files ⊦ ino0 ∈ files ++ ino ↔ ino0 = ino ∨ ino0 ∈ files; (s)% ⊦ ino ∈ files[ino0, af] ↔ ino ∈ files; (s)% ⊦ files[ino, af][ino0] = (ino0 = ino ∧ ino ∈ files ⊃ af;files[ino0]); (s)