| ino ∈ files0 ∨ ino ∈ files1 ⊦ files0 ~ files1 ↔ files0 ~ files1 ∧ 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 |
files0 ~ files1, ino ∈ files0 ∨ ino ∈ files1 ⊦ files0[ino].size = files1[ino].size ∧ files0[ino].meta = files1[ino].meta ∧ files0[ino].nlink = files1[ino].nlink ∧ (λ n. (n / VFS_PAGE_SIZE ∈ files0[ino].content ⊃ files0[ino].content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) to files0[ino].size = (λ n. (n / VFS_PAGE_SIZE ∈ files1[ino].content ⊃ files1[ino].content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) to files1[ino].size
Used simplifier rules: stream: ⊦ content.stream = ⌜λ n. getbyte(n, content)⌝ ;%getbyte: ⊦ getbyte(m, content) = getpage(m / VFS_PAGE_SIZE, content)[m % VFS_PAGE_SIZE];%getpage: ⊦ getpage(n, content) = (n ∈ content ⊃ content[n];zeropage);% ⊦ ⌜dx⌝ = ⌜dx0⌝ ↔ dx = dx0; (s)% ⊦ ⌜nf0⌝ to n = ⌜nf0 to n⌝ ; (s)