def compute_t(i, automata_list, target_events):
    """
    Compute alphabet needed for processing L{automata_list}[i-1] in the
    sequential abstraction procedure.

    @param i: Number of the automaton in the L{automata_list}
    @type  i: C{int} in range(1, len(automata_list)+1)

    @param automata_list: List of automata
    @type  automata_list: C{list} of L{Automaton}

    @param target_events: List of events to preserve after abstraction
    @type  target_events: C{set} of L{Event}

    @return: New alphabet for the next step in sequential abstraction
    @rtype: C{set} of L{Event}
    """
    processed = set()
    for j in range(0, i):
        processed = processed.union(automata_list[j].alphabet)

    unprocessed = target_events.copy()
    for j in range(i, len(automata_list)):
        unprocessed = unprocessed.union(automata_list[j].alphabet)

    result = processed.intersection(unprocessed)

    processed.clear()
    unprocessed.clear()
    return result