| node-cons(fs1[adr].key, fs1[adr]), ri-closed(ri1, fs1, ro1), ri-cons(ri1, fs1), adr ∈ log1, adr ∈ fs1, ro1 ⊆ dom ri1, fo1 ⊆ dom fi1, adr ∈ log0 → adr ∈ fs0 ∧ (fs0[adr].inode? → fs0[adr].key.inode? ∧ fs0[adr].key.ino ≠ 0) ∧ (fs0[adr].dentry? → fs0[adr].key.dentry?) ∧ (fs0[adr].data? → fs0[adr].key.data?) ∧ (fs0[adr].trunc? → fs0[adr].key.inode?) ⊦ inodekey(0) ∈ ri1, (fs1[adr].inode? → fs1[adr].key.inode? ∧ fs1[adr].key.ino ≠ 0) ∧ (fs1[adr].dentry? → fs1[adr].key.dentry?) ∧ (fs1[adr].data? → fs1[adr].key.data?) ∧ (fs1[adr].trunc? → fs1[adr].key.inode?) |
⊦ node-cons(key, nd) ↔ (nd.inode? → key.inode? ∧ key.ino ≠ 0) ∧ (nd.dentry? → key.dentry?) ∧ (nd.data? → key.data?) ∧ (nd.trunc? → key.inode?)
Used terms: fs1[adr], fs1[adr].key