| n0 < n + n1 ⊦ ((σ to n) + σ0)[n0] = ((σ to n) + (σ0 to n1))[n0], n + n1 = 0, # σ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;%less-fin: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; from specification nat-inf%lels: ⊦ ¬ m < n ↔ n ≤ m; from specification nat%ls-le-simp: ⊦ m < n → (n ≤ m ↔ false); from specification nat%sel: ⊦ ⌜m⌝ .n = m; from specification nat-inf-basic%lels-01: ⊦ ¬ m ≤ n ↔ n < m; from specification nat%ls-01: n0 ≤ n ⊦ n - n0 < m ↔ n < m + n0; from specification nat%c: ⊦ m + n = n + m; from specification nat-basic2 Used terms: n0, σ0, σ to n