| ⌜m⌝ < # ⌜x⌝ ⊦ ⌜a '⌝ + ⌜x⌝ = [], ⌜x⌝ to m + 1 = (⌜x⌝ to m) + ⌜⌜x⌝ [m] '⌝ |
m < # x ⊦ (x to m) + x[m] ' = x to m + 1, ⌜a '⌝ + ⌜x⌝ = [], x = []
Used simplifier rules: to-fin: ⊦ ⌜x⌝ to n = ⌜x to n⌝ ;%sel-fin: ⊦ ⌜x⌝ [n] = x[n];%eq-stream-to-list-2-1: ⊦ ⌜x⌝ + ⌜y⌝ = ⌜z⌝ ↔ x + y = z;%append-assoc: ⊦ (σ + σ1) + σ2 = σ + σ1 + σ2;%size-fin: ⊦ # ⌜x⌝ = ⌜# x⌝ ;% ⊦ # x = 0 ↔ x = []; (s)%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic% ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; (s)