| ¬ #(σ from m) < ⌜n⌝ , ⌜n⌝ = #((σ to m + n) from m), ⌜n0⌝ < ⌜n⌝ ⊦ ((σ from m) to n)[n0] = ((σ to m + n) from m)[n0], # σ < ⌜m⌝ + ⌜n⌝ |
⌜n⌝ = #((σ to m + n) from m), n0 < n ⊦ (σ from m)[n0] = ((σ to m + n) from m)[n0], n = 0, # σ < ⌜m⌝ + ⌜n⌝ , #(σ from m) < ⌜n⌝
Used simplifier rules: get-to: m < n, ¬ # σ < ⌜n⌝ ⊦ (σ to n)[m] = σ[m];%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%ls-le-simp: ⊦ m < n → (n ≤ m ↔ false); from specification nat%lels: ⊦ ¬ m < n ↔ n ≤ m; from specification nat%less-fin: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; from specification nat-inf