# Constructing the Cross-Product of 2 DFAs

The Cross-Product of DFAs is a single DFA which simulates the operation of the DFAs in parallel. For the sake of simplicity it is assumed that the DFAs share the same alphabet .

## Problem Statement

Let the two DFAs be defined by and



The languages accepted by these DFAs are and respectively. Using the Cross-Product, a single DFA can be constructed that recognizes



## Cross-Product

The DFA constructed via Cross-Product is defined as follows



where



and

## Example Problem

It is much easier to follow the Cross-Product construction by writing down the formal definition as a transition table. Consider the two DFAs shown below. The alphabet . The blue color indicates the start state and the red color indicate(s) the final state(s).

The set of states for the Cross-Product is defined as



Thus, each state in is a tuple. The first element comes from the set of states of the first DFA and the second element from the set of states of the second DFA. Thus, there will be a total of states in . These are populated as follows

The start state, , for the Cross-Product is defined as



Thus, the start state, , is a tuple. The first element is the start state of the first DFA and the second element is the start state of the second DFA.

The transition function, , for the Cross-Product is defined as



Thus, for a given tuple of states, the transition for each of the states on the two DFAs are tracked. This process is shown below.

In case of union, the set of final states, , is defined as



Thus, any state that contains one element as final in either of the DFAs will be final.

In case of intersection, the set of final states, , is defined as



Thus, any state that contains both the elements as final in each of the DFAs will be final.