-1

$D → T ∨ D | T$

$T → C ∧ T | C$

$C → ¬C | name | ( D )$

$name → a | b | c | d$

I am not looking for the complete answer, but more the methodology of working this out. How would I go about proving that this language is not regular?

Raphael
  • 72,336
  • 29
  • 179
  • 389
Djoni
  • 33
  • 3
  • 2
    What did you try? Where did you get stuck? We have reference questions which cover proving that a language is or is not regular in great detail. – David Richerby Jul 05 '16 at 16:17
  • Given examples online, they do not contain such symbols as ∧ ∨, I do not know how to get to the stage of pumping lemma from this grammar – Djoni Jul 05 '16 at 16:24
  • 1
    So replace $\lor$ and $\land$ with $x$ and $y$ (or $\heartsuit$ and $\star$): it makes no difference. – David Richerby Jul 05 '16 at 16:27
  • One last question, how do I convert a grammar into a language? – Djoni Jul 05 '16 at 17:11
  • What exactly do you mean by language? A set description, which is many time the most intuitive representation? There is no standard way. That is why below I recommend playing around with the derivations a bit to get a feeling for what the grammar does, i.e. generates. – Peter Leupold Jul 06 '16 at 05:03

1 Answers1

1
  • First you need to have a good idea of what the language really looks like. The grammar does not tell you much in an obvious way. Play around with some examples of derivations.
  • The most common way of proving that a language is not regular is the pumping lemma for regular languages. In this case it might no be easy to apply it. A good option is to
  • simplify the language using closure properties. For example, the intersection of two regular languages is regular again. Now check what the intersection of you language with the regular $(^+ a )^+$ is. On this you should be able to apply the pumping lemma without big complications. If you manage to prove that this intersection is not regular, your original language cannot have been regular.
Peter Leupold
  • 777
  • 4
  • 9