| ⌜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⌝ ;%l: ⊦ # x = 0 ↔ x = []; from specification list-data%f: ⊦ m < n → n ≠ 0; (forward) from specification nat-basic1%less-fin: ⊦ ⌜m⌝ < ⌜n⌝ ↔ m < n; from specification nat-inf