I'd like to know why when choosing how to optimize an algorithm that there almost always (always?) exists a time/space tradeoff.
Definition: https://simple.wikipedia.org/wiki/Space-time_tradeoff.
My favorite example is a karnaugh map for simplifying boolean logic. It abstracts boolean logic away with just clever geometry:
Is there some sort of law from some mathematical theory to explain why this exists? Intuitively it seems to make sense, but the math would be nice.
Is this some property of information/computation? Is it guaranteed for any computation that can be performed? What about computations theoretically possible with infinite time, is a reciprocal guaranteed to exist that instead uses infinite space (or a middle ground that makes the time axis not go to infinity anymore)?