Consider the following premises. forall y: ~W(y). forall y: P_4(y) -> W(y). forall y: W(y) <-> P_4(y). forall y: W(y) -> P_4(y). Can we infer forall y: ~P_4(y) from them? If possible, name the inference rules being used at each step.
 From forall y: W(y) -> P_4(y), forall y: P_4(y) -> W(y) we can infer forall y: W(y) <-> P_4(y) via universal biconditional introduction. From forall y: W(y) <-> P_4(y) we can infer forall y: W(y) -> P_4(y) via universal biconditional elimination. From forall y: W(y) <-> P_4(y) we can infer forall y: P_4(y) -> W(y) via universal biconditional elimination. From forall y: W(y) -> P_4(y), forall y: P_4(y) -> W(y) we can infer forall y: W(y) <-> P_4(y) via universal biconditional introduction. Finally, from forall y: W(y) <-> P_4(y), forall y: ~W(y) we can infer forall y: ~P_4(y) via universal biconditional elimination. Therefore, the answer is yes.