| nx0 = nx, wlar0 = wlar, valid-indices(wlar, nx) ⊦ ⟪ubi_fix_ecs#(n; nx, wlar)⟫ (wlar = wlar0.mapIndices(nx0, λ wle. wle.ec:= n)), dups(nx) |
nx0 = nx, nx1 = nx, wlar0 = wlar, valid-indices(wlar, nx) ⊦ ⟪while nx0 ≠ [] do {/* (prepost-fix-ecs : invariant ∃ nx. nx0` = nx + nx0 ∧ wlar = (wlar`).mapIndices(nx, λ wle. wle.ec:= n) ∧ valid-indices(wlar, nx) ∧ ¬ dups(nx0`) wfbound # nx0) */; wlar[nx0.head].ec := n; nx0 := nx0.tail}⟫ (wlar = wlar0.mapIndices(nx1, λ wle. wle.ec:= n)), dups(nx)
Used simplifier rules: fix-ecs: ⊦ ;