Defining causal isomorphism

I previously posted this question in another discussion, but it didn’t get any replies so, since I now have enough karma, I’ve decided to make it my first “article”.

This brings up something that has been on my mind for a long time. What are the necessary and sufficient conditions for two computations to be (homeo?)morphic? This could mean a lot of things, but specifically I’d like to capture the notion of being able to contain a consciousness, so what I’m asking is, what we would have to prove in order to say program A contains a consciousness --> program B contains a consciousness. “pointwise” isomorphism, if you’re saying what I think, seems too strict. On the other hand, allowing any invertible function to be a _morphism doesn’t seem strict enough. For one thing we can put any reversible computation in 1-1 correspondence with a program that merely stores a copy of the initial state of the first program and ticks off the natural numbers. Restricting our functions by, say, resource complexity, also seems to lead to both similar and unrelated issues...

Any takers?