| ⌜n⌝ = #((σ to m + n) from m), ⌜n0⌝ < ⌜n⌝ ⊦ ((σ from m) to n)[n0] = ((σ to m + n) from m)[n0], # σ < ⌜m⌝ + ⌜n⌝ , #(σ from m) < ⌜n⌝ |
⌜n⌝ = #((σ to m + n) from m), n0 < n ⊦ (σ from m)[n0] = ((σ to m + n) from m)[n0], # σ < ⌜m⌝ + ⌜n⌝ , #(σ from m) < ⌜n⌝
Used simplifier rules: get-to: m < n, ¬ # σ < ⌜n⌝ ⊦ (σ to n)[m] = σ[m];% ⊦ m < n → n ≠ 0; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ m < n → (n ≤ m ↔ false); (s)% ⊦ m < n ↔ ¬ n ≤ m; (ss)% ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s)