| # buf = VFS_PAGE_SIZE, files[m0] = mkfile(n0, md, # links(m0, dirs), content), F(files -- m0), afs-cons(dirs, files), m0 ∈ files ⊦ n ∈ content, # ⌜zeropage⌝ = #((content.stream from n * VFS_PAGE_SIZE) to VFS_PAGE_SIZE) ∧ (∀ n0. ⌜n0⌝ < # ⌜zeropage⌝ → ⌜zeropage⌝ [n0] = ((content.stream from n * VFS_PAGE_SIZE) to VFS_PAGE_SIZE)[n0]) |
# buf = VFS_PAGE_SIZE, files[m0] = mkfile(n0, md, # links(m0, dirs), content), n1 < VFS_PAGE_SIZE, F(files -- m0), afs-cons(dirs, files), m0 ∈ files ⊦ ⌜zeropage⌝ [n1] = (content.stream from n * VFS_PAGE_SIZE)[n1], n ∈ content
Used simplifier rules: ⊦ VFS_PAGE_SIZE ≠ 0; (s)%lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic%m < n, ¬ # σ0 < ⌜n⌝ ⊦ (σ0 to n)[m] = σ0[m]; (s)% ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s)% ⊦ ⌜m⌝ = ⌜m0⌝ ↔ m = m0; (s)%¬ # σ0 < ⌜n⌝ ⊦ #(σ0 to n) = ⌜n⌝ ; (s)% ⊦ ¬ ∞ < n∞; (s)% ⊦ #(content.stream from n) = ∞; (s)% ⊦ # zeropage = VFS_PAGE_SIZE; (s)% ⊦ # ⌜buf⌝ = ⌜# buf⌝ ; (s)