| icache[ino] = mkientry(boolvar, inode0), ¬ boolvar, ino ∈ icache ⊦ synced(files, icache[ino, mkientry(false, inode)], pcache) ↔ synced(files, icache, pcache) |
icache[ino] = mkientry(false, inode0), ino ∈ icache ⊦ (∀ ino0. ino0 ∈ files → (ino0 ∈ icache[ino, mkientry(false, inode)] → ¬ icache[ino, mkientry(false, inode)][ino0].dirty) ∧ (∀ n. datakey(ino0, n) ∈ pcache → ¬ pcache[datakey(ino0, n)].dirty)) ↔ (∀ ino0. ino0 ∈ files → (ino0 ∈ icache → ¬ icache[ino0].dirty) ∧ (∀ n. datakey(ino0, n) ∈ pcache → ¬ pcache[datakey(ino0, n)].dirty))
Used simplifier rules: synced-files: ⊦ synced(files, icache, pcache) ↔ (∀ ino. ino ∈ files → synced(ino, icache, pcache));%synced-ino: ⊦ synced(ino, icache, pcache) ↔ (ino ∈ icache → ¬ icache[ino].dirty) ∧ (∀ n. datakey(ino, n) ∈ pcache → ¬ pcache[datakey(ino, n)].dirty);