| afs-cons(cache_dirs0, cache_files0), afs-cons(cache_dirs0, (cache_files0 ⊕ cache_pcache0) ⊕ cache_icache0), dcache-cons(cache_dcache0, cache_dirs0, cache_files0), icache-cons(cache_icache0, cache_dirs0, cache_files0), pcache-cons(cache_pcache0, cache_dirs0, cache_files0), synced(cache_dirs0, cache_icache0, cache_pcache0), cache_sync0 → synced(cache_files0, cache_icache0, cache_pcache0) ⊦ ((cache_files0 ⊕ cache_pcache0) ⊕ cache_icache0) \ orphans(cache_dirs0, (cache_files0 ⊕ cache_pcache0) ⊕ cache_icache0) = cache_files0 \ orphans(cache_dirs0, cache_files0) |
⊦ files = files0 ↔ (∀ ino. (ino ∈ files ↔ ino ∈ files0) ∧ (ino ∈ files → files[ino] = files0[ino]))
afs-cons(cache_dirs0, (cache_files0 ⊕ cache_pcache0) ⊕ cache_icache0), afs-cons(cache_dirs0, cache_files0), dcache-cons(cache_dcache0, cache_dirs0, cache_files0), icache-cons(cache_icache0, cache_dirs0, cache_files0), pcache-cons(cache_pcache0, cache_dirs0, cache_files0), synced(cache_dirs0, cache_icache0, cache_pcache0), cache_sync0 → synced(cache_files0, cache_icache0, cache_pcache0) ⊦ ∀ ino. ( ino ∈ ((cache_files0 ⊕ cache_pcache0) ⊕ cache_icache0) \ orphans(cache_dirs0, (cache_files0 ⊕ cache_pcache0) ⊕ cache_icache0) ↔ ino ∈ cache_files0 \ orphans(cache_dirs0, cache_files0)) ∧ ( ino ∈ ((cache_files0 ⊕ cache_pcache0) ⊕ cache_icache0) \ orphans(cache_dirs0, (cache_files0 ⊕ cache_pcache0) ⊕ cache_icache0) → (((cache_files0 ⊕ cache_pcache0) ⊕ cache_icache0) \ orphans(cache_dirs0, (cache_files0 ⊕ cache_pcache0) ⊕ cache_icache0))[ino] = (cache_files0 \ orphans(cache_dirs0, cache_files0))[ino])
Used terms: ((cache_files0 ⊕ cache_pcache0) ⊕ cache_icache0) \ orphans(cache_dirs0, (cache_files0 ⊕ cache_pcache0) ⊕ cache_icache0), cache_files0 \ orphans(cache_dirs0, cache_files0)