The other answer is correct but the logic is that we need to prove functional completeness ( partial functional completeness is not a thing ). The most simple way to do that is making an AND and a NOT gate ( or an OR and a NOT gate ). Half adders have XOR and AND ( sum is the XOR of the two inputs and the carry is the AND of the two digits ). XOR and AND by themselves are not functionally complete ( they are 0 – preserving ).