| icache0[ino] = mkientry(boolvar0, inode), pcache0[datakey(ino, n)] = mkpentry(boolvar, buf), ino ∈ files0, (ino ∈ files → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty)) → ino ∈ files0 → (ino ∈ icache0 → ¬ icache0[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache0 → ¬ pcache0[datakey(ino, n)].dirty), ∀ ino. (ino ∈ files → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty)) → ino ∈ files0 → (ino ∈ icache0 → ¬ icache0[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache0 → ¬ pcache0[datakey(ino, n)].dirty), ∀ ino. ino ∈ files → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty) ⊦ (ino ∈ icache0 → ¬ boolvar0) ∧ (datakey(ino, n) ∈ pcache0 → ¬ boolvar) |
icache0[ino] = mkientry(boolvar0, inode), pcache0[datakey(ino, n)] = mkpentry(boolvar, buf), ino ∈ files0, (ino ∈ files → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (datakey(ino, n0) ∈ pcache → ¬ pcache[datakey(ino, n0)].dirty)) → (ino ∈ icache0 → ¬ boolvar0) ∧ (∀ n. datakey(ino, n) ∈ pcache0 → ¬ pcache0[datakey(ino, n)].dirty), ∀ ino. (ino ∈ files → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty)) → ino ∈ files0 → (ino ∈ icache0 → ¬ icache0[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache0 → ¬ pcache0[datakey(ino, n)].dirty), ∀ ino. ino ∈ files → (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty) ⊦ (ino ∈ icache0 → ¬ boolvar0) ∧ (datakey(ino, n) ∈ pcache0 → ¬ boolvar)
Used simplifier rules: ⊦ mkientry(boolvar, inode).dirty ↔ boolvar; (s)