code: def synthetic_pattern_variable_program(include_types=True):
      """A program that tests product types.
  
      Args:
        include_types: If False, we omit types on the variables, requiring a type
            inference pass.
  
      Returns:
        program: `instructions.Program`.
      """
      block = instructions.Block(
          [
              instructions.prim_op(
                  ["inp"], "many", lambda x: (x + 1, (x + 2, x + 3))
              ),
              instructions.prim_op(
                  ["many"], ["one", "two"], lambda x: x
              ),
          ],
          instructions.halt_op(),
      )
  
      leaf = instructions.TensorType(np.int64, ())
      the_vars = {
          "inp": instructions.Type(leaf),
          "many": instructions.Type((leaf, (leaf, leaf))),
          "one": instructions.Type(leaf),
          "two": instructions.Type((leaf, leaf)),
      }
  
      if not include_types:
          _strip_types(the_vars)
      return instructions.Program(
          instructions.ControlFlowGraph([block]),
          [],
          the_vars,
          ["inp"],
          "two",
      )
  
file_path: probability/tensorflow_probability/python/experimental/auto_batching/test_programs.py
imports: import numpy
  from tensorflow_probability.python.experimental.auto_batching import instructions
label_desc: Use image node_id 5 for calling a global function with example usage: synthetic_pattern_variable_program(include_types) and returns: instructions