It has to though.
X = Y; // what should change?
X = Y; // what should change?
Here's a simple example (in a declarative language that allows non-terminating computation; in a total language similar examples can be given, except "impossible" means intractable rather than non-computable, which, for all intents and purposes is the same):
X = terminates?(P(1))
If X is known then finding a P is easy; if vice-versa, finding X is possibly impossible.Doesn’t have to.