code: def test_adjoint_subs_binary_reduce_simple_1():
      x = random_tensor(OrderedDict(i=Bint[2]))
      y = random_tensor(OrderedDict(i=Bint[2]))
      k = Variable("k", Bint[2])
  
      with reflect:
          xk = x(i=k)
          yk = y(i=k)
          zk = xk * yk
          z = zk.reduce(ops.add)
  
      expected_x = y(i=k)(k="i")
      actual_x = transpose(z)[x]
      assert_close(actual_x, expected_x)
  
imports: from collections import OrderedDict
  import pytest
  import funsor.ops
  from funsor.adjoint import adjoint
  from funsor.domains import Bint, Real, Reals
  from funsor.einsum import einsum
  from funsor.interpretations import lazy, reflect
  from funsor.interpreter import reinterpret
  from funsor.tensor import Tensor, numeric_array
  from funsor.terms import Number, Scatter, Slice, Variable
  from funsor.testing import assert_close, make_einsum_example, random_tensor
  from funsor.util import get_backend
label_desc: Use image node_id 31 for calling a global function with example usage: test_adjoint_subs_binary_reduce_simple_1() without return types