| key ∈ evict(ino, pcache0[datakey(ino0, ino1), pe]), ∀ key. key ∈ pcache0[datakey(ino0, ino1), pe] → key.data?, ∀ key, ino. key ∈ evict(ino, pcache0) ∧ (∀ key. key ∈ pcache0 → key.data?) → key.data? ∧ key.ino ≠ ino ⊦ key.data? ∧ key.ino ≠ ino |
n ≠ ino ⊦ evict(n, pcache[datakey(ino, pageno), pe]) = evict(n, pcache)[datakey(ino, pageno), pe]
ino = ino0, key ∈ evict(ino, pcache0[datakey(ino0, ino1), pe]), ∀ key, ino. key ∈ evict(ino, pcache0) ∧ (∀ key. key ∈ pcache0 → key.data?) → key.data? ∧ key.ino ≠ ino, ∀ key. key ∈ pcache0[datakey(ino0, ino1), pe] → key.data? ⊦ key.data? ∧ key.ino ≠ ino
key ∈ evict(ino, pcache0)[datakey(ino0, ino1), pe], ∀ key, ino. key ∈ evict(ino, pcache0) ∧ (∀ key. key ∈ pcache0 → key.data?) → key.data? ∧ key.ino ≠ ino, ∀ key. key ∈ pcache0[datakey(ino0, ino1), pe] → key.data? ⊦ ino = ino0, key.data? ∧ key.ino ≠ ino
Used terms: pe, ino1, ino0, pcache0, ino