| n = m0 * VFS_PAGE_SIZE + n1, n1 < VFS_PAGE_SIZE ⊦ VFS_PAGE_SIZE = 0, (m0 * VFS_PAGE_SIZE < n0 * VFS_PAGE_SIZE ∧ m0 ∈ content ⊃ content[m0];zeropage)[n1] = (⌜(λ n. (n / VFS_PAGE_SIZE ∈ content ⊃ content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) to n0 * VFS_PAGE_SIZE⌝ + σ⊥)[n] |
n1 < VFS_PAGE_SIZE ⊦ (m0 < n0 ∧ m0 ∈ content ⊃ content[m0];zeropage)[n1] = (⌜(λ n. (n / VFS_PAGE_SIZE ∈ content ⊃ content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) to n0 * VFS_PAGE_SIZE⌝ + σ⊥ )[m0 * VFS_PAGE_SIZE + n1 ]
Used simplifier rules: f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ VFS_PAGE_SIZE ≠ 0; (s)%mult-c: ⊦ m * n = n * m; from specification nat-mult%mult-a: ⊦ m0 * m * n = (m0 * m) * n; from specification nat-mult% ⊦ m0 ≠ 0 → (m0 * m < m0 * n ↔ m < n); (s)