| n < VFS_PAGE_SIZE, n0 < n + m * VFS_PAGE_SIZE, n0 / VFS_PAGE_SIZE ∈ content ⊦ content[n0 / VFS_PAGE_SIZE][n0 % VFS_PAGE_SIZE] = (⌜(λ n0. (n0 / VFS_PAGE_SIZE ∈ content ⊃ content[n0 / VFS_PAGE_SIZE];zeropage)[n0 % VFS_PAGE_SIZE]) to m * VFS_PAGE_SIZE⌝ + (σ⊥ to n))[n0], m ∈ content |
⊦ ⌜m⌝ < # σ0 → (σ0 + σ2)[m] = σ0[m]
n0 < n + m * VFS_PAGE_SIZE, n < VFS_PAGE_SIZE, n0 / VFS_PAGE_SIZE ∈ content ⊦ content[n0 / VFS_PAGE_SIZE][n0 % VFS_PAGE_SIZE] = (⌜(λ n0. (n0 / VFS_PAGE_SIZE ∈ content ⊃ content[n0 / VFS_PAGE_SIZE];zeropage)[n0 % VFS_PAGE_SIZE]) to m * VFS_PAGE_SIZE⌝ + (σ⊥ to n))[n0], ⌜n0⌝ < # ⌜(λ n0. (n0 / VFS_PAGE_SIZE ∈ content ⊃ content[n0 / VFS_PAGE_SIZE];zeropage)[n0 % VFS_PAGE_SIZE]) to m * VFS_PAGE_SIZE⌝ , m ∈ content
Used simplifier rules: ⊦ ⌜dx⌝ [n] = dx[n]; (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ # ⌜nf0 to n⌝ = ⌜n⌝ ; (s)% ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s)% ⊦ m ≤ n → (n < m ↔ false); (s)%m < n ⊦ (nf0 to n)[m] = nf0(m); (s) Used terms: n0, σ⊥ to n, ⌜ (λ n0. (n0 / VFS_PAGE_SIZE ∈ content ⊃ content[n0 / VFS_PAGE_SIZE] ;zeropage ) [n0 % VFS_PAGE_SIZE ]) to m * VFS_PAGE_SIZE ⌝