| icache[ino] = mkientry(false, inode0), pcache[datakey(ino, n)] = mkpentry(true, buf), datakey(ino, n) ∈ pcache, ino ∈ icache, ino ∈ files, ∀ ino0. ino0 ∈ files → (ino0 ∈ icache → ¬ icache[ino0].dirty) ∧ (∀ n. datakey(ino0, n) ∈ pcache → ¬ pcache[datakey(ino0, n)].dirty) ⊦ |
pcache[datakey(ino, n)] = mkpentry(true, buf), icache[ino] = mkientry(false, inode0), ino ∈ files, ino ∈ icache, datakey(ino, n) ∈ pcache, ino ∈ files → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty), ∀ ino0. ino0 ∈ files → (ino0 ∈ icache → ¬ icache[ino0].dirty) ∧ (∀ n. datakey(ino0, n) ∈ pcache → ¬ pcache[datakey(ino0, n)].dirty) ⊦
Used terms: ino