I would argue to the contrary. I think
NOT(guilty()) = innocent
and
NOT(innocent()) = guilty
is a pretty reasonably accurate summation of the state of closure concerning these sets of qualities. All fiddles about partial guilt, or sociatal guilt aside.
If the law was serious about accurate usage, and not serious about double jeopardy, the law would succumb to a previous gentleman's argument about using the scottish phrase, "not proved guilty". For then, your argument would hold: the opposite of "not proved guilty" isn't the same thing as "proved innocent".
But, that isn't what the law says--what the law says is "not guilty". The opposite of "not guilty" is, in fact, innocent.
But, that aside, my argument is a moral one, not a set-theoretic one, and it is an argument pitched against the assumption you make that "not guilty" really means "not proved guilty".
If the state, in it's wisdom, devotes its full force and authority into proving you guilty, and fails, the morally correct assumption, in a state you don't want to see being run by tyrants at their own whim, is that you are innocent. Otherwise the principle of double jeopardy has no teeth, and it should have teeth. The state can keep you a virtual prisoner, and bankrupt you at trial, whether you are repeatedly "not found guilty" or not; you do not pose a similar threat to the state.