| ⊦ ⌜buf⌝ to # buf = ⌜buf⌝ |
⊦ σ = σ2 ↔ # σ = # σ2 ∧ (∀ n. ⌜n⌝ < # σ → σ[n] = σ2[n])
[Concretesimprules((Csimpnamedseq(tostream-size,,, ⊦ # ⌜buf⌝ = ⌜# buf⌝ ) Csimpnamedseq(tostream-at,,, ⊦ n < # buf → ⌜buf⌝ [n] = buf[n]) Csimpnamedseq(nat-inf,,less-fin, ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n) Csimpnamedseq(nat-basic1,,ref-1, ⊦ ¬ n < n) Csimpnamedseq(stream,buffer-inf,size-to, ¬ # σ0 < ⌜n⌝ ⊦ #(σ0 to n) = ⌜n⌝ ) Csimpnamedseq(nat-inf-basic,,inj, ⊦ ⌜m⌝ = ⌜m0⌝ ↔ m = m0) Csimpnamedseq(stream,buffer-inf,get-to, m < n, ¬ # σ0 < ⌜n⌝ ⊦ (σ0 to n)[m] = σ0[m]))), Extraterms((⌜buf⌝ ⌜buf⌝ to # buf))]