presents. Reducibility. w ith Dr. Bunsen Honeydew. Hello, I’m Dr. Bunsen Honeydew. Today we’re going to talk about Reducibility . We’ve been having some…issues here around the studio. .
Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.
presents
Reducibility
with Dr. Bunsen Honeydew
Hello, I’m Dr. Bunsen Honeydew. Today we’re going to talk about Reducibility.
We’ve been having some…issues here around the studio.
Beaker started experimenting with Turing Machines and…well, he found about about the Halting Problem the hard way.
He’s still looping.
Now, on to our lesson
Suppose we have a context-free grammar, EQCFG which we want to prove is undecidable. We use reducability!
Determining that EQCFG is undecidable is easy when we remember Corollary 5.23, which some incredibly smart person figured out for us. . .
Corollary 5.23 says:
If A ≤m B and A is undecidable, then B is undecidable
That means that if you have something that is undecidable, you can reduce it to a second object to prove that it is undecidable as well.
So let’s use this corollary to prove that EQCFG is undecidable. Do we know of anything that is already undecidable?
We already know that ALLCFG is undecidable!
Indeed. So if ALLCFG is undecidable, we should follow Corolary 5.23 and reduce it to EQCFG show that EQCFG is also undecidable
Let’s go to the chalkboard. . .
Goal: reduce ALLCFG to EQCFG to show that EQCFG is undecidable
Phase1
Set up our contradiction proof
First, let’s just assume that EQCFG is actually decidable. Then we’re going to create a decider for it named E.
Now, let’s make a decider which will decide ALLCFG an we’ll call
it A. A does something special though. A is going to use E like a subroutine, giving it the ability to decide EQCFG
as well as ALLCFG
Since A is our decider,
if ALLCFG is decidable, A will accept
else reject
So now that we have our deciders, let’s build our machine!
For our decider A, we need to define certain actions for certain inputs, just like if we were writing code for A . . .
Now, for the input, let’s use an arbitrary name, G1. Now, ALLCFG is defined as:
ALLCFG = {<G1> | G1 is a CFG and L(G1)=Σ*} so G1 is a Context Free Grammar with the language Σ*. So write our definition for A as follows:
A: “on input <G1> (a CFG with the language defined above)
1. Change <G1> into <G2,G3>
2. Return E(<G2>,<G3>) (E is our decider for EQCFG )
You’ll notice that in number 1, we say we’re going to CHANGE G1.
Why?
Now that we have a little preview of our goal, let’s skip ahead and look at the second step of our reduction proof:
Phase2
Now let’s actually change G1, like we were just talking about
“On input <G1>
1. Let some G2 = G1 (so we now have a CFG G2 which is
exactly the same as G1
2. Build G3 with L(G3) = Σ* (so the language is Σ*)
Output <G2, G3>”
Now that we have effectively changed, G1 into G2,G3. Now let’s see if it met our goals that we just talked about.
Phase3
<G1> ∈ ALLCFG and the language of G1 is as follows: L(G1) = Σ*
We created G2 as a copy of G1 so L(G2) is like L(G1) and = Σ*
When we created G3, we defined its language as Σ*; therefore, L(G3)
also = Σ*
Let’s review that EQ = { <G2,G3>|G2 and G3 are CFGs and L(G2) = L(G3) }
Are the languages of G2 and G3 the same?
YES!
Therefore, we can conclude that:
<G2, G3> ∈ EQCFG because L(G2) = L(G3)
Phase3 Cont’d
That proves that the languages are the same, but can we show the reverse?
<G1> ∉ ALLCFGthen L(G1) ≠ Σ* (common sense if we look at the definition)
So L(G2) – and remember that G2 is a copy of G1 – L(G2) ≠ Σ*
Therefore, L(G2) ≠ L(G3) = Σ* (we defined the language of G3 as being Σ*!)
So we can conclude that
<G2, G3> ∉ EQCFG
So back to our decider. Does A accept?
Heavens no. The contradiction lies in the undecidability of ALLCFG, not EQCFG