| key ∈ evict(ino, pcache0[key0, pe]), ∀ key. key ∈ pcache0[key0, pe] → key.data?, ∀ key, ino. key ∈ evict(ino, pcache0) ∧ (∀ key. key ∈ pcache0 → key.data?) → key.data? ∧ key.ino ≠ ino ⊦ key.data? ∧ key.ino ≠ ino |
key0 = inodekey(ino0), key ∈ evict(ino, pcache0[key0, pe]), ∀ key, ino. key ∈ evict(ino, pcache0) ∧ (∀ key. key ∈ pcache0 → key.data?) → key.data? ∧ key.ino ≠ ino, ∀ key. key ∈ pcache0[key0, pe] → key.data? ⊦ key.data? ∧ key.ino ≠ ino
key0 = datakey(ino0, ino1), key ∈ evict(ino, pcache0[key0, pe]), ∀ key, ino. key ∈ evict(ino, pcache0) ∧ (∀ key. key ∈ pcache0 → key.data?) → key.data? ∧ key.ino ≠ ino, ∀ key. key ∈ pcache0[key0, pe] → key.data? ⊦ key.data? ∧ key.ino ≠ ino
key0 = dentrykey(ino0, name), key ∈ evict(ino, pcache0[key0, pe]), ∀ key, ino. key ∈ evict(ino, pcache0) ∧ (∀ key. key ∈ pcache0 → key.data?) → key.data? ∧ key.ino ≠ ino, ∀ key. key ∈ pcache0[key0, pe] → key.data? ⊦ key.data? ∧ key.ino ≠ ino
Used simplifier rules: key freely generated by inodekey, datakey, dentrykey;;