[Imprint][Data Privacy Statement][E-Mail]

Back to main index. View the specification. View theorem base summary, View theorem base listing, the used properties by spec, the dependency list, the symbol table,

Specification aubifs-abs
enrich
   aubifs-replay
, 
   afs-pre

with
   

   
   
   functions  abs-files : node-store × node-index → file-heap;
              abs-dirs : node-store × node-index → dir-heap;
              abs-file : nat × node-store × node-index → abstract-file;
              abs-dir : nat × node-store × node-index → abstract-dir;
              abs-content : nat × node-store × node-index → file-content;
              abs-children : nat × node-store × node-index → dir-entries;
              abs-keys : key-set → nat-set;
   
   
   
   
   

   

   axioms in-files :  ⊦ ino ∈ abs-files(fs, ri) ↔ inodekey(ino) ∈ ri ∧ ¬ fs[ri[inodekey(ino)]].directory;
          used for: s, ls;
          in-dirs :  ⊦ ino ∈ abs-dirs(fs, ri) ↔ inodekey(ino) ∈ ri ∧ fs[ri[inodekey(ino)]].directory;
          used for: s, ls;
          at-files :  ⊦ inodekey(ino) ∈ ri ∧ ¬ fs[ri[inodekey(ino)]].directory → abs-files(fs, ri)[ino] = abs-file(ino, fs, ri);
          used for: s, ls;
          at-dirs :  ⊦ inodekey(ino) ∈ ri ∧ fs[ri[inodekey(ino)]].directory → abs-dirs(fs, ri)[ino] = abs-dir(ino, fs, ri);
          used for: s, ls;
          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));
          used for: s, ls;
          dir
          : ⊦   abs-dir(ino, fs, ri)
              = mkdir
                (fs[ri[inodekey(ino)]].size, fs[ri[inodekey(ino)]].meta, fs[ri[inodekey(ino)]].nlink, fs[ri[inodekey(ino)]].nsubdirs, 
                 abs-children(ino, fs, ri));
          used for: s, ls;
          in-content :  ⊦ n ∈ abs-content(ino, fs, ri) ↔ datakey(ino, n) ∈ ri;
          used for: s, ls;
          at-content :  ⊦ datakey(ino, n) ∈ ri → abs-content(ino, fs, ri)[n] = fs[ri[datakey(ino, n)]].data;
          used for: s, ls;
          in-children :  ⊦ str ∈ abs-children(ino, fs, ri) ↔ dentrykey(ino, str) ∈ ri;
          used for: s, ls;
          at-children :  ⊦ dentrykey(ino, str) ∈ ri → abs-children(ino, fs, ri)[str] = fs[ri[dentrykey(ino, str)]].ino;
          used for: s, ls;
          abs-keys :  ⊦ n ∈ abs-keys(ks) ↔ inodekey(n) ∈ ks;
          used for: s, ls;

   

   
end enrich