| icache[ino] = mkientry(boolvar2, inode0), pcache0[datakey(ino, n)] = mkpentry(true, buf), icache0[ino] = mkientry(boolvar0, inode), pcache[datakey(ino, n0)] = mkpentry(boolvar1, buf0), ino ∈ dirs0, datakey(ino, n) ∈ pcache0, (ino ∈ dirs → (ino ∈ icache → ¬ boolvar2) ∧ (datakey(ino, n0) ∈ pcache → ¬ boolvar1)) → (ino ∈ icache0 → ¬ boolvar0) ∧ (∀ n. datakey(ino, n) ∈ pcache0 → ¬ pcache0[datakey(ino, n)].dirty), ino ∈ dirs → (ino ∈ icache → ¬ boolvar2) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty), ∀ ino. ino ∈ dirs → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty), ∀ ino. (ino ∈ dirs → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty)) → ino ∈ dirs0 → (ino ∈ icache0 → ¬ icache0[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache0 → ¬ pcache0[datakey(ino, n)].dirty) ⊦ |
pcache[datakey(ino, n0)] = mkpentry(boolvar1, buf0), icache0[ino] = mkientry(boolvar0, inode), pcache0[datakey(ino, n)] = mkpentry(true, buf), icache[ino] = mkientry(boolvar2, inode0), ino ∈ dirs, datakey(ino, n) ∈ pcache0, ino ∈ dirs0, ino ∈ dirs → (ino ∈ icache → ¬ boolvar2) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty), ∀ ino. (ino ∈ dirs → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty)) → ino ∈ dirs0 → (ino ∈ icache0 → ¬ icache0[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache0 → ¬ pcache0[datakey(ino, n)].dirty), ∀ ino. ino ∈ dirs → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty) ⊦ (ino ∈ icache → ¬ boolvar2) ∧ (datakey(ino, n0) ∈ pcache → ¬ boolvar1)
pcache[datakey(ino, n0)] = mkpentry(boolvar1, buf0), icache0[ino] = mkientry(boolvar0, inode), pcache0[datakey(ino, n)] = mkpentry(true, buf), icache[ino] = mkientry(boolvar2, inode0), datakey(ino, n) ∈ pcache0, ino ∈ dirs0, ino ∈ dirs → (ino ∈ icache → ¬ boolvar2) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty), ino ∈ icache0 → ¬ boolvar0, ∀ ino. (ino ∈ dirs → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty)) → ino ∈ dirs0 → (ino ∈ icache0 → ¬ icache0[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache0 → ¬ pcache0[datakey(ino, n)].dirty), ∀ ino. ino ∈ dirs → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty), ∀ n. datakey(ino, n) ∈ pcache0 → ¬ pcache0[datakey(ino, n)].dirty ⊦