| (ino = entries2[str] ⊃ mkfile(m14, md, # links(entries2[str], cache_dirs) + 1, content1);cache_files[ino]) = mkfile(m17, md9, m18, content0), cache_icache[m9, mkientry(false, mkinode(m9, md0, true, # links(m9, cache_dirs), m6, m + 1))][ino] = mkientry(boolvar, mkinode(m8, md8, true, m13, m15, m16)), entries1[str] = entries2[str], cache_dirs[ino2] = mkdir(m7, md5, # links(ino2, cache_dirs), m11, entries1), entries[str] = entries2[str], cache_files[entries2[str]] = mkfile(m3, md6, # links(entries2[str], cache_dirs), content1), entries0[str] = entries2[str], cache_dirs[m9] = mkdir(m, md7, # links(m9, cache_dirs), m6, entries3), ((cache_files ⊕ cache_pcache) ⊕ cache_icache)[entries2[str]] = mkfile(m5, md1, # links(entries2[str], cache_dirs), content), cache_dirs[ino1] = mkdir(m0, md3, # links(ino1, cache_dirs), m2, entries0), cache_dirs[ino0] = mkdir(m4, md2, # links(ino0, cache_dirs), m10, entries), cache_dirs[ino3] = mkdir(m1, md4, # links(ino3, cache_dirs), m12, entries2), afs-cons(cache_dirs, (cache_files ⊕ cache_pcache) ⊕ cache_icache), afs-cons(cache_dirs, cache_files), dcache-cons(cache_dcache, cache_dirs, cache_files), icache-cons(cache_icache, cache_dirs, cache_files), pcache-cons(cache_pcache, cache_dirs, cache_files), synced(cache_dirs, cache_icache, cache_pcache), ino ∈ cache_files, str ∈ entries2, ino3 ∈ cache_dirs, entries2[str] ∈ cache_files, str ∈ entries1, ino2 ∈ cache_dirs, ino0 ∈ cache_dirs, ino1 ∈ cache_dirs, str ∈ entries, str ∈ entries0, m9 ∈ cache_dirs, ino ∈ cache_icache[m9, mkientry(false, mkinode(m9, md0, true, # links(m9, cache_dirs), m6, m + 1))] [entries2[str], mkientry(false, mkinode(entries2[str], md, false, # links(entries2[str], cache_dirs) + 1, 0, m14)) ], cache_sync → synced(cache_files, cache_icache, cache_pcache), links(ino3, cache_dirs) ≠ ∅ ∨ ino3 = ROOT_INO, links(ino2, cache_dirs) ≠ ∅ ∨ ino2 = ROOT_INO, links(ino0, cache_dirs) ≠ ∅ ∨ ino0 = ROOT_INO, links(ino1, cache_dirs) ≠ ∅ ∨ ino1 = ROOT_INO, links(m9, cache_dirs) ≠ ∅ ∨ m9 = ROOT_INO ⊦ (ino = entries2[str] ⊃ mkfile(m14, md, # links(entries2[str], cache_dirs) + 1, content);((cache_files ⊕ cache_pcache) ⊕ cache_icache)[ino]) = mkfile(m17, md9, m18, content0 ⊕ mkcontent(ino, cache_pcache)), ino = entries2[str], str0 ∈ entries3 |
cache_files[ino] = mkfile(m17, md9, # links(ino, cache_dirs), content0), cache_icache[m9, mkientry(false, mkinode(m9, md0, true, # links(m9, cache_dirs), m6, m + 1))][ino] = mkientry(boolvar, mkinode(m8, md8, true, m13, m15, m16)), entries1[str] = entries2[str], cache_dirs[ino2] = mkdir(m7, md5, # links(ino2, cache_dirs), m11, entries1), entries[str] = entries2[str], cache_files[entries2[str]] = mkfile(m3, md6, # links(entries2[str], cache_dirs), content1), entries0[str] = entries2[str], cache_dirs[m9] = mkdir(m, md7, # links(m9, cache_dirs), m6, entries3), ((cache_files ⊕ cache_pcache) ⊕ cache_icache)[entries2[str]] = mkfile(m5, md1, # links(entries2[str], cache_dirs), content), cache_dirs[ino1] = mkdir(m0, md3, # links(ino1, cache_dirs), m2, entries0), cache_dirs[ino0] = mkdir(m4, md2, # links(ino0, cache_dirs), m10, entries), cache_dirs[ino3] = mkdir(m1, md4, # links(ino3, cache_dirs), m12, entries2), afs-cons(cache_dirs, (cache_files ⊕ cache_pcache) ⊕ cache_icache), afs-cons(cache_dirs, cache_files), dcache-cons(cache_dcache, cache_dirs, cache_files), icache-cons(cache_icache, cache_dirs, cache_files), pcache-cons(cache_pcache, cache_dirs, cache_files), synced(cache_dirs, cache_icache, cache_pcache), ino ∈ cache_icache[m9, mkientry(false, mkinode(m9, md0, true, # links(m9, cache_dirs), m6, m + 1))], ino ∈ cache_files, str ∈ entries2, ino3 ∈ cache_dirs, entries2[str] ∈ cache_files, str ∈ entries1, ino2 ∈ cache_dirs, ino0 ∈ cache_dirs, ino1 ∈ cache_dirs, str ∈ entries, str ∈ entries0, m9 ∈ cache_dirs, cache_sync → synced(cache_files, cache_icache, cache_pcache), links(ino3, cache_dirs) ≠ ∅ ∨ ino3 = ROOT_INO, links(ino2, cache_dirs) ≠ ∅ ∨ ino2 = ROOT_INO, links(ino0, cache_dirs) ≠ ∅ ∨ ino0 = ROOT_INO, links(ino1, cache_dirs) ≠ ∅ ∨ ino1 = ROOT_INO, links(m9, cache_dirs) ≠ ∅ ∨ m9 = ROOT_INO ⊦ ((cache_files ⊕ cache_pcache) ⊕ cache_icache)[ino] = mkfile(m17, md9, # links(ino, cache_dirs), content0 ⊕ mkcontent(ino, cache_pcache)), ino = entries2[str], str0 ∈ entries3
Used simplifier rules: afs-cons-file-nlink: ⊦ afs-cons(dirs, files) ∧ ino ∈ files ∧ files[ino] = mkfile(m, md, n, content) → # links(ino, dirs) = n; (forward) from specification afs-base% ⊦ ino ≠ ino0 → (ino ∈ icache[ino0, ie] ↔ ino ∈ icache); (s)