import proveit
from proveit.logic import Equals
from proveit.logic.equality import substitution
from proveit import a, c, x, y, fa
theory = proveit.Theory() # the theorem's theory
%proving unary_evaluation
substitution
substitution.instantiate({y:a}, assumptions=[Equals(x, a)])
assumptions = [unary_evaluation.instance_expr.antecedent,
unary_evaluation.instance_expr.consequent.antecedent]
unary_evaluation.instance_expr.consequent.consequent.conclude_via_transitivity(assumptions=assumptions)
unary_evaluation.instance_expr.prove()
%qed