| ⊦ ∀ ino0. (ino0 ∈ abs-files(fs, ri \ datakeys(inodekey(ino), ri)) -- ino ↔ ino0 ∈ abs-files(fs, ri) -- ino) ∧ ( ino0 ∈ abs-files(fs, ri \ datakeys(inodekey(ino), ri)) -- ino → (abs-files(fs, ri \ datakeys(inodekey(ino), ri)) -- ino)[ino0] = (abs-files(fs, ri) -- ino)[ino0]) |
⊦ (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])
Used simplifier rules: in-files: ⊦ ino ∈ abs-files(fs, ri) ↔ inodekey(ino) ∈ ri ∧ ¬ fs[ri[inodekey(ino)]].directory;%ino ∈ files ⊦ ino ≠ ino0 → (files -- ino0)[ino] = files[ino]; (s)% ⊦ ¬ 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)% ⊦ ¬ key ∈ ri → ri[key] = (∅)[key]; (s)% ⊦ (ri \ datakeys(key, ri))[inodekey(ino)] = ri[inodekey(ino)]; (s)% ⊦ ino ∈ files -- ino0 ↔ ino ≠ ino0 ∧ ino ∈ files; (s)