| ⊦ (σ to m + n) from m = (σ from m) to n, # σ < ⌜m⌝ + ⌜n⌝ |
∀ σ, n. (σ to m0 + n) from m0 = (σ from m0) to n ∨ # σ < ⌜m0⌝ + ⌜n⌝ ⊦ (σ to m0 +1 + n) from m0 +1 = (σ from m0 +1) to n, # σ < ⌜m0 +1⌝ + ⌜n⌝
Used simplifier rules: from-zero: ⊦ σ from 0 = σ;%nat freely generated by 0, +1;;% ⊦ 0 + m = m; (s)%a: ⊦ (m + n0) + n1 = m + n0 + n1; from specification nat-basic%c: ⊦ m + n = n + m; from specification nat-basic