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