| ⊦ #((σ to n0 + m) + σ0 from m) = #(((σ to m + n0) from m) + σ0) ∧ (∀ n. ⌜n⌝ < #((σ to n0 + m) + σ0 from m) → ((σ to n0 + m) + σ0 from m)[n] = (((σ to m + n0) from m) + σ0)[n]), # σ < ⌜n0⌝ + ⌜m⌝ , # σ < ⌜m⌝ + ⌜n0⌝ |
⊦ # σ < ⌜n0⌝ + ⌜m⌝ , # σ < ⌜m⌝ + ⌜n0⌝ , #((σ to n0 + m) + σ0 from m) = #((σ to m + n0) from m) + # σ0 ∧ (⌜n⌝ < #((σ to n0 + m) + σ0 from m) → ((σ to n0 + m) + σ0 from m)[n] = (((σ to m + n0) from m) + σ0)[n])
Used simplifier rules: size-append: ⊦ #(σ + σ1) = # σ + # σ1;%append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2;