code: def verify_link_in_task_graph(chain, decision_link, task_link):
      
      log.info("Verifying the {} {} task definition is part of the {} {} task graph...".format(
          task_link.name, task_link.task_id, decision_link.name, decision_link.task_id
      ))
      if task_link.task_id in decision_link.task_graph:
          graph_defn = deepcopy(decision_link.task_graph[task_link.task_id])
          verify_task_in_task_graph(task_link, graph_defn)
          log.info("Found {} in the graph; it's a match".format(task_link.task_id))
          return
      raise_on_errors(["Can't find task {} {} in {} {} task-graph.json!".format(
          task_link.name, task_link.task_id, decision_link.name, decision_link.task_id
      )])
docs: Compare the runtime task definition against the decision task graph.
  
      Args:
          chain (ChainOfTrust): the chain we're operating on.
          decision_link (LinkOfTrust): the decision task link
          task_link (LinkOfTrust): the task link we're testing
  
      Raises:
          CoTError: on failure.