deductive reasoning problem solving