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