| ∀ ino. (ino ∈ files0 ↔ ino ∈ files1) ∧ ( ino ∈ files0 → files0[ino].size = files1[ino].size ∧ files0[ino].meta = files1[ino].meta ∧ files0[ino].nlink = files1[ino].nlink ∧ files0[ino].content.stream to files0[ino].size = files1[ino].content.stream to files1[ino].size) ⊦ (m ∈ files0 ↔ m ∈ files1) ∧ (m ∈ files0 → mkfile(files0[m].meta, (files0[m].content.stream to files0[m].size).buf) = abs-files(files1)[⌜m⌝ ]) |
files0[m] = mkfile(m0, md, m1, content), ∀ ino. (ino ∈ files0 ↔ ino ∈ files1) ∧ ( ino ∈ files0 → files0[ino].size = files1[ino].size ∧ files0[ino].meta = files1[ino].meta ∧ files0[ino].nlink = files1[ino].nlink ∧ files0[ino].content.stream to files0[ino].size = files1[ino].content.stream to files1[ino].size) ⊦ (m ∈ files0 ↔ m ∈ files1) ∧ (m ∈ files0 → mkfile(md, (content.stream to m0).buf) = abs-files(files1)[⌜m⌝ ])
Used simplifier rules: ⊦ ((m = af.size ∧ md = af.meta) ∧ m0 = af.nlink) ∧ content = af.content ↔ af = mkfile(m, md, m0, content); (elim) Used terms: files0[m], m0, md, m1, content