| n0 < n + n1 ⊦ ((σ to n) + σ0)[n0] = ((σ to n) + (σ0 to n1))[n0], # σ0 < ⌜n1⌝ , # σ < ⌜n⌝ |
⊦ ⌜m⌝ < # σ → (σ + σ1)[m] = σ[m]
Used simplifier rules: get-append-notls: ⊦ ¬ ⌜m⌝ < # σ → (σ + σ1)[m] = σ1[m - (# σ).n];%size-to: ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = ⌜n⌝ ;%append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2;%get-to: m < n, ¬ # σ < ⌜n⌝ ⊦ (σ to n)[m] = σ[m];%size-to: ¬ # σ < ⌜n⌝ ⊦ #(σ to n) = ⌜n⌝ ;%get-to: m < n, ¬ # σ < ⌜n⌝ ⊦ (σ to n)[m] = σ[m];%get-append-ls: ⊦ ⌜m⌝ < # σ → (σ + σ1)[m] = σ[m];%append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2;% ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ m < n → (n ≤ m ↔ false); (s)% ⊦ ⌜m⌝ .n = m; (s)% ⊦ m ≤ n ↔ ¬ n < m; (ss)%n0 ≤ n ⊦ n - n0 < m ↔ n < m + n0; (s)%c: ⊦ m + n = n + m; from specification nat-basic Used terms: n0, σ0, σ to n