Actually, we can guess that a piece of DNA is nonfunctional if it seems to have undergone neutral evolution (roughly, accumulation of functionally equivalent mutations) at a rate which implies that it was not subject to any noticeable positive selection pressure over evolutionary time.
This actually isn’t necessarily true. If there is a section of the genome A that needs to act on another section of the genome C with section B in between, and A needs to act on C with a precise (or relatively so) genomic distance between them, B can neutrally evolve, even though it’s still necessary for the action of A on C, since it provides the spacing.
This actually isn’t necessarily true. If there is a section of the genome A that needs to act on another section of the genome C with section B in between, and A needs to act on C with a precise (or relatively so) genomic distance between them, B can neutrally evolve, even though it’s still necessary for the action of A on C, since it provides the spacing.
Thus, serving a purely structural function.
In that case the complexity in bits of B, for length N, becomes log2(N) instead of 2*N. It’s not quite 0, but it’s a lot closer.