I think you mixed-up the difference definition.

Dif(CFL, sigma*) = all strings that are in the CFL, but not in sigma*. Hence, it's the empty set (which is indeed a CFL).

But the empty set is not the complement of the CFL.

but they are closed under difference with a regular langiage.

the sigma* language is a regualr language.

the complement of some CFL is actually the diffrence of this CFL withsigma*- a regular language (therfore we should get that the complement gives as also a CFL, so that they are actually closed under compliment).

what am i missing?

thanks!

]]>