| files0[ino] = mkfile(m, md, m0, content), files0 ~ files1, ino ∈ files0 ∨ ino ∈ files1 ⊦ m = files1[ino].size ∧ md = files1[ino].meta ∧ m0 = files1[ino].nlink ∧ (λ n. (n / VFS_PAGE_SIZE ∈ content ⊃ content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) to m = (λ n. (n / VFS_PAGE_SIZE ∈ files1[ino].content ⊃ files1[ino].content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) to files1[ino].size |
files0[ino] = mkfile(m, md, m0, content), files1[ino] = mkfile(m1, md0, m2, content0), files0 ~ files1, ino ∈ files0 ∨ ino ∈ files1 ⊦ m = m1 ∧ md = md0 ∧ m0 = m2 ∧ (λ n. (n / VFS_PAGE_SIZE ∈ content ⊃ content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) to m = (λ n. (n / VFS_PAGE_SIZE ∈ content0 ⊃ content0[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) to m1
Used simplifier rules: ⊦ ((m = af.size ∧ md = af.meta) ∧ m0 = af.nlink) ∧ content = af.content ↔ af = mkfile(m, md, m0, content); (elim) Used terms: files1[ino], m2, md0, m3, content0