To invade a cell is to write a new value into it. In a mutable language this is destruction — the old value is gone. In i13 it is not: v[k]←e yields a new tape, and the old tape persists, untouched. So you can invade the core with 99 and still read the original 4 from the array you started with. This is a persistent (immutable) update — the invasion forks history rather than overwriting it. Its mirror is dart 339, the collaborate: invasion overwrites a cell with one value; collaboration merges two into one. Overwrite versus join — the two ways a cell can take on a new state.
The demo invades the core with 99 — then reads the original tape, still intact: live demo
“Writing to a cell destroys what was there.” — under value semantics a write forks a new version; the old survives. Invasion without destruction. cited
The new tape holds 99; the old tape still holds 4. To invade is to fork, not to erase. persistence, 1986
On the canonical compiler, invading the core with 99 leaves the original core reading 4 — both versions coexist: