there is a huge mistake in templatetypedef's answer.
automaton product L1 and L2, which are NFA:
new states Q = product of states L1 and L2.
now transition function :
a - symbol in the union of alphabets of automata
delta ((q_1, q_2), a) = delta_L1 (q_1, a) X delta_L2 (q_2, a)
, , resualt delta_L1 (q_1, a), , delta_L2 (q_1, a).
templatetypedef , (qk, rk) .