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