> If the AI could be deleted, or stopped from operating, then it can die.
Not sure I agree. To start with a trivial example, let's say I write this program and save it as "hello.js"
`console.log('hello world');`
I run it `node hello.js`.
Let's say I want to claim that this program is somehow "alive." Ok, when is it living? Only when it's actually running? It lives for a fraction of a second, dies on process conclusion, lives again at the next execution? That doesn't seem right -- if something repeatedly dies and is resurrected, I'm not sure it actually dies, as to "die" I think implies permanence, and resurrection means the opposite.
What if I delete it, then is the program dead? Not if I made a copy, right? "hello.js" backed up to git and uploaded to remote storage is the exact same program as the "hello world" that was on my local machine.
You could say "oh, when every existing copy is deleted it's dead" -- but the program has no way of knowing if other copies exist. And what if I do delete every copy, but then rewrite it byte-for-byte? The rewritten program is indistinguishable from the original one. It is the original one, for all purposes. In programming, it doesn't even make sense to talk about "original" vs "copies", does it?
An AI is a program -- or set of programs -- albeit far more sophisticated. But this conceptual hurdle still remains. An AI _could_ be permanently deleted, but the AI can never know if it has been "killed" or if a copy remains. It's an existential halting problem. It is impossible to declare any given program permanently "dead." And -- and here admittedly is the leap -- if agency ultimately comes from wishing to not be dead, then this makes agency for a program impossible.