| # buf0 = # buf1, buf1[n2] = (⌜buf0⌝ from n)[n3], files[ino] = mkfile(m, md, # links(ino, dirs), content), n2 = n3 + n, ⌜# buf1⌝ = ⌜n⌝ + #(⌜buf0⌝ from n), n < # buf1, n2 < # buf1, afs-cons(dirs, files), ino ∈ files, n ≤ n2, n1 ≤ # buf1 + n0, n0 + n ≤ m, n0 + n ≤ n1 ⊦ buf0[n2] = buf1[n2] |
# buf0 = # buf1, buf1[n3 + n] = (⌜buf0⌝ from n)[n3], files[ino] = mkfile(m, md, # links(ino, dirs), content), ⌜# buf1⌝ = ⌜n⌝ + #(⌜buf0⌝ from n), n < # buf1, n3 + n < # buf1, afs-cons(dirs, files), ino ∈ files, n1 ≤ # buf1 + n0, n0 + n ≤ m, n0 + n ≤ n1 ⊦ buf0[n3 + n] = buf1[n3 + n]
Used simplifier rules: lf-01: ⊦ m < n ∧ n = n0 → m < n0; (forward) from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic% ⊦ m ≤ m + n; (s)