| # ax = # kx, fs[ri[inodekey(ino)]].directory, new(ax, fs), ri-cons(ri, fs), inodekey(ino) ∈ ri, kx.toSet ⊆ dom ri ⊦ dups(kx), dups(ax), (dentrykey(ino, str) ∈ ri → dentrykey(ino, str) ∈ ri[kx, ax]) ∧ (dentrykey(ino, str) ∈ ri[kx, ax] → fs[ax, fs[ri[kx]]][ri[kx, ax][dentrykey(ino, str)]].ino = fs[ri[dentrykey(ino, str)]].ino) |
# ax = # kx ⊦ new(ax, fs) ∧ ¬ dups(ax) ∧ ¬ dups(kx) ∧ ri-cons(ri, fs) ∧ kx.toSet ⊆ dom ri ∧ key ∈ ri → fs[ax, fs[ri[kx]]][ri[kx, ax][key]] = fs[ri[key]]
Used simplifier rules: ⊦ # kx = # ax → (key ∈ ri[kx, ax] ↔ key ∈ ri ∨ key ∈ kx); (ws)% ⊦ kx.toSet ⊆ dom ri ∧ ¬ key ∈ ri → ¬ key ∈ kx; (s) Used terms: dentrykey(ino, str), kx, ri, ax, fs