| ⊦ σ0 = ⌜x⌝ to n ∧ σ1 = ⌜x⌝ from n ↔ ⌜x⌝ = σ0 + σ1 ∧ # σ0 = ⌜n⌝ , # ⌜x⌝ < ⌜n⌝ |
# σ0 = ⌜n⌝ , ⌜x⌝ = σ0 + σ1, n ≤ # x ⊦ σ0 = ⌜x to n⌝ ∧ σ1 = ⌜x from n⌝
Used simplifier rules: to-fin: ⊦ ⌜x⌝ to n = ⌜x to n⌝ ;%from-fin: ⊦ ⌜x⌝ from n = ⌜x from n⌝ ;%size-fin: ⊦ # ⌜x⌝ = ⌜# x⌝ ;%eq-stream-to-list-2-1: ⊦ ⌜x⌝ + ⌜y⌝ = ⌜z⌝ ↔ x + y = z;%to-plus-from-fin: ⊦ n ≤ # x → (x to n) + (x from n) = x;%append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2;%length-to: ¬ # x < n ⊦ #(x to n) = n;% ⊦ ⌜m⌝ = ⌜m0⌝ ↔ m = m0; (s)% ⊦ m ≤ n → (n < m ↔ false); (s)%a: ⊦ (x + y) + z = x + y + z; from specification list% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s)