causal reasoning in logic