Such questions can be solved by either of the methods.
(i) Truth table
(ii) By Case method
(iii) Simplification method (viz applying properties or laws that we already know)
(iv) By trying to make a as True and b as False (where a → b). If it is possible, then its invalid/not a tautology.
(A) : By (iii),
( ~p ^ ~q ) ^ p = (~p ^ p) ^ ~q = F ^ anything = F
Hence, it is a contradiction.
(B) : By (iii),
(p ^ p) V (q ^ p) = p V q ^ p = p V q
Now this will depend on the values of p and q thus it will be a contingency. Hence, not a contradiction.
(C) : By (ii),
Biimplication can be tautology only in 2 cases – T ↔ T and F ↔ F.
If we take P = T as case 1,
F ^ anything = F ↔ T = F
If we take P = F as case 1,
T ^ q = q ↔ F
We can stop here and not continue as q can take any values thus it will be a contingency. Hence, not a contradiction.
(D) : By (iii),
p V ~q V p = p V ~q
Now this will depend on the values of p and q thus it will be a contingency. Hence, not a contradiction.
Correct answer to this question would be (A)