Memorising a list of closure properties is not enough when a question asks why a result stays regular or which product states must accept. The task is to turn recognisers for regular languages into one for the result. A four-state product DFA handles intersection, union and difference, while exact constructions handle complement, concatenation, star, reversal, homomorphism and inverse homomorphism.
What a closure property actually says
C is closed under op if applying it to members always returns a member. For binary operations, L1, L2 in C implies op(L1, L2) in C; for unary operations, L in C implies op(L) in C.
Closure does not require the output to be non-empty, finite or equal to an input. It requires a finite automaton or regular expression for the result. A proof constructs one for arbitrary inputs, not one example.
Regular languages are closed under union, intersection, complement, difference, concatenation, Kleene star, reversal, homomorphism and inverse homomorphism. Those nine results belong to the regular class specifically: closure for context-free, recursive and recursively enumerable languages rests on different arguments and different machines, so none of the automaton constructions here transfer to them by analogy. Regular Language Properties: Closure and Decision Tests takes the decision-test and Myhill-Nerode side of the same topic, while CS Fundamentals is the broader learning route.
The construction toolbox behind the closure table
operation | construction | accepting condition |
|---|---|---|
intersection | product DFA on |
|
union | product DFA on |
|
difference | product DFA on |
|
complement | complete the DFA, then flip finals |
|
concatenation | epsilon-links from first finals to second start | second automaton's finals |
star | new accepting start plus epsilon-links for entry and repetition | the new start only |
reversal | reverse transitions and swap start/final roles | old start becomes final |
homomorphism | replace every symbol edge with a path spelling its image | the original finals |
inverse homomorphism | keep the target DFA; on source symbol x, run it through all of h(x) | the target DFA's finals |
The three product constructions share delta((p,q),a) = (delta1(p,a),delta2(q,a)); only their final-state sets change. A homomorphism replaces every input symbol with its fixed output string. An inverse homomorphism instead makes a source symbol simulate its mapped string in a target DFA. The direction matters.
Worked product DFA: even zeroes and ending in 1
Fix Sigma = {0,1}. Let L_even0 contain strings with an even number of 0s. DFA A has states {E,O}, starts at E, accepts {E}, and uses:
E: 0 -> O, 1 -> EO: 0 -> E, 1 -> O
Let L_end1 contain strings ending in 1. DFA B has states {N,Y}, starts at N, accepts {Y}, and uses:
N: 0 -> N, 1 -> YY: 0 -> N, 1 -> Y
Here N represents the empty string or a current last symbol 0; Y means the current last symbol is 1. Pairing the states gives this reachable product:
product state | on | on |
|---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
The start is (E,N). For intersection, only (E,Y) accepts. For union, (E,N), (E,Y) and (O,Y) accept. For L_even0 - L_end1, only (E,N) accepts. The transition graph stays unchanged.
Trace 01011 for intersection:
(E,N) --0-> (O,N) --1-> (O,Y) --0-> (E,N) --1-> (E,Y) --1-> (E,Y)
It accepts because the word has two zeroes and ends in 1. Now trace 1010:
(E,N) --1-> (E,Y) --0-> (O,N) --1-> (O,Y) --0-> (E,N)
It rejects the intersection, but accepts L_even0 - L_end1: it has two zeroes and ends in 0.

Complement and difference: complete the DFA before flipping
DFA A already has a transition from every state on 0 and 1, so it is complete. Flipping its final set from {E} to {O} recognises strings with an odd number of zeroes. The word 101 has one zero and finishes at O; 1010 has two zeroes and finishes at E.
Completeness is essential. If a diagram omits delta(r,1), add a dead state d, set delta(r,1)=d, and give d self-loops on 0 and 1 before flipping finals. Otherwise, an omitted rejecting path is lost instead of becoming accepting.
Also, L_even0 - L_end1 = L_even0 intersection complement(L_end1). The first component must be E and the second must not be Y, so only (E,N) accepts. Over the same fixed alphabet, complement(L1 union L2) = complement(L1) intersection complement(L2).
Concatenation, Kleene star and reversal by epsilon-NFA
Take L1={0,10} and L2={1,11}. NFA A1 has start p0, final pF, and transitions p0 -0-> pF, p0 -1-> p1, p1 -0-> pF. NFA A2 starts at q0, has finals {q1,q2}, and transitions q0 -1-> q1, q1 -1-> q2.
For concatenation, make pF non-final, add pF -epsilon-> q0, and retain {q1,q2} as final. Pair each word from L1 with each from L2:
0followed by1or11gives01, 011.10followed by1or11gives101, 1011.
Thus L1L2={01,011,101,1011}.
For L={01}, construct L* with a new state s as the start and only final. Add s -epsilon-> r0, r0 -0-> r1, r1 -1-> r2, plus epsilon transitions r2 -> r0 and r2 -> s. Then epsilon, 01 and 0101 accept, while 0 and 011 reject. In particular, epsilon belongs to L* even though it is not in L.
For reversal, reverse every transition and exchange the old start and final roles. Here L1^R={0,01} because reverse(0)=0 and reverse(10)=01. With several old finals, add one new start with epsilon-arrows to all of them; the old start becomes the only final.

Homomorphism and inverse homomorphism with fixed mappings
Use source alphabet {a,b}, target {0,1}, h(a)=01 and h(b)=1. For L=(ab)*, h(ab)=011, so h(L)=(011)*. Its first values are epsilon, 011, 011011. Replacing each symbol edge with its mapped path produces an NFA.
Let K contain binary strings with an even number of 1s. Each mapping contributes one 1, so h(w) belongs to K exactly when w has even length:
h^-1(K)={w in {a,b}* | |w| is even}.
Both aa -> 0101 and ab -> 011 have two ones and accept; a -> 01 has one and rejects. For inverse homomorphism, source symbol x makes the DFA follow the target through all of h(x). This is not reversal or a symbol-wise inverse function.
Exam-style closure questions and the traps they set
Questions may ask you to select closure statements, choose product finals, trace a word, complete a DFA before complementing, or identify an epsilon-NFA construction.
Five rapid checks:
Intersection accepts
{(E,Y)}because both components accept.Union has three finals because either component can accept.
01011is in the intersection: two zeroes, final symbol1.1010is in the difference: even zeroes, final symbol0.epsilonis in{01}*because star permits zero copies.
Trap corrections:
Incomplete DFA before a flip: add the dead state.
F1 x F2used for union: accept either final component.Alphabet omitted from complement: fix the universe as
Sigma*.Epsilon removed from star: keep the new start accepting.
One example treated as proof: construct for arbitrary inputs.
The same constructions get examined as MCQs on product finals, complement completion and star membership. Theory of Computation MCQs works through a solved set across the subject.
The short version and next study step
Use product DFAs for Boolean operations, flip finals after completion, use epsilon-NFA wiring for concatenation, star and reversal, and simulate mapped strings for homomorphisms. As a self-check, keep four states, mark only (E,N) final, then verify 1010 accepts and 01011 rejects. GATE learners can continue with GATE Guidance by Sanchit Sir; for broader core CS, use the Zero to Hero Complete CS Course.




