| # getpage(n, content) = VFS_PAGE_SIZE ⊦ ⌜getpage(n, content)⌝ = (content.stream from n * VFS_PAGE_SIZE) to VFS_PAGE_SIZE |
# (n ∈ content ⊃ content[n];zeropage) = VFS_PAGE_SIZE ⊦ ⌜(n ∈ content ⊃ content[n];zeropage)⌝ = ⌜((λ n0. (n0 / VFS_PAGE_SIZE ∈ content ⊃ content[n0 / VFS_PAGE_SIZE];zeropage)[n0 % VFS_PAGE_SIZE]) from n * VFS_PAGE_SIZE) to VFS_PAGE_SIZE⌝
Used simplifier rules: getpage: ⊦ getpage(n, content) = (n ∈ content ⊃ content[n];zeropage);%stream: ⊦ content.stream = ⌜λ n. getbyte(n, content)⌝ ;%getbyte: ⊦ getbyte(m, content) = getpage(m / VFS_PAGE_SIZE, content)[m % VFS_PAGE_SIZE];% ⊦ ⌜nf0⌝ to n = ⌜nf0 to n⌝ ; (s)% ⊦ ⌜nf0⌝ from n = ⌜nf0 from n⌝ ; (s)