For he whole expression (~A^~B) -> (C^D), the component (~A ^ ~B) cannot be true, because -> is assigned a T and the C^D is false. This means the antecedent CANNOT be a T if the truth of the material implication is to be preserved. For the original questioner, recall:
p q p -> q
- - - -- -
F F T
F T T
T F F
T T T
The only assignment lines (under the p and q columns) lines where the consequent, q, is assigned a false are the first and the third, F -> F and T -> F. Obviously, you don't want the T -> F, if you want to preserve the truth value of the implication. Hence, there must be a F under the conjunct, ^, in ~A ^ ~B. This means that either the whole expression ~A or ~B can be T, but both can NOT be true, given the truth table for the conjunct:
p q p ^ q
- - - -- -
F F F
F T F
T F F
T T T
That is, both A and B, themselves cannot be false, as honestrosewater says, as we see in the truth table:
~A ^ ~B
--- -- ---
T F T T F
The unary operator, ~, is the operator under which truth values for determining the truth value for the conjunct are placed.
To recapitulate, "They cannot both be false. " - refers to A and B, as the T's are under the ~. I was referring to BOTH ~A and ~B being true (making the whole expression ~A ^ ~B true), and I should have been more explicit. Instead of "Just so long as BOTH are not true", I should have said, "Just so long as BOTH ~A and ~B are not true...".
What honestrosewater says about ~(A^B) being true and the inner expression being false, with EITHER A or B being true is, of course, true. Make sure, however, that consistent assignments of T and F for A and B are made.
These small windows are very hard to write in.