| ((files ⊕ pcache) ⊕ icache)[ino] = mkfile(m0, md, m1, content), ino ∈ files ⊦ ((files ⊕ pcache) ⊕ icache)[ino, mkfile(m0, md, m1, content[m, buf])] = (files[ino, files[ino].content:= files[ino].content[m, buf]] ⊕ pcache[datakey(ino, m), mkpentry(false, buf)]) ⊕ icache |
((files ⊕ pcache) ⊕ icache)[ino] = mkfile(m0, md, m1, content), files[ino] = mkfile(m2, md0, m3, content0), ino ∈ files ⊦ ((files ⊕ pcache) ⊕ icache)[ino, mkfile(m0, md, m1, content[m, buf])] = (files[ino, files[ino].content:= content0[m, buf]] ⊕ pcache[datakey(ino, m), mkpentry(false, buf)]) ⊕ icache
Used simplifier rules: ⊦ ((m = af.size ∧ md = af.meta) ∧ m0 = af.nlink) ∧ content = af.content ↔ af = mkfile(m, md, m0, content); (elim) Used terms: files[ino], m2, md0, m3, content0