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