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