| # buf = VFS_PAGE_SIZE ⊦ ⌜λ n0. (n0 / VFS_PAGE_SIZE ∈ content[n, buf] ⊃ content[n, buf][n0 / VFS_PAGE_SIZE];zeropage)[n0 % VFS_PAGE_SIZE]⌝ = ⌜(λ n. (n / VFS_PAGE_SIZE ∈ content ⊃ content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) to n * VFS_PAGE_SIZE⌝ + ⌜buf⌝ + ⌜(λ n. (n / VFS_PAGE_SIZE ∈ content ⊃ content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) from VFS_PAGE_SIZE * n + VFS_PAGE_SIZE⌝ |
⊦ σ = σ2 ↔ # σ = # σ2 ∧ (∀ n. ⌜n⌝ < # σ → σ[n] = σ2[n])
# buf = VFS_PAGE_SIZE ⊦ # ⌜λ n0. (n0 / VFS_PAGE_SIZE ∈ content[n, buf] ⊃ content[n, buf][n0 / VFS_PAGE_SIZE];zeropage)[n0 % VFS_PAGE_SIZE]⌝ = # ( ⌜(λ n. (n / VFS_PAGE_SIZE ∈ content ⊃ content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) to n * VFS_PAGE_SIZE⌝ + ⌜buf⌝ + ⌜(λ n. (n / VFS_PAGE_SIZE ∈ content ⊃ content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) from VFS_PAGE_SIZE * n + VFS_PAGE_SIZE⌝ ) ∧ (∀ n0. ⌜n0⌝ < # ⌜λ n0. (n0 / VFS_PAGE_SIZE ∈ content[n, buf] ⊃ content[n, buf][n0 / VFS_PAGE_SIZE];zeropage)[n0 % VFS_PAGE_SIZE]⌝ → ⌜λ n0. (n0 / VFS_PAGE_SIZE ∈ content[n, buf] ⊃ content[n, buf][n0 / VFS_PAGE_SIZE];zeropage)[n0 % VFS_PAGE_SIZE]⌝ [n0] = ( ⌜(λ n. (n / VFS_PAGE_SIZE ∈ content ⊃ content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) to n * VFS_PAGE_SIZE⌝ + ⌜buf⌝ + ⌜(λ n. (n / VFS_PAGE_SIZE ∈ content ⊃ content[n / VFS_PAGE_SIZE];zeropage)[n % VFS_PAGE_SIZE]) from VFS_PAGE_SIZE * n + VFS_PAGE_SIZE⌝ )[n0 ])
Used terms: ⌜ (λ n. (n / VFS_PAGE_SIZE ∈ content ⊃ content[n / VFS_PAGE_SIZE] ;zeropage ) [n % VFS_PAGE_SIZE ]) to n * VFS_PAGE_SIZE ⌝ + ⌜buf⌝ + ⌜ (λ n. (n / VFS_PAGE_SIZE ∈ content ⊃ content[n / VFS_PAGE_SIZE] ;zeropage ) [n % VFS_PAGE_SIZE ]) from VFS_PAGE_SIZE * n + VFS_PAGE_SIZE ⌝ , ⌜λ n0. (n0 / VFS_PAGE_SIZE ∈ content[n, buf] ⊃ content[n, buf][n0 / VFS_PAGE_SIZE] ;zeropage ) [n0 % VFS_PAGE_SIZE ] ⌝