| files1[ino0] = mkfile(m2, md0, # links(ino0, dirs), content0), afs-cons(dirs, files1), ino0 ∈ files1 ⊦ ∀ ino. (ino ∈ files1 ↔ ino ∈ files1[ino0, mkfile(m2, md0, # links(ino0, dirs), content0 upto m2)]) ∧ ( ino ∈ files1 → files1[ino].size = files1[ino0, mkfile(m2, md0, # links(ino0, dirs), content0 upto m2)][ino].size ∧ files1[ino].meta = files1[ino0, mkfile(m2, md0, # links(ino0, dirs), content0 upto m2)][ino].meta ∧ files1[ino].nlink = files1[ino0, mkfile(m2, md0, # links(ino0, dirs), content0 upto m2)][ino].nlink ∧ files1[ino].content.stream to files1[ino].size = files1[ino0, mkfile(m2, md0, # links(ino0, dirs), content0 upto m2)][ino].content.stream to files1[ino0, mkfile(m2, md0, # links(ino0, dirs), content0 upto m2)][ino].size), m2 % VFS_PAGE_SIZE ≠ 0 ∧ m2 / VFS_PAGE_SIZE ∈ content0 |
files1[ino0] = mkfile(m2, md0, # links(ino0, dirs), content0), afs-cons(dirs, files1), ino0 ∈ files1, ino ∈ files1 ⊦ m2 % VFS_PAGE_SIZE ≠ 0 ∧ m2 / VFS_PAGE_SIZE ∈ content0, files1[ino].size = (ino = ino0 ⊃ mkfile(m2, md0, # links(ino0, dirs), content0 upto m2);files1[ino]).size ∧ files1[ino].meta = (ino = ino0 ⊃ mkfile(m2, md0, # links(ino0, dirs), content0 upto m2);files1[ino]).meta ∧ files1[ino].nlink = (ino = ino0 ⊃ mkfile(m2, md0, # links(ino0, dirs), content0 upto m2);files1[ino]).nlink ∧ files1[ino].content.stream to files1[ino].size = (ino = ino0 ⊃ mkfile(m2, md0, # links(ino0, dirs), content0 upto m2);files1[ino]).content.stream to (ino = ino0 ⊃ mkfile(m2, md0, # links(ino0, dirs), content0 upto m2);files1[ino]).size
Used simplifier rules: ⊦ files[ino, af][ino0] = (ino0 = ino ∧ ino ∈ files ⊃ af;files[ino0]); (s)% ⊦ ino ∈ files[ino0, af] ↔ ino ∈ files; (s)