| ⊦ (∀ n. n < # buf → buf[n] = empty) ↔ # buf = # mkempbuf(# buf) ∧ (∀ n. n < # buf → buf[n] = mkempbuf(# buf)[n]) |
n < # buf, ∀ n. n < # buf → buf[n] = empty ⊦ buf[n] = empty
Used simplifier rules: ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m < n → mkempbuf(n)[m] = empty; (s)% ⊦ # mkempbuf(n) = n; (s)