| 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), ino ∈ cache_dirs0, cache_sync0 → synced(cache_files0, cache_icache0, cache_pcache0) ⊦ cache_dirs0[ino] = (cache_dirs0 \ orphans(cache_dirs0, cache_files0))[ino], links(ino, cache_dirs0) = ∅ ∧ ino ≠ ROOT_INO, ino ∈ cache_dirs0 ∧ ¬ ino ∈ orphans(cache_dirs0, cache_files0) |
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), ino ∈ cache_dirs0, ino ∈ orphans(cache_dirs0, cache_files0), cache_sync0 → synced(cache_files0, cache_icache0, cache_pcache0) ⊦ # links(ino, cache_dirs0) = 0, # orphans(cache_dirs0, cache_files0) = 0, cache_dirs0[ino] = (cache_dirs0 \ orphans(cache_dirs0, cache_files0))[ino], ino = ROOT_INO, links(ino, cache_dirs0) = ∅, orphans(cache_dirs0, cache_files0) = ∅
Used simplifier rules: size-zero: ⊦ # ls ≠ 0 → ls ≠ ∅; (forward) from specification set-basic[alink-set]%size-zero-01: ⊦ ns ≠ ∅ → # ns ≠ 0; (forward) from specification set-basic[icache]%size-zero-01: ⊦ ls ≠ ∅ → # ls ≠ 0; (forward) from specification set-basic[alink-set]% ⊦ ¬ ROOT_INO ∈ orphans(dirs, files); (s)%ne-01: ⊦ ino ∈ ns → ns ≠ ∅; (forward) from specification set-basic[icache]