| ⊦ ⌜ar⌝ .ar = ar |
⊦ ar = ar0 ↔ # ar = # ar0 ∧ (∀ n. n < # ar → ar[n] = ar0[n])
⊦ finp(⌜ar⌝ ) ↔ true
finp(σ) ⊦ # σ.ar = (# σ).n
⊦ # ⌜ar⌝ = ⌜# ar⌝
finp(σ), ⌜n⌝ < # σ ⊦ σ.ar[n] = σ[n]
⊦ n < # ar → ⌜ar⌝ [n] = ar[n]
Used simplifier rules: finp-ar: ⊦ finp(⌜ar⌝ ) ↔ true;%toar-size: finp(σ) ⊦ # σ.ar = (# σ).n;%tostream-size: ⊦ # ⌜ar⌝ = ⌜# ar⌝ ;%toar-at: finp(σ), ⌜n⌝ < # σ ⊦ σ.ar[n] = σ[n];%tostream-at: ⊦ n < # ar → ⌜ar⌝ [n] = ar[n];% ⊦ ⌜m⌝ .n = m; (s)% ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s) Used terms: ar, ⌜ar⌝ .ar