| inodekey(ino) ∈ ri ⊦ abs-files(fs, ri -- datakey(ino, n)) = abs-files(fs, ri)[ino, mkfile(fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, abs-content(ino, fs, ri) -- n)], fs[ri[inodekey(ino)]].directory |
inodekey(ino) ∈ ri, inodekey(ino0) ∈ ri ⊦ (ino0 = ino ⊃ mkfile(fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, abs-content(ino, fs, ri) -- n) ;mkfile(fs[ri[inodekey(ino0)]].size, fs[ri[inodekey(ino0)]].meta, fs[ri[inodekey(ino0)]].nlink, abs-content(ino0, fs, ri)) ) = mkfile(fs[ri[inodekey(ino0)]].size, fs[ri[inodekey(ino0)]].meta, fs[ri[inodekey(ino0)]].nlink, abs-content(ino0, fs, ri -- datakey(ino, n))), fs[ri[inodekey(ino)]].directory, fs[ri[inodekey(ino0)]].directory
Used simplifier rules: F-ext: ⊦ files = abs-files(fs, ri) ↔ (∀ ino. ( ino ∈ files ↔ inodekey(ino) ∈ ri ∧ ¬ fs[ri[inodekey(ino)]].directory) ∧ (ino ∈ files → files[ino] = abs-file(ino, fs, ri)));%in-files: ⊦ ino ∈ abs-files(fs, ri) ↔ inodekey(ino) ∈ ri ∧ ¬ fs[ri[inodekey(ino)]].directory;%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));% ⊦ files[ino, af][ino0] = (ino0 = ino ∧ ino ∈ files ⊃ af;files[ino0]); (s)%key ≠ key0 ⊦ (ri -- key0)[key] = ri[key]; (s)% ⊦ inodekey(m) ≠ datakey(m0, m1); (s)% ⊦ key ∈ ri -- key0 ↔ key ≠ key0 ∧ key ∈ ri; (s)% ⊦ ino ∈ files[ino0, af] ↔ ino ∈ files; (s)