| inodekey(ino0) ∈ ri ⊦ (ino0 ≠ ino ∧ inodekey(ino0) ∈ ri \ datakeys(inodekey(ino), ri) ∧ ¬ fs[(∅)[inodekey(ino0)]].directory → inodekey(ino0) ∈ ri) ∧ ( ino0 ≠ ino ∧ inodekey(ino0) ∈ ri \ datakeys(inodekey(ino), ri) ∧ ¬ fs[ri[inodekey(ino0)]].directory → abs-files(fs, ri \ datakeys(inodekey(ino), ri))[ino0] = abs-files(fs, ri)[ino0]) |
inodekey(ino0) ∈ ri ⊦ abs-files(fs, ri \ datakeys(inodekey(ino), ri))[ino0] = mkfile(fs[ri[inodekey(ino0)]].size, fs[ri[inodekey(ino0)]].meta, fs[ri[inodekey(ino0)]].nlink, abs-content(ino0, fs, ri)), ino0 = ino, fs[ri[inodekey(ino0)]].directory
Used simplifier rules: at-files: ⊦ inodekey(ino) ∈ ri ∧ ¬ fs[ri[inodekey(ino)]].directory → abs-files(fs, ri)[ino] = abs-file(ino, fs, ri);%file: ⊦ abs-file(ino, fs, ri) = mkfile (fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, abs-content(ino, fs, ri));% ⊦ ¬ inodekey(m).data?; (s)%⊦ key ∈ datakeys(key0, ri) ↔ key ∈ ri ∧ key.data? ∧ key0.inode? ∧ key.ino = key0.ino; (s)% ⊦ key ∈ ri \ ks ↔ key ∈ ri ∧ ¬ key ∈ ks; (ws)